From d6defe8761ca7db47e3c1e1168f7869ffbb7e087 Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Thu, 4 Jan 2024 10:57:40 +0000 Subject: gdb/python: add gdb.Frame.__repr__() method Add a gdb.Frame.__repr__() method. Before this patch we would see output like this: (gdb) pi >>> gdb.selected_frame() After this patch, we now see: (gdb) pi >>> gdb.selected_frame() More verbose, but, I hope, more useful. If the gdb.Frame becomes invalid, then we will see: (gdb) pi >>> invalid_frame_variable which is inline with how other invalid objects are displayed. Approved-By: Tom Tromey --- gdb/testsuite/gdb.python/py-frame.exp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gdb/testsuite') diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp index 16177c8..6162696 100644 --- a/gdb/testsuite/gdb.python/py-frame.exp +++ b/gdb/testsuite/gdb.python/py-frame.exp @@ -36,6 +36,10 @@ gdb_breakpoint [gdb_get_line_number "Block break here."] gdb_continue_to_breakpoint "Block break here." gdb_py_test_silent_cmd "python bf1 = gdb.selected_frame ()" "get frame" 0 +# Test Frame.__repr__() method for a valid Frame object. +gdb_test "python print (repr(bf1))" "" \ + "test __repr__ for gdb.Frame on a valid frame" + # Test Frame.architecture() method. gdb_py_test_silent_cmd "python show_arch_str = gdb.execute(\"show architecture\", to_string=True)" "show arch" 0 gdb_test "python print (bf1.architecture().name() in show_arch_str)" "True" "test Frame.architecture()" @@ -100,6 +104,10 @@ gdb_py_test_silent_cmd "python bframe = gdb.selected_frame()" \ "get bottommost frame" 0 gdb_test "up" ".*" "" +# Test Frame.__repr__() method for an invalid Frame object. +gdb_test "python print (repr(bf1))" "" \ + "test __repr__ for gdb.Frame on an invalid frame" + gdb_py_test_silent_cmd "python f1 = gdb.selected_frame ()" "get second frame" 0 gdb_py_test_silent_cmd "python f0 = f1.newer ()" "get first frame" 0 gdb_py_test_silent_cmd "python f2 = f1.older ()" "get last frame" 0 -- cgit v1.1