跟踪Android调用堆栈
来源:互联网 发布:常用pop端口 编辑:程序博客网 时间:2024/04/28 17:26
调试so中的内存错误::
通常编译Android代码时,出于size的考虑,剔除了符号信息。但我们可以使用编译时生成的二进制文件(转注:含有符号信息的文件,通常位于./out/target/product/[PROJECT]/symbols/system/lib/目录),获取其符号信息,从而得到调用堆栈:
prebuilts\gcc\linux-x86\arm\arm-linux-androideabi-4.7\bin\arm-linux-androideabi-addr2line -f -e ./out/target/product/[PROJECT]/symbols/system/lib/libxxx.so xxxx (出错地址)
通过这种方式,即可得到调用堆栈信息,找出问题具体所在。
WAY2,跟前面的方法类似,只是更加智能,不用你亲自去找问题点,脚本会帮你!
google提供一个python脚本
可以从 http://code.google.com/p/android-ndk-stacktrace-analyzer/ 下载这个python脚本,
adb logcat -d > logfile 导出 crash 的log
使用 arm-eabi-objdump (位于prebuilts\gcc\linux-x86\arm\arm-linux-androideabi-4.7\bin下面)把so或exe转换成汇编代码,如:
arm-eabi-objdump -S mylib.so > mylib.asm, 此时生成的asm 库文件是在你的工具目录下的,别找错地方了!!!
然后使用脚本
python parse_stack.py <asm-file> <logcat-file>
然后命令框就会显示程序崩溃点的函数调用~~~
- Android调用堆栈跟踪
- Android 调用堆栈跟踪
- 跟踪Android调用堆栈
- Android 调用堆栈跟踪
- Android调用堆栈跟踪
- 跟踪Android callback 调用堆栈
- 跟踪Android callback 调用堆栈
- Android 调用堆栈跟踪(二)
- 使用arm-eabi-addr2line工具跟踪Android调用堆栈
- pstack跟踪程序调用堆栈
- android c++ 代码堆栈跟踪
- 使用arm-eabi-addr2line, ndk-stack工具跟踪Android调用堆栈
- 使用arm-eabi-addr2line, ndk-stack工具跟踪Android调用堆栈
- 使用arm-eabi-addr2line, ndk-stack工具跟踪Android调用堆栈
- Android 方法调用跟踪
- android打印调用堆栈
- android调用堆栈汇总
- 堆栈跟踪:
- EAS BOS中如何以模式窗口打开新界面。
- java代码 解析EXCEL(七)
- Android 判断现在系统存储器是“手机存储”还是“SD存储”
- [LeetCode]—Palindrome Partitioning II 回文分割,求最小分割数
- IOS中的属性修饰符
- 跟踪Android调用堆栈
- string 的substr函数的运用
- codeblocks+gtk+2.x 编译出现“无法定位程序输入点deflateSetHeader与动态链接库zlib1.dll”错误
- 无线Mesh网构建无线城市
- linux shell 数组
- Topas命令详解
- Android常用代码之APK root权限静默安装
- 涨姿势,社交领域都有哪些新玩意儿
- 如何调试手机上的网页以及基于Cordova/Phonegap的Hybird应用