Hi Mark, jankratochvil/testsO2
On Thu, 05 Dec 2013 11:26:13 +0100, Mark Wielaard wrote: > The backtrace generated is: > > TID 31941: > #0 0x00007fd3a47975db raise sigusr2 is missing here > #1 0x00007fd3a4bc7dec stdarg > #2 0x00007fd3a4bc7e70 backtracegen > #3 0x00007fd3a4bc7e79 start > #4 0x00007fd3a478f9d1 start_thread > #5 0x00007fd3a44dcb6d __clone it is because of -O2 in build CFLAGS and tail call optimization: Dump of assembler code for function sigusr2: [...] 0x00007f1fc53bdd43 <+19>: mov $0x6,%edi 0x00007f1fc53bdd48 <+24>: add $0x8,%rsp 0x00007f1fc53bdd4c <+28>: jmpq 0x7f1fc53bd960 <raise@plt> OK for check-in? Thanks, Jan
>From f88863fbb3a7380ad8c7ebcdf6dceb023f3ccf75 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil <jan.kratoch...@redhat.com> Date: Thu, 5 Dec 2013 16:16:14 +0100 Subject: [PATCH] Fix test FAIL with -O2 Signed-off-by: Jan Kratochvil <jan.kratoch...@redhat.com> --- tests/ChangeLog | 5 +++++ tests/backtrace-child.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/ChangeLog b/tests/ChangeLog index 8992568..9e4cd9a 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2013-12-05 Jan Kratochvil <jan.kratoch...@redhat.com> + + Fix test FAIL with -O2. + * backtrace-child.c (sigusr2): Add NOINLINE_NOCLONE and final asm stub. + 2013-12-05 Mark Wielaard <m...@redhat.com> * backtrace-data.c (main): If unsupported also print to stderr. diff --git a/tests/backtrace-child.c b/tests/backtrace-child.c index 2bc0ede..0db1258 100644 --- a/tests/backtrace-child.c +++ b/tests/backtrace-child.c @@ -93,7 +93,7 @@ static int ptraceme, gencore; /* Execution will arrive here from jmp by an artificial ptrace-spawn signal. */ -static void +static NOINLINE_NOCLONE void sigusr2 (int signo) { assert (signo == SIGUSR2); @@ -105,6 +105,8 @@ sigusr2 (int signo) } /* Here we dump the core for --gencore. */ raise (SIGABRT); + /* Avoid tail call optimization for the raise call. */ + asm volatile (""); } static NOINLINE_NOCLONE void -- 1.8.3.1