linux挂死问题分析

ko挂死/内核挂死/coredump问题

objdump命令:对目标文件(obj)或可执行文件进行反汇编,可以生成对应的函数,地址信息文件.

DEBUG方法:

1.反汇编方法, 用objdump生成信息与函数名,然后加偏移找到需要查看位置(makefile 有可能要开-g进行调试)
2.用addr2line查看地址对应的文件及代码行数.根据第一步生成地址信息和函数名,然后加偏移找到需要查看位置

命令:
		arm-linux-gnueabi-objdump -S -D  inputfile >outputfile.txt
		
		使用GCC编译生成的:
		   arm-linux-gnueabi-objdump -d test.ko > obj_dump_d.txt
		   arm-linux-gnueabi-addr2line -e test.ko 0xxxxxx
		使用Clang编译的:
			cd out/target/product/xx/obj/KERNELOBJ/
             aarch-linux-android-addr2line -e vmlinux.o 0xXXXXXX

动态库挂死问题

GCC编译的:
在out/target/product/XXXXXX/symbols/system/lib目录下进行库的addr2line(必须加-e的参数):
arm-linux-androideabi-addr2line -e xxxxx.so 0xXXXX
加"-f"参数:把指把函数名打印出来
arm-linux-androideabi-addr2line -e xxx.so 0xxxxx -f
加"-fa"参数: 会打印文件、函数名以及地址
arm-linux-androideabi-addr2line -e libgkbsp.so 0xXXXX -fa

Clang编译的:
llvm-addr2line -Cfe xx.so 0xXXXX

Android环境 假如我圈起来那行是最终PC指针所在的位置.在 out/target/product/XXXXX/symbols/system/lib目录中:
arm-linux-gnueabi-addr2line -e libskia.so 15787f
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值