[gdb/testsuite] Fix gdb.gdb/selftest.exp
authorTom de Vries <tdevries@suse.de>
Mon, 13 Sep 2021 09:13:28 +0000 (11:13 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 13 Sep 2021 09:13:28 +0000 (11:13 +0200)
With a gdb build with CFLAGS "-O2 -g -flto=auto", I run into:
...
 #7  gdb_main (args=0x7fffffffd220) at src/gdb/main.c:1368^M
 #8  main (argc=<optimized out>, argv=<optimized out>) at src/gdb/gdb.c:32^M
 (gdb) FAIL: gdb.gdb/selftest.exp: backtrace through signal handler
...
which means that this regexp in proc test_with_self fails:
...
  -re "#0.*(read|poll).*in main \\(.*\\) at .*gdb\\.c.*$gdb_prompt $" {
...

The problem is that gdb_main has been inlined into main, and consequently the
backtrace uses:
...
 #x  <fn> ...
...
instead of
...
 #x  <address> in <fn> ...
...

Fix this by updating the regexp to not require "in" before " main".

Tested on x86_64-linux.

gdb/testsuite/gdb.gdb/selftest.exp

index bee3010bca1175dd8a8f79a883c7a0a5ca1d81c6..35b06e53e9029af10b9b00b76225d5bedd5c119f 100644 (file)
@@ -143,7 +143,7 @@ proc test_with_self { } {
     setup_xfail "i*86-pc-linuxaout-gnu"
     set description "backtrace through signal handler"
     gdb_test_multiple "backtrace" "$description" {
-       -re "#0.*(read|poll).*in main \\(.*\\) at .*gdb\\.c.*$gdb_prompt $" {
+       -re "#0.*(read|poll).* main \\(.*\\) at .*gdb\\.c.*$gdb_prompt $" {
            pass "$description"
        }
     }