[gdb/testsuite] Fix gdb.python/py-events.exp
authorTom de Vries <tdevries@suse.de>
Wed, 22 Sep 2021 12:11:09 +0000 (14:11 +0200)
committerTom de Vries <tdevries@suse.de>
Wed, 22 Sep 2021 12:11:09 +0000 (14:11 +0200)
With test-case gdb.python/py-events.exp on ubuntu 18.04.5 we run into:
...
(gdb) info threads^M
  Id   Target Id                                     Frame ^M
* 1    Thread 0x7ffff7fc3740 (LWP 31467) "py-events" do_nothing () at \
         src/gdb/testsuite/gdb.python/py-events-shlib.c:19^M
(gdb) FAIL: gdb.python/py-events.exp: get current thread
...

The info thread commands uses "Thread" instead of "process" because
libpthread is already loaded:
...
new objfile name: /lib/x86_64-linux-gnu/libdl.so.2^M
[Thread debugging using libthread_db enabled]^M
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".^M
event type: new_objfile^M
new objfile name: /lib/x86_64-linux-gnu/libpthread.so.0^M
...
and consequently thread_db_target::pid_to_str is used.

Fix this by parsing the "Thread" expression.

Tested on x86_64-linux.

gdb/testsuite/gdb.python/py-events.exp

index 753709361f54189c2eab89c1b6aa441465b5e372..d6dc9fd42526354b014853218331adcb38824d8c 100644 (file)
@@ -82,9 +82,13 @@ delete_breakpoints
 # Test inferior call events
 
 gdb_test_multiple "info threads" "get current thread" {
-    -re "\[^\n\r\]*process (\[0-9\]+)\[^\n\r\]*do_nothing.*$gdb_prompt $" {
+    -re -wrap "process ($decimal)\[^\n\r\]*do_nothing.*" {
        set process_id $expect_out(1,string)
-       pass "get current thread"
+       pass $gdb_test_name
+    }
+    -re -wrap "Thread $hex \\(LWP ($decimal)\\)\[^\n\r\]*do_nothing.*" {
+       set process_id $expect_out(1,string)
+       pass $gdb_test_name
     }
 }