Forums

Stack Trace

Started by Unknown January 11, 2006
Hi,
Please guide me to the right group(s) if the post isn't on topic here.

My program is running on a ARM7 h/w on top of an RTOS. I want to dump
the names of the functions that were called in the sequence they were
called (stack) onto a file as part of the assert routine. Something
like a core dump in *nix.

How to implement something like this? Where do I need to look?

Regards
Sukrit

In comp.arch.embedded sukrit.mehra@gmail.com wrote:

> My program is running on a ARM7 h/w on top of an RTOS. I want to dump > the names of the functions that were called in the sequence they were > called (stack) onto a file as part of the assert routine. Something > like a core dump in *nix.
Thats' not very likely a good idea in an embedded system, which won't typically have anywhere to output this stack dump to in the first place, nor the symbol tables needed to decode address into names, nor still be in a state stable enough for the printed dump to be 100% credible. You should use existing dedicated debugging interface of the CPU (--> JTAG) and your development system's debugger instead. Or get a development environment that can do that for you, if your current one doesn't. Better still, don't let assert() failures occur, ever, in code far enough from your desk that your debugging tools can't access it ;-)
> How to implement something like this? Where do I need to look?
If you must ask, the answer is unlikely to be of much use to you. Such information should be part of your RTOS's and/or compiler's technical documentation, if it's made available at all. If you didn't guess that by yourself, I'm afraid you're rather clearly in over your head already. -- Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de) Even if all the snow were burnt, ashes would remain.
sukrit.mehra@gmail.com writes:
> Please guide me to the right group(s) if the post isn't on topic here. > > My program is running on a ARM7 h/w on top of an RTOS. I want to dump > the names of the functions that were called in the sequence they were > called (stack) onto a file as part of the assert routine. Something > like a core dump in *nix. > > How to implement something like this? Where do I need to look?
This looks appropriate for comp.arch.embedded; it's off-topic for comp.lang.c. Followups redirected. (Not that that will do any good unless everyone responds to this followup.) -- Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst> San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst> We must do something. This is something. Therefore, we must do this.
sukrit.mehra@gmail.com wrote:

> Hi, > Please guide me to the right group(s) if the post isn't on topic here. > > My program is running on a ARM7 h/w on top of an RTOS. I want to dump > the names of the functions that were called in the sequence they were > called (stack) onto a file as part of the assert routine. Something > like a core dump in *nix. > > How to implement something like this? Where do I need to look?
I suspect that you ill need to supply more information about which RTOS and what programming environment you are using in order to get the most appropriate response to this question. Of course, had you been using Forth, I could have given an answer to this as such things are usually easy for a Forth based system to do (by several methods). -- ******************************************************************** Paul E. Bennett ....................<email://peb@amleth.demon.co.uk> Forth based HIDECS Consultancy .....<http://www.amleth.demon.co.uk/> Mob: +44 (0)7811-639972 Tel: +44 (0)1235-811095 Going Forth Safely ..... EBA. www.electric-boat-association.org.uk.. ********************************************************************