[gdb/testsuite] Fix gdb.dwarf2/dw2-entry-points.exp on ppc64le
On ppc64le-linux, I run into: ... (gdb) bt^M #0 0x00000000100006dc in foobar (J=2)^M #1 0x000000001000070c in prog ()^M (gdb) FAIL: gdb.dwarf2/dw2-entry-points.exp: bt foo ... The test-case attemps to emulate additional entry points of a function, with function bar having entry points foo and foobar: ... (gdb) p bar $1 = {void (int, int)} 0x1000064c <bar> (gdb) p foo $2 = {void (int, int)} 0x10000698 <foo> (gdb) p foobar $3 = {void (int)} 0x100006d0 <foobar> ... However, when setting a breakpoint on the entry point foo: ... (gdb) b foo Breakpoint 1 at 0x100006dc ... it ends up in foobar instead of in foo, due to prologue skipping, and consequently the backtrace show foobar instead foo. The problem is that the test-case does not emulate an actual prologue at each entry point. Fix this by disabling the prologue skipping when setting a breakpoint, using "break *foo". Tested on ppc64le-linux and x86_64-linux. Tested-By: Guinevere Larsen <blarsen@redhat.com> Approved-By: Ulrich Weigand <Ulrich.Weigand@de.ibm.com> PR testsuite/31232 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31232
This commit is contained in:
parent
4ece39c56c
commit
fa87f8e195
@ -180,8 +180,8 @@ if ![runto_main] {
|
||||
}
|
||||
|
||||
# Try whether we can set and hit breakpoints at the entry_points.
|
||||
gdb_breakpoint "foo"
|
||||
gdb_breakpoint "foobar"
|
||||
gdb_breakpoint "*foo"
|
||||
gdb_breakpoint "*foobar"
|
||||
|
||||
# Now hit the entry_point break point and check their call-stack.
|
||||
gdb_continue_to_breakpoint "foo"
|
||||
@ -204,7 +204,7 @@ if ![runto_main] {
|
||||
return -1
|
||||
}
|
||||
|
||||
gdb_breakpoint "fooso"
|
||||
gdb_breakpoint "*fooso"
|
||||
gdb_continue_to_breakpoint "foo_so"
|
||||
|
||||
gdb_test "bt" [multi_line \
|
||||
|
Loading…
x
Reference in New Issue
Block a user