From 6e0a4f159349aa3d4f6a0c46eb23ec86197fccfc Mon Sep 17 00:00:00 2001 From: Michael Snyder Date: Wed, 15 Jul 2009 01:12:16 +0000 Subject: [PATCH] 2009-07-14 Michael Snyder * gdb.arch/i386-signal.c (sigframe): Add a nop to avoid confusing the i386 epilogue unwinder. --- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.arch/i386-signal.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index ad57d81..4c3fd09 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-07-14 Michael Snyder + + * gdb.arch/i386-signal.c (sigframe): Add a nop to avoid + confusing the i386 epilogue unwinder. + 2009-07-14 Stan Shebs * gdb.trace/tracecmd.exp: Add basic test of tracepoint conditions. diff --git a/gdb/testsuite/gdb.arch/i386-signal.c b/gdb/testsuite/gdb.arch/i386-signal.c index d44bc88..bf6f5c7 100644 --- a/gdb/testsuite/gdb.arch/i386-signal.c +++ b/gdb/testsuite/gdb.arch/i386-signal.c @@ -37,6 +37,10 @@ main (void) The default CIE created by gas suffices to unwind from an empty function. */ +/* Note: to make sure that the Dwarf unwinder gets to handle + the frame, we add an extra 'nop' after the label. Otherwise, + the epilogue unwinder will see the 'ret' and grab the frame. */ + asm(".text\n" " .align 8\n" " .globl setup\n" @@ -49,5 +53,6 @@ asm(".text\n" " nop\n" " .globl sigframe\n" "sigframe:\n" + " nop\n" " ret\n" " .cfi_endproc"); -- 2.7.4