diff options
author | Sasha Smundak <asmundak@google.com> | 2014-09-03 16:34:47 -0700 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2014-09-03 16:34:47 -0700 |
commit | 5f3b99cfed3803f0b099152f54aac7cb90a2b926 (patch) | |
tree | 3104a86b35b1492fbb64e676e822a8311344f125 /gdb/testsuite/gdb.python | |
parent | ac740bc7a9103a561329ebf7aa05ff31bcab2267 (diff) | |
download | binutils-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.exp | 17 |
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)" +} |