The checkpoint-multi.exp test stops a program while it is sleeping
using a call to the usleep() function from libc. The test checks whether
the inferior is running by matching for "<running>" (if the inferior
is running) or a hex address followed by a function name, ideally, if
the inferior is stopped.
On most systems this works fine :
(gdb) info checkpoints
Id Active Target Id Frame
* 1.0 y process
1546841 at 0x00007ffff7ceca7a, <clock_nanosleep>
1.1 n process
1547177 at 0x00005555555551f0, file /home/sdarche/binutils-gdb/build-x86/gdb/testsuite/../../../gdb/testsuite/gdb.multi/hello.c, line 51
2.0 y process
1547076 at 0x0000555555555243, file /home/sdarche/binutils-gdb/build-x86/gdb/testsuite/../../../gdb/testsuite/gdb.multi/goodbye.c, line 46
2.1 n process
1547120 at 0x0000555555555285, file /home/sdarche/binutils-gdb/build-x86/gdb/testsuite/../../../gdb/testsuite/gdb.multi/goodbye.c, line 61
I have found however that the output from `info checkpoints` is
different on some systems with (stripped) versions of the libc without
debug infos :
(gdb) info checkpoints
Id Active Target Id Frame
* 1.0 y process 979642 at 0x00007ffff7e49687
1.1 n process 979647 at 0x00005555555551ac, file /home/sdarche/binutils-gdb/build/gdb/testsuite/../../../gdb/testsuite/gdb.multi/hello.c, line 51
2.0 y process 979645 at 0x000055555555523b, file /home/sdarche/binutils-gdb/build/gdb/testsuite/../../../gdb/testsuite/gdb.multi/goodbye.c, line 46
2.1 n process 979646 at 0x0000555555555271, file /home/sdarche/binutils-gdb/build/gdb/testsuite/../../../gdb/testsuite/gdb.multi/goodbye.c, line 61
Where the frame can be found, but GDB cannot find the function. This
fails the last two tests in checkpoint-multi.exp on those system, even
though the behaviour is as expected.
This patch removes the comma from the regex that matches with the frame
number. The test now passes fine on the system.
Change-Id: Iced4931d77f647046c87889455264cb169f480ff
Approved-by: Kevin Buettner <kevinb@redhat.com>
gdb_test "info checkpoints" \
[multi_line \
"$checkpoints_header_re" \
- "\\* 1\\.0 y +$proc_re +at $::hex,.*" \
+ "\\* 1\\.0 y +$proc_re +at $::hex.*" \
" 1\\.1 n +$proc_re +at $::hex, file.*?$hello_c.*?" \
" 2\\.0 y +$proc_re +at $::hex, file.*?$goodbye_c.*?" \
" 2\\.1 n +$proc_re +at $::hex, file.*?$goodbye_c.*?"]
gdb_test "info checkpoints" \
[multi_line \
"$checkpoints_header_re" \
- " 1\\.0 y +$proc_re +at $::hex,.*" \
+ " 1\\.0 y +$proc_re +at $::hex.*" \
" 1\\.1 n +$proc_re +at $::hex, file.*?$hello_c.*?" \
" 2\\.0 n +$proc_re +at $::hex, file.*?$goodbye_c.*?" \
"\\* 2\\.1 y +$proc_re +at $::hex, file.*?$goodbye_c.*?"]