diff -r 000000000000 -r fb279309251b debuggercdi/com.nokia.carbide.cpp.debug.crashdebugger/html/DebuggingInformation/CrashDebuggerCallStack.guide04.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debuggercdi/com.nokia.carbide.cpp.debug.crashdebugger/html/DebuggingInformation/CrashDebuggerCallStack.guide04.html Fri Apr 03 23:33:03 2009 +0100 @@ -0,0 +1,108 @@ + + + Tracing through the Stack Heuristically + + + +
+

Tracing through the Stack Heuristically

+
+
+One way of tracing through the call stack is to assume that every word on the stack which looks like a ROM code address is a saved return +address. We say that this heuristic because: + +

If you want to trace applications loaded into RAM, then stack +tracing is more difficult because RAM-loaded DLLs are given addresses assigned +at load time.

+

On ARM, the stack pointer starts at the higher address end and +moves 'down' towards the lower address end. This means that values at the top +of the memory dump are more recent. You need to look back through this for code +addresses. For ROM code this will be words with most significant byte in the +range 0xF8 to 0xFF, remembering that they are +little-endian. This can either be done manually, or automatically using the +printsym.pl perl script, which can be found in +...\epoc32\tools.

+

Let's follow this in an example session:

+ +
Related tasks
+ + +
\ No newline at end of file