Looking at a a core; reading the stack.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Looking at a a core; reading the stack.

Mark Rages
I am debugging a rare intermittent problem.   When it happens, I want to
record all of RAM into flash so i can look at it later.

My problem is, given a block of memory that represents the program's state,
how do I decode the stack to see what was executing when the event happened?

I suppose gdb knows how to do this.  How can I get a binary image file to
something gdb can read?  Is there a utility to convert it to the kinds of
corefile gdb will read?

Regards,
Mark
markrages@gmail

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Mspgcc-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mspgcc-users
Reply | Threaded
Open this post in threaded view
|

Re: Looking at a a core; reading the stack.

Wayne Uroda-3
Hi Mark,

I've never had luck with backtraces even when using GDB (perhaps due to excessive optimisation).

I have managed to do a manual backtrace. If you know the PC then that will give you the current function. You can then go back through each word of the stack and look for values which match addresses which immediately follow a call to this function, and so on. With this dumb approach there is a chance of error and you will need a disassembled listing to do it. Not the most convenient method but I did have some success with it once when I was in a bind.

- Wayne



On 08/08/2014, at 14:47, Mark Rages <[hidden email]> wrote:

> I am debugging a rare intermittent problem.   When it happens, I want to
> record all of RAM into flash so i can look at it later.
>
> My problem is, given a block of memory that represents the program's state,
> how do I decode the stack to see what was executing when the event happened?
>
> I suppose gdb knows how to do this.  How can I get a binary image file to
> something gdb can read?  Is there a utility to convert it to the kinds of
> corefile gdb will read?
>
> Regards,
> Mark
> markrages@gmail
> ------------------------------------------------------------------------------
> Want fast and easy access to all the code in your enterprise? Index and
> search up to 200,000 lines of code with a free copy of Black Duck
> Code Sight - the same software that powers the world's largest code
> search on Ohloh, the Black Duck Open Hub! Try it now.
> http://p.sf.net/sfu/bds
> _______________________________________________
> Mspgcc-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Mspgcc-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mspgcc-users