Linux MIPS Architecture development
 help / color / mirror / Atom feed
* general mips question
@ 2000-05-15 21:09 Peter Popov
  2000-05-15 21:32 ` Ralf Baechle
  0 siblings, 1 reply; 2+ messages in thread
From: Peter Popov @ 2000-05-15 21:09 UTC (permalink / raw)
  To: linux@engr.sgi.com


Is it possible to "walk" the stack on a mips system after a crash to
figure out all the functions which were called upto and including the
function where the crash occurred?  For example, I can do that on an
i960 system because of the help I get from the cpu in creating a stack
and saving some registers for every function call.  If A called B which
called C which called D, I can walk the stack on an i960 system and
figure out how I got to D. But I can't quite figure out how to do that
in software on a mips system.  All I can get is the return address of
the current function -- eg if the system crashed in D, all I can get is
the return address which is somewhere in function C.  Any ideas?

Thanks,

Pete

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: general mips question
  2000-05-15 21:09 general mips question Peter Popov
@ 2000-05-15 21:32 ` Ralf Baechle
  0 siblings, 0 replies; 2+ messages in thread
From: Ralf Baechle @ 2000-05-15 21:32 UTC (permalink / raw)
  To: Peter Popov; +Cc: linux@engr.sgi.com

On Mon, May 15, 2000 at 02:09:17PM -0700, Peter Popov wrote:

> Is it possible to "walk" the stack on a mips system after a crash to
> figure out all the functions which were called upto and including the
> function where the crash occurred?  For example, I can do that on an
> i960 system because of the help I get from the cpu in creating a stack
> and saving some registers for every function call.  If A called B which
> called C which called D, I can walk the stack on an i960 system and
> figure out how I got to D. But I can't quite figure out how to do that
> in software on a mips system.  All I can get is the return address of
> the current function -- eg if the system crashed in D, all I can get is
> the return address which is somewhere in function C.  Any ideas?

Well, you couldn't figure out simply because it's not possible to unwind
MIPS stackframes without the help of debug information or doing stunts
like analysing the code of the returning function.  A reasonable heuristic
should be to search the stack for words that have valid text addresses
in them.

  Ralf

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2000-05-15 21:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-05-15 21:09 general mips question Peter Popov
2000-05-15 21:32 ` Ralf Baechle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox