This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug backtrace/10310] (GNU/Linux:GCC:C lang: ARM platform) Core dump backtrace on stripped binaries Halts in 2 levels
- From: "informkarthik at gmail dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: 23 Jun 2009 07:03:07 -0000
- Subject: [Bug backtrace/10310] (GNU/Linux:GCC:C lang: ARM platform) Core dump backtrace on stripped binaries Halts in 2 levels
- References: <20090622172820.10310.informkarthik@gmail.com>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- Additional Comments From informkarthik at gmail dot com 2009-06-23 07:03 -------
(In reply to comment #0)
> Backtrace on stripped binaries in ARM platform do not go beyond two levels. gdb
> throws 'identical frame' (corrupt stack) message. Noticed that gdb takes the
> path of stack unwinding using frame pointer and standard stack frame structure.
> How reliable is this?
>
> Steps to reproduce:
> 1) Just build using the following compiler options
> -mabi=aapcs-linux -mno-thumb-interwork -fno-strict-aliasing -fno-common -Os
> -fno-strict-aliasing -fno-common -marm -mhard-float -mfloat-abi=softfp -mfpu=vfp
> -mno-sched-prolog -march=armv5te -mtune=marvell-f -fno-optimize-sibling-calls
> -fno-stack-protector -fno-omit-frame-pointer -fPIC.
> 2) send sigsegv or sigabrt to the app.
> 3) core dumped.
> 4) arm-none-linux-gnueabi-gdb app core
> 5) bt gives only two levels of addresses and halts with the message
> previous frame identical to this frame (corrupt stack?).
> ---
> Noticed similar output in my x86 setup also.. except that it prints the same
> couple of addresses twice before exiting with the 'identical frame' message.
I see it even in unstripped binaries right now.. it looks like this
(gdb) bt
#0 0x00008344 in temp3 ()
#1 0x00008358 in temp2 ()
#2 0x00008358 in temp2 ()
#3 0x00008370 in temp1 ()
#4 0x000083a0 in main ()
Look at temp2. Note all the funtions just call the next function and do nothing
else. temp3 has while(1) in it so that i can send a signal and get core dump.
The stack looks like the following:
(gdb) x/16w $sp-12
0x56d7dd34: 0x00008294 0x00000000 0x00000000 0x56d7dd4c
0x56d7dd44: 0x00008358 0x56d7dd54 0x00008370 0x56d7dd64
0x56d7dd54: 0x000083a0 0x00000005 0x40024e00 0x00000000
0x56d7dd64: 0x4003aff4 0x40153000 0x56d7deb4 0x00000001
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
http://sourceware.org/bugzilla/show_bug.cgi?id=10310
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.