linux-mips
[Top] [All Lists]

Re: looking for help interpreting softlockup/stack trace

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: looking for help interpreting softlockup/stack trace
From: David Daney <ddaney@avtrex.com>
Date: Thu, 07 Aug 2008 14:57:51 -0700
Cc: Chris Friesen <cfriesen@nortel.com>, linux-mips@linux-mips.org, Thiemo Seufer <ths@networkno.de>
In-reply-to: <20080807134323.GA15703@linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <48989AFE.5000500@nortel.com> <20080805191618.GB8629@linux-mips.org> <4899F41C.5070401@avtrex.com> <20080807134323.GA15703@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.14 (X11/20080501)
Ralf Baechle wrote:
On Wed, Aug 06, 2008 at 11:57:32AM -0700, David Daney wrote:

In the trace below, is "epc" the program counter at the time of the timer interrupt? How does "ra" fit into this, given that the function whose address it contains isn't seen in the stack trace until quite a ways down?
$LBB378 is an internal symbol.  The value of RA may not be very informative
if it was overwritten by a random subroutine call.

I have thought about eliminating these internal labels when the module's 
symbols are read.  Would this make any sense?

I think so.  Maybe that could even be done when the module is linked.  I
don't think there are ever any relocations against these local symbols.
Thiemo?


I take it back.  Most of the $LC... symbols (typically string constants) are 
needed for relocations.  Currently I cannot find in my builds any $LB... 
symbols.  I wonder if gcc-4.3 eliminates these.

I think the reason they show up in stack traces is that they are data pointers 
that have been stored on the stack that are misinterpreted as function return 
addresses.


I wonder what would happen if we compiled all the code with -funwind-tables and had a small DWARF2 unwinder ala GCC's C++ exception handling mechanism. That would allow exact stack traces with no runtime overhead.
David Daney

<Prev in Thread] Current Thread [Next in Thread>