From 5f3b99cfed3803f0b099152f54aac7cb90a2b926 Mon Sep 17 00:00:00 2001 From: Sasha Smundak Date: Wed, 3 Sep 2014 16:34:47 -0700 Subject: 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 * python/py-frame.c (frapy_read_register): New function. gdb/doc/ChangeLog: 2014-08-26 Sasha Smundak * python.texi (Frames in Python): Add read_register description. gdb/testsuite/ChangeLog: 2014-08-26 Sasha Smundak * gdb.python/py-frame.exp: Test Frame.read_register. --- gdb/testsuite/gdb.python/py-frame.exp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'gdb/testsuite/gdb.python') 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)" +} -- cgit v1.1