diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 48ecd6771c..24a53a5961 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2016-08-03 Tom Tromey + + PR python/18565: + * python/py-frame.c (frapy_function): Use find_frame_funname. + 2016-08-03 Tom Tromey * stack.c (find_frame_funname): Avoid any possible leak in case diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c index 98a7d7b5ed..6bdac08579 100644 --- a/gdb/python/py-frame.c +++ b/gdb/python/py-frame.c @@ -340,9 +340,13 @@ frapy_function (PyObject *self, PyObject *args) TRY { + char *funname; + enum language funlang; + FRAPY_REQUIRE_VALID (self, frame); - sym = find_pc_function (get_frame_address_in_block (frame)); + find_frame_funname (frame, &funname, &funlang, &sym); + xfree (funname); } CATCH (except, RETURN_MASK_ALL) { diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 51e8073ecc..9f336df109 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-08-03 Tom Tromey + + PR python/18565: + * gdb.python/py-frame-inline.exp: Add Frame.function test. + 2016-08-01 Yao Qi * gdb.threads/process-dies-while-detaching.exp (do_test): Set diff --git a/gdb/testsuite/gdb.python/py-frame-inline.exp b/gdb/testsuite/gdb.python/py-frame-inline.exp index 6306c8e6e6..1372ee0f63 100644 --- a/gdb/testsuite/gdb.python/py-frame-inline.exp +++ b/gdb/testsuite/gdb.python/py-frame-inline.exp @@ -51,3 +51,7 @@ gdb_test_no_output "set backtrace limit 1" gdb_continue_to_breakpoint "Block break here." gdb_test "python print (gdb.newest_frame())" ".*" + +# Regression test to verify that Frame.function works properly for +# inline frames. +gdb_test "python print (gdb.newest_frame().function())" "f"