native库崩溃后,利用logcat输出的调用堆栈信息定位问题的方法
2011-07-14 17:22
441 查看
1: 找到addr2line工具所在目录,如:android_source/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-addr2line
2: 找到要定位地址的lib库文件
3: 在源代码根目录执行命令
<addr2line目录>\<addr2line工具名称> -f -e <lib目录>\<lib库文件名称> 0x<在logcat中查询的地址>
4: 结果显示函数(类)及代码所在行数等信息
例如:logcat输出的程序崩溃stack信息 #00 pc 0000e234 /system/lib/libc.so
则:我们可以在源代码目录输入如下命令来定位:
./prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-addr2line -f -e ./out/target/product/generic/symbols/system/lib/libc.so 0x0000e234
2: 找到要定位地址的lib库文件
3: 在源代码根目录执行命令
<addr2line目录>\<addr2line工具名称> -f -e <lib目录>\<lib库文件名称> 0x<在logcat中查询的地址>
4: 结果显示函数(类)及代码所在行数等信息
例如:logcat输出的程序崩溃stack信息 #00 pc 0000e234 /system/lib/libc.so
则:我们可以在源代码目录输入如下命令来定位:
./prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-addr2line -f -e ./out/target/product/generic/symbols/system/lib/libc.so 0x0000e234
相关文章推荐
- 利用Xposed Hook打印Java函数调用堆栈信息的几种方法
- android堆栈信息定位方法
- linux下程序崩溃后记录调用堆栈.以便查找问题
- windows关于程序release 加上调试信息 利用pdb dump定位的问题
- 在Linux中如何利用backtrace信息解决程序崩溃的问题
- VC++有源码调试中崩溃问题定位的一个好方法
- logcat 不能输出任何信息的原因及解决方法
- 代理 -> 在viewController,没有初始化时,有调用代理方法,解决崩溃问题
- 利用反射机制编写一个程序,这个程序能指定调用类的某个方法及构造方法,并把操作信息输出到控制台。
- 类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们的问题的解决方法
- iOS - (利用/调用系统定位获取当前经纬度与地理信息)
- iOS崩溃堆栈符号化,定位问题分分钟搞定!
- 关于崩溃等问题的定位总结(使用qcc的一些方法来尝试)
- 利用反射调用方法时,处理ref,out参数需要注意的问题
- ios无法定位CLLocationManager Delegate方法不能被调用的问题
- 运行时获取方法调用堆栈信息(java)
- 关于datagrid中控件利用js调用后台方法事件的问题
- 解决Eclipse中Logcat无输出信息问题
- Linux下利用backtrace追踪函数调用堆栈以及定位段错误
- XZ_iOS之崩溃信息的查看,调用堆栈的调试技巧