aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.python
diff options
context:
space:
mode:
authorSasha Smundak <asmundak@google.com>2014-09-03 16:34:47 -0700
committerDoug Evans <dje@google.com>2014-09-03 16:34:47 -0700
commit5f3b99cfed3803f0b099152f54aac7cb90a2b926 (patch)
tree3104a86b35b1492fbb64e676e822a8311344f125 /gdb/testsuite/gdb.python
parentac740bc7a9103a561329ebf7aa05ff31bcab2267 (diff)
downloadbinutils-5f3b99cfed3803f0b099152f54aac7cb90a2b926.zip
binutils-5f3b99cfed3803f0b099152f54aac7cb90a2b926.tar.gz
binutils-5f3b99cfed3803f0b099152f54aac7cb90a2b926.tar.bz2
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.
Diffstat (limited to 'gdb/testsuite/gdb.python')
-rw-r--r--gdb/testsuite/gdb.python/py-frame.exp17
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp
index 3517824..e47f340 100644
--- a/gdb/testsuite/gdb.python/py-frame.exp
+++ b/gdb/testsuite/gdb.python/py-frame.exp
@@ -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)"
+}