sorry , u mean "backtrace" call trace? or kernel oops?
and here is another trace:
which depends on the instrumentation method:
many of these traces, simply depends on the concept of call frames, or a range of memory addresses allocated on the stack used by the functions.
above page also mentioned the use of gcc -pg, and not mentioned are other features of gcc (man gcc):
-finstrument-functions
-finstrument-functions-exclude-function-list=sym,sym,...
-finstrument-functions-exclude-file-list=file,file,...
Beware though, sometimes compilation will explicitly remove the use of frame pointer:
-fomit-frame-pointer
without the "ebp" and "esp" to demarcate the start and end of a frame, there is no way to know the beginning and end of a call frame, and therefore "stack trace", or "call trace" will not be accurately shown. Other possibilities are that the function names are declared with "static" as well, and u will end up with numerical offset from the nearest function with name.