kernle调试 oops

原创:kylin_zeng  原创kylin_zeng:http://blog.csdn.net/kylin_fire_zeng

参考:http://wenku.baidu.com/view/3f829a20bcd126fff7050b0a.html

http://hi.baidu.com/comcat/item/833ad9c75f4daf7688ad9e8e

 

 

反汇编

faulty.ko

 arm-linux-objdump -D faulty.ko > faulty.dis 

cat 

faulty.dis

)可以看到如下的语句如下:

反汇编hello.ko( arm-linux-objdump -D hello.ko > faulty.dis )可以看到如下的语句如下:

反汇编

00000000 <init_module>:
   0: e1a0c00d  mov ip, sp
   4: e92dd830  push {r4, r5, fp, ip, lr, pc}
   8: e24cb004  sub fp, ip, #4 ; 0x4
   c: e3a04000  mov r4, #0 ; 0x0
  10: ea000003  b 24 <init_module+0x24>
  14: e1a01004  mov r1, r4
  18: e59f0020  ldr r0, [pc, #32] ; 40 <init_module+0x40>
  1c: ebfffffe  bl 0 <printk>
  20: e2844001  add r4, r4, #1 ; 0x1
  24: e59f3018  ldr r3, [pc, #24] ; 44 <init_module+0x44>
  28: e5933000  ldr r3, [r3]
  2c: e1540003  cmp r4, r3
  30: bafffff7  blt 14 <init_module+0x14>
  34: e3a00000  mov r0, #0 ; 0x0
  38: e5800000  str r0, [r0]    ///这里错了
  3c: e89da830  ldm sp, {r4, r5, fp, sp, pc} 
  40: 00000032  .word 0x00000032
  44: 00000000  .word 0x00000000

 

 

faulty.dis

 

)可以看到如下的语句如下:

反汇编hello.ko( arm-linux-objdump -S -D hello.ko > faulty.dis )可以看到如下的语句如下:

反汇编

 

 static int __init yuer_init(void)
{
   int i;
   for(i=0; i<nbr; i++)
  20: e2844001  add r4, r4, #1 ; 0x1
  24: e59f3018  ldr r3, [pc, #24] ; 44 <init_module+0x44>
  28: e5933000  ldr r3, [r3]
  2c: e1540003  cmp r4, r3
  30: bafffff7  blt 14 <init_module+0x14>
   {
       printk(KERN_ALERT "Hello, How are you. %d\n", i);
   }


   *(int*)0=0;
  34: e3a00000  mov r0, #0 ; 0x0
  38: e5800000  str r0, [r0]
   return 0;
}

 

faulty.ko

 

 

 arm-linux-objdump -D faulty.ko > faulty.dis 

 

 

cat 

 

faulty.dis

 

)可以看到如下的语句如下:

 

 

 

利用arm-none-linux-gnueabi-gdb 调试,如下:

arm-none-linux-gnueabi-gdb vmlinux

 

 

[ 1023.520000] LR is at atmel_tasklet_func+0x10/0x690

在gdb下键入命令 : l *atmel_tasklet_func+0x10(注意:这里的‘l’是字母“L”,由于字体的原因看起来像‘1’)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值