diff options
author | Andrew Burgess <aburgess@redhat.com> | 2024-01-04 10:01:24 +0000 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2024-01-12 11:21:26 +0000 |
commit | 1925bba80edd37c2ef90ef1d2c599dfc2fc17f72 (patch) | |
tree | 5cef675497c10a2693c11c5997cab71195baa94f /gdb/testsuite/gdb.python | |
parent | aef117b7374053099099600ded2f4eaa2c450327 (diff) | |
download | binutils-1925bba80edd37c2ef90ef1d2c599dfc2fc17f72.zip binutils-1925bba80edd37c2ef90ef1d2c599dfc2fc17f72.tar.gz binutils-1925bba80edd37c2ef90ef1d2c599dfc2fc17f72.tar.bz2 |
gdb/python: add gdb.InferiorThread.__repr__() method
Add a gdb.InferiorThread.__repr__() method. Before this patch we
would see output like this:
(gdb) pi
>>> gdb.selected_thread()
<gdb.InferiorThread object at 0x7f4dcc49b970>
After this patch, we now see:
(gdb) pi
>>> gdb.selected_thread()
<gdb.InferiorThread id=1.2 target-id="Thread 0x7ffff7da1700 (LWP 458134)">
More verbose, but, I hope, more useful.
If the gdb.InferiorThread becomes invalid, then we will see:
(gdb) pi
>>> invalid_thread_variable
<gdb.InferiorThread (invalid)>
Which is inline with how other invalid objects are displayed.
Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/testsuite/gdb.python')
-rw-r--r-- | gdb/testsuite/gdb.python/py-inferior.exp | 16 | ||||
-rw-r--r-- | gdb/testsuite/gdb.python/py-infthread.exp | 3 |
2 files changed, 17 insertions, 2 deletions
diff --git a/gdb/testsuite/gdb.python/py-inferior.exp b/gdb/testsuite/gdb.python/py-inferior.exp index 6fbcdd6..5a221f8 100644 --- a/gdb/testsuite/gdb.python/py-inferior.exp +++ b/gdb/testsuite/gdb.python/py-inferior.exp @@ -78,7 +78,9 @@ gdb_test "python print ('result = %s' % (i0.connection_num == i0.connection.num) "Inferior.connection_num equals Inferior.connection.num" gdb_test "python print ('result = %s' % i0.pid)" " = \[0-9\]+" "test Inferior.pid" gdb_test "python print ('result = %s' % i0.was_attached)" " = False" "test Inferior.was_attached" -gdb_test "python print (i0.threads ())" "\\(<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]+>,\\)" "test Inferior.threads" +gdb_test "python print (i0.threads ())" \ + "\\(<gdb.InferiorThread id=${decimal}\\.${decimal} target-id=\"\[^\r\n\]*\">,\\)" \ + "test Inferior.threads" gdb_test "python print (i0.progspace)" "<gdb.Progspace object at $hex>" gdb_test "python print (i0.progspace == gdb.progspaces()\[0\])" "True" @@ -89,11 +91,23 @@ gdb_breakpoint check_threads gdb_continue_to_breakpoint "cont to check_threads" ".*pthread_barrier_wait.*" gdb_test "python print (len (i0.threads ()))" "\r\n9" "test Inferior.threads 2" +# Grab the last thread from the list. This thread object will become +# invalid when the corresponding thread exits. +gdb_test_no_output "python last_thread = i0.threads()\[-1\]" +gdb_test "python print(last_thread)" \ + "<gdb.InferiorThread id=${decimal}\\.${decimal} target-id=\"\[^\r\n\]*\">" \ + "test repr of a valid thread" + # Proceed to the next test. gdb_breakpoint [gdb_get_line_number "Break here."] gdb_continue_to_breakpoint "cont to Break here." ".*Break here\..*" +# Check the repr() for an invalid gdb.InferiorThread object. +gdb_test "python print(last_thread)" \ + "<gdb.InferiorThread \\(invalid\\)>" \ + "test repr of an invalid thread" + # Test memory read and write operations. gdb_py_test_silent_cmd "python addr = gdb.selected_frame ().read_var ('str')" \ diff --git a/gdb/testsuite/gdb.python/py-infthread.exp b/gdb/testsuite/gdb.python/py-infthread.exp index 3b07d84..3ae5a45 100644 --- a/gdb/testsuite/gdb.python/py-infthread.exp +++ b/gdb/testsuite/gdb.python/py-infthread.exp @@ -57,7 +57,8 @@ gdb_py_test_silent_cmd "python gdb.selected_thread ().inferior" "test InferiorTh gdb_py_test_silent_cmd "python t0 = gdb.selected_thread ()" "test gdb.selected_thread" 1 -gdb_test "python print (t0)" "\\<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]+>" "verify InferiorThread object" +gdb_test "python print (t0)" \ + "<gdb.InferiorThread id=${decimal}\\.${decimal} target-id=\"\[^\r\n\]*\">" gdb_test "python print ('result = %s' % t0.num)" " = 1" "test InferiorThread.num" gdb_test "python print ('result = %s' % t0.global_num)" " = 1" "test InferiorThread.global_num" gdb_test "python print ('result = %s' % str (t0.ptid))" " = \\(\[0-9\]+, \[0-9\]+, \[0-9\]+\\)" "test InferiorThread.ptid" |