linux下当进程运行出现错误退出对错误信息分析

如下错误信息:

<7>[  824.840000] factory-test: unhandled page fault (7) at 0x20090200, code 0x817//此处表明是factory-test进程出错,空指针错误

<1>[  824.840000] pgd = c3d48000

<4>[  824.840000] T:803

<1>[  824.840000] [20090200] *pgd=43e0e031, *pte=00000000T:802

<4>[  824.850000] , *ppte=00000000T:820

<4>[  824.850000]

<4>[  824.850000]

<4>[  824.850000] Pid: 1098, comm:         factory-test

<4>[  824.850000] CPU: 0    Not tainted  (2.6.32.9-bcm5892 #6)

<4>[  824.850000] T:804

<4>[  824.850000] PC is at 0x400a4ee8

<4>[  824.850000] LR is at 0x400a4ea4

<4>[  824.850000] pc : [<400a4ee8>]    lr : [<400a4ea4>]    psr: 20000010

<4>[  824.850000] sp : bea706a4  ip : 20080090  fp : 00000000//此信息及其重要,表明PC指针位置为0x400a4ee8LR0x400a4ea4SPbea706a4,此时可以大致定位错误点

<4>[  824.850000] T:800

<4>[  824.850000] r10: 00000008  r9 : 20000000  r8 : 00000012

<4>[  824.850000] r7 : 20080000  r6 : 00000000  r5 : 00000009  r4 : 20090000

<4>[  824.850000] r3 : 00000200  r2 : 00000000  r1 : 20090200  r0 : 00000001

<4>[  824.850000] Flags: nzCv  IRQs on  FIQs on  Mode USER_32  ISA ARM  Segment user//表明错误出现在用户模式USER_32下,即为应用错误

<4>[  824.850000] Control: 00c5387d  Table: 43d48008  DAC: 00000015

<4>[  824.850000] [<c0031fb4>] (show_regs+0x0/0x4c) from [<c0036380>] (__do_user_fault+0x5c/0xa4)

<4>[  824.850000]  r4:c3f6ec60

<4>[  824.850000] [<c0036324>] (__do_user_fault+0x0/0xa4) from [<c00365f8>] (do_page_fault+0x1b4/0x1e4)

<4>[  824.850000]  r7:20090200 r6:c3d77ca0 r5:c3f6ec60 r4:00000002

<4>[  824.850000] [<c0036444>] (do_page_fault+0x0/0x1e4) from [<c0030310>] (do_DataAbort+0x3c/0x9c)

<4>[  824.850000] [<c00302d4>] (do_DataAbort+0x0/0x9c) from [<c0030f84>] (ret_from_exception+0x0/0x10)

<4>[  824.850000] Exception stack(0xc2867fb0 to 0xc2867ff8)

<4>[  824.850000] 7fa0:                                     00000001 20090200 00000000 00000200

<4>[  824.850000] 7fc0: 20090000 00000009 00000000 20080000 00000012 20000000 00000008 00000000

<4>[  824.850000] 7fe0: 20080090 bea706a4 400a4ea4 400a4ee8 20000010 ffffffff

<4>[  824.850000]  r8:00000012 r7:20080000 r6:00000000 r5:00000009 r4:ffffffff

 

 

 

根据上述错误信息分析,可以知道错误在用户模式下的factory-test进程中,且此时的PC指针位置为0x400a4ee8LR0x400a4ea4SPbea706a4,此时可以大致定位错误点;

方法:

使用ps查看factory-test进程对应的PID1060

此时进入1060目录下:cd  /proc/1060

Cat maps即可查看factory-test进程所引用的.so以及各个.so所在的内存地址范围,根据PC指针的地址查找此地址是落在哪个.so地址范围即可定位;

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值