2009-09-09 09:49:26     using Kernel panic information

Document created by Aaronwu Employee on Aug 19, 2013
Version 1Show Document
  • View in full screen mode

2009-09-09 09:49:26     using Kernel panic information

Filip Vanalme (BELGIUM)

Message: 79707   




My application is causing a Kernel Panic. This gives me some information (addresses, call trace) about the place in the software that contains the problem. (Somewhere, it is accessing memory out of range...)

On the other hand, a map file is created when compiling/linking the application. Also containing address information.


But how can I "couple" these two information sources ? I notice that the addresses from the dump do not correspond with the addresses in the map file. However, there must be a relationship, no ? How do I map the addresses of the dump onto the addresses of the map file ?






screenshot of the kernel panic :




Stack from 0020aa28:<0>

       <0> 00000000<0> 001052ac<0> 00000000<0> 00797396<0> 0000ffff<0> ffa00226<0> 0b0013d0<0> 00000044<0>

       <0> 0065fedc<0> 00000001<0> 00106824<0> 00006480<0> 00000004<0> 00000030<0> 0065fc48<0> 00000026<0>

       <0> 02001004<0> 004b227a<0> 004b227a<0> 00000026<0> 00000000<0> 006ec000<0> 00797396<0> 004b227a<0>

       <0> 007975c0<0> 00000063<0> 02001004<0> 00000001<0> 004afd8d<0> 00000000<0> 004afd8a<0> 00000000<0>

       <0> 00000000<0> 00000000<0> 00000000<0> 00000000<0> 00000000<0> 00000312<0> 00420244<0> 0065edc8<0>

       <0> 00001000<0> 00000000<0> 00000000<0> 00000000<0> 00000000<0> 00000000<0> 00000000<0> 00000000<0>

Call Trace:<0>

       <0> [<00100000>]<0> [<00107d8c>]<0> [<00107dd0>]<0> [<00107e1c>]<0>

       <0> [<00107e60>]<0> [<00107cd0>]<0> [<00107d24>]<0> [<00107d58>]<0>

       <0> [<00107cd0>]<0> [<00107cd4>]<0> [<00107cfc>]<0> [<001e4d54>]<0>

       <0> [<001e4d68>]<0> [<00184d1c>]<0> [<00184d28>]<0> [<001e8278>]<0>

       <0> [<00184c74>]<0> [<001e4d78>]<0> [<00184d1c>]<0> [<00184d28>]<0>

       <0> [<001e8278>]<0> [<00184c74>]<0> [<001e4d84>]<0> [<00184d1c>]<0>

       <0> [<00184d28>]<0> [<001e8278>]<0> [<00184c74>]<0> [<001e4d90>]<0>

       <0> [<00184d1c>]<0> [<00184d28>]<0>

Kernel panic - not syncing: No CPLB Address Match




2009-09-09 09:55:32     Re: using Kernel panic information

Mike Frysinger (UNITED STATES)

Message: 79708   






2009-09-10 03:24:41     Re: using Kernel panic information

Filip Vanalme (BELGIUM)

Message: 79739   




Altough I have the option KALLSYMS enabled (for the kernel) and the -g option when compiling the application, I still don't see any symbols in the kernel panic dump. I just have addresses.

Somewhere in the text of that document it says : "You can convert the addresses by hand using the appropriate System.map file,...", but I didn't find out how to do it. And I think this relates to Kernel degubbing, not application debugging. I assume the principle could be the same for an application, using the application's map file generated when linking.


I think I might have, again, a problem of kernel version I use. Still stuck with version 2006R1... (not my choice...still not allowed to change to 2008 version...). That's probably the reason why the output of my kernel panic is not corresponding with the outputs mentioned in the doc... and probably the reason why I don't get any symbol information...

However, even with that old version, there should be a way to get information from the addresses printed in the kernel panic dump, no ?


(forgot to mention, may be important : my application is started manually, no automatic start when kernel boots up)


Best Regards,






2009-09-10 03:50:15     Re: using Kernel panic information

Mike Frysinger (UNITED STATES)

Message: 79744   


the kernel is never going to decode userspace symbols.  there is no such map file for user apps either the majority of the time.  just use the ELF binary itself.


as for trace output in 2006R1, we really dont know ... much too long ago for us to remember how it worked.  2009R1 seems to work fine.




2009-09-10 11:54:45     Re: using Kernel panic information


Message: 79755   




I don't think that 2006 kernel had the option for tracing, and putting out symbol info. That is something Mike and I added circa late 2006 - after 2006 release was out.


My suggestion is to run things under gdb - that should work -- if not, just run the userspace portion on a new kernel - debug things there, and then move it back to 2006 for your product.