This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

backtrace/2460: cross gdb for ARM can not produce backtrace


>Number:         2460
>Category:       backtrace
>Synopsis:       cross gdb for ARM can not produce backtrace
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri May 23 21:38:02 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     rtrask@broadcom.com
>Release:        GNU gdb 6.8
>Organization:
>Environment:
Linux Redhat FC4 on i386, remote connection to ARM target
>Description:
Setup gdb over remote link to debug ARM target.
Set breakpoint well inside target's call chain.
Then:

(gdb) bt full
#0  foo ()
    at /<path>/bar.c:19795
No locals.

The line number is correct. "No locals" is incorrect: there are three of them.
GDB only seems to know about one stack frame. That is incorrect: there are several. I dumped memory above the stack pointer value returned by gdb (via info registers).
One can manually backtrace using a disassembled image and the stack memory dump by inverting operations on the sp and picking the lr contents off of the stack. But we were counting on gdb to do this for us!

I have compiled using -ggdb. Changing the level or using only -g does not help. Note that using -gstabs does not help AND has problems with source line number info per PR 2458.

Can anyone help with this? What's missing?
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]