gdb/testsuite: fix gdb.python/py-events.exp for finding process id

When executed with --target_board=native-extended-gdbserver, the
gdb.python/py-events.exp test errors out with

  ERROR: tcl error sourcing /path/to/gdb/testsuite/gdb.python/py-events.exp.
  ERROR: can't read "process_id": no such variable
      while executing
  "lappend expected "ptid: \\($process_id, $process_id, 0\\)" "address: $addr""
      (file "/path/to/gdb/testsuite/gdb.python/py-events.exp" line 103)
      invoked from within
  "source /path/to/gdb/testsuite/gdb.python/py-events.exp"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 source /path/to/gdb/testsuite/gdb.python/py-events.exp"
      invoked from within
  "catch "uplevel #0 source $test_file_name""

There are multiple problems around this:

1. The process_id variable is not initialized to a default value.

2. The test attempts to find the PID of the current thread, but the
   regexp that it uses is not tailored for the output printed by the
   remote target.

3. The test uses "info threads" to find the current thread PID.
   Using the "thread" command instead is simpler.

Fix these problems.
This commit is contained in:
Tankut Baris Aktemur 2022-01-12 16:06:10 +01:00
parent ae9adb3651
commit 51eebae32a

View file

@ -81,12 +81,17 @@ delete_breakpoints
# Test inferior call events
gdb_test_multiple "info threads" "get current thread" {
-re -wrap "process ($decimal)\[^\n\r\]*do_nothing.*" {
set process_id "invalid"
gdb_test_multiple "thread" "get current thread" {
-re -wrap "process ($decimal).*" {
set process_id $expect_out(1,string)
pass $gdb_test_name
}
-re -wrap "Thread $hex \\(LWP ($decimal)\\)\[^\n\r\]*do_nothing.*" {
-re -wrap "Thread $hex \\(LWP ($decimal)\\).*" {
set process_id $expect_out(1,string)
pass $gdb_test_name
}
-re -wrap "Thread $decimal\.($decimal).*" {
set process_id $expect_out(1,string)
pass $gdb_test_name
}