<div><br></div><div><div class="gmail_quote">On Wed, May 8, 2013 at 3:16 PM, Shraddha Kamat <span dir="ltr">&lt;<a href="mailto:sh2008ka@gmail.com" target="_blank">sh2008ka@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Any good tutorial for analyzing kernel call traces ? I want to<br>
know what is the meaning of everything that appears in the call<br>
trace and get to the exact cause of the problem.<br></blockquote><div><br></div><div>sorry , u mean &quot;backtrace&quot; call trace?   or kernel oops?<div><br></div><div><a href="http://www.linuxforu.com/2011/01/understanding-a-kernel-oops/" target="_blank">http://www.linuxforu.com/2011/01/understanding-a-kernel-oops/</a></div>
<div><br></div><div>and here is another trace:</div><div><br></div><div><a href="http://elinux.org/Kernel_Function_Trace" target="_blank">http://elinux.org/Kernel_Function_Trace</a></div><div><br></div><div>which depends on the instrumentation method:</div>
<div><br></div><div><a href="http://elinux.org/images/6/68/Kfiboot-9.lst" target="_blank">http://elinux.org/images/6/68/Kfiboot-9.lst</a></div><div><br></div><div><a href="http://elinux.org/Kernel_Instrumentation" target="_blank">http://elinux.org/Kernel_Instrumentation</a></div>
<div><br></div><div><a href="http://elinux.org/Instrumentation_API" target="_blank">http://elinux.org/Instrumentation_API</a></div><div><br></div><div>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.</div>
<div><br></div><div>above page also mentioned the use of gcc -pg, and not mentioned are other features of gcc (man gcc):</div><div><br></div><div><div>           -finstrument-functions</div><div>           -finstrument-functions-exclude-function-list=sym,sym,...</div>
<div>           -finstrument-functions-exclude-file-list=file,file,...  </div><div><br></div></div><div>Beware though, sometimes compilation will explicitly remove the use of frame pointer:   </div><div><br></div><div>-fomit-frame-pointer</div>
<div><br></div><div>without the &quot;ebp&quot; and &quot;esp&quot; 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 &quot;stack trace&quot;, or &quot;call trace&quot; will not be accurately shown.   Other possibilities are that the function names are declared with &quot;static&quot; as well, and u will end up with numerical offset from the nearest function with name.</div>
</div><div> </div></div>-- <br>Regards,<br>Peter Teoh
</div>