kernel crash analysis

1. write one self trigger ramdump method

#echo c > /proc/sysrq-trigger

2. load kernel dump file to crash analyzer

crash vmlinux /home/xxxxx/debug/K1939EL.RAM

or

crash -m phys_base=offset(0x80000000) vmlinux K0342EL.RAM

 

3.setup crash environment

  mkdir debug

 cd debug

 wget http://people.redhat.com/anderson/crash-7.0.0.tar.gz

 tar -zxvf crash-7.0.0.tar.gz
 cd crash-7.0.0

 make target=ARM

 sudo make install crash

 sudo make extensions ( and it will generate some extension lib)

 

4. some commands

   a. bt pid | task--- display stack backtrace

bt
PID: 0      TASK: c06913a8  CPU: 0   COMMAND: "swapper/0"
 #0 [<c0489da4>] (__schedule) from [<c048a47c>]
 #1 [<c048a3fc>] (schedule) from [<c048a6d4>]
 #2 [<c048a6b0>] (schedule_preempt_disabled) from [<c0010a48>]
 #3 [<c0010974>] (cpu_idle) from [<c04795d4>]
 #4 [<c0479564>] (rest_init) from [<c06397c4>]
 #5 [<c063951c>] (start_kernel) from [<8000803c>]


   b. log or log > 1.log to get log

  c. objdump to generate asm code from elf

   ./../../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-objdump -D vmlinux > kernel.asm

 d.read data from the memory
 #rd

 e.# irq

 f. ps to list all threads,

 g. task to list all task information

h. help to get all manual information

 

5. example.

find corrupt, and we will analyze pc(r15), sp(r13), fp(r11).

 

[  250.553810:0] Internal error: Oops: 805 [#1] PREEMPT SMP ARM
[  250.559479:0] Modules linked in: bcmdhd mali ump
[  250.564216:0] CPU: 0    Tainted: G        W     (3.4.5-g3d90f8c-dirty #27)
[  250.571118:0] PC is at sysrq_handle_crash+0x20/0x2c
[  250.576086:0] LR is at __handle_sysrq+0xa8/0x154
[  250.580716:0] pc : [<c01f0600>]    lr : [<c01f0c38>]    psr: 60000093
[  250.580725:0] sp : e5347ec0  ip : e5347ed0  fp : e5347ecc
[  250.592650:0] r10: e5347f78  r9 : ee98d10c  r8 : 00000000
[  250.598139:0] r7 : 60000013  r6 : 00000063  r5 : 00000007  r4 : c06ab6f0
[  250.604851:0] r3 : 00000001  r2 : 00000000  r1 : 60000093  r0 : 00000063
[  250.611645:0] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  250.619135:0] Control: 10c53c7d  Table: 9e09406a  DAC: 00000015
[  250.625064:0]
[  250.625069:0] PC: 0xc01f0580:
[  250.629771:0] 0580  1a000001 eb0a6ca0 ea000006 eb0a6c9e e1a00007 e1a01006 ebffe0a0 ea000001
[  250.638194:0] 05a0  e1a00006 ebffdb8f e1a00004 e89da9f8 c07143ec c06ab444 e1a0c00d e92dd800
[  250.646699:0] 05c0  e24cb004 e59f3010 e5932000 e3520000 05d30004 13a00001 e89da800 c0689ee0
[  250.655207:0] 05e0  e1a0c00d e92dd800 e24cb004 e59f2014 e3a03001 e5823000 f57ff04f e3a02000
[  250.663643:0] 0600  e5c23000 e89da800 c06e5dac e1a0c00d e92dd830 e24cb004 e59f401c e2405030
[  250.672072:0] 0620  e59f0018 e3a03007 e1a01005 e5843000 eb0a4e54 e5845000 e89da830 c06a00b0
[  250.680576:0] 0640  c05b8641 e1a0c00d e92dd830 e24cb004 e5904000 e1a05000 eb01caf8 e2840024
[  250.689083:0] 0660  ebf96722 e1a00005 eb01cab3 e1a00004 ebfb3c89 e89da83

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值