From fa87f8e1958b8937047e3d5fcfd8c265745710ae Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 11 Jan 2024 16:05:12 +0100 Subject: [PATCH] [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 (gdb) p foo $2 = {void (int, int)} 0x10000698 (gdb) p foobar $3 = {void (int)} 0x100006d0 ... 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 Approved-By: Ulrich Weigand PR testsuite/31232 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31232 --- gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp b/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp index f361820f72f..035b15ee087 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp @@ -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 \