Add support for reading frame registers to Python API.

The ability to read registers is needed to use Frame Filter API to
display the frames created by JIT compilers.

gdb/ChangeLog:

2014-08-29  Sasha Smundak  <asmundak@google.com>

	* python/py-frame.c (frapy_read_register): New function.

gdb/doc/ChangeLog:

2014-08-26  Sasha Smundak  <asmundak@google.com>

	* python.texi (Frames in Python): Add read_register description.

gdb/testsuite/ChangeLog:

2014-08-26  Sasha Smundak  <asmundak@google.com>

	* gdb.python/py-frame.exp: Test Frame.read_register.
This commit is contained in:
Sasha Smundak 2014-09-03 16:34:47 -07:00 committed by Doug Evans
parent ac740bc7a9
commit 5f3b99cfed
7 changed files with 77 additions and 0 deletions

View file

@ -94,3 +94,20 @@ gdb_test "python print ('result = %s' % f0.read_var ('variable_which_surely_does
gdb_test "python print ('result = %s' % f0.read_var ('a'))" " = 1" "test Frame.read_var - success"
gdb_test "python print ('result = %s' % (gdb.selected_frame () == f1))" " = True" "test gdb.selected_frame"
# Can read SP register.
gdb_test "python print ('result = %s' % (gdb.selected_frame ().read_register ('sp') == gdb.parse_and_eval ('\$sp')))" \
" = True" \
"test Frame.read_register(sp)"
# PC value obtained via read_register is as expected.
gdb_test "python print ('result = %s' % (f0.read_register('pc') == f0.pc()))" \
" = True" \
"test Frame.read_register(pc)"
# On x86-64, PC is in $rip register.
if {[istarget x86_64-*]} {
gdb_test "python print ('result = %s' % (f0.read_register('pc') == f0.read_register('rip')))" \
" = True" \
"test Frame.read_register(rip)"
}