⇤ ← Revision 1 as of 2006-08-02 00:40:18
819
Comment: Why does my stack trace not make any sense?
|
893
add the question
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
== Why does my backtrace contain a mixture of function call chains? == |
Why does my backtrace contain a mixture of function call chains?
So your kernel oopsed and gave you a stack trace that mostly makes sense, but has a function or two on it that do not get called at all in this code path?
This is a normal occurance in Linux. Unless CONFIG_FRAME_POINTER is not enabled, the function print_context_stack() simply walks the whole stack and looks for any value that might be the address of a function in the kernel. It has no way of knowing whether that address is a stack frame return address from the current code path, a left-over return address from a previous code path or just a random value that was left on the stack.
If you want to always get reliable stack traces when an oops happens, make sure you enable CONFIG_FRAME_POINTER, as well as CONFIG_STACKTRACE, CONFIG_UNWIND_INFO and CONFIG_STACK_UNWIND.
["CategoryFAQ"]