如何定位crach问题
来源:互联网 发布:淘宝网雪纺衫 编辑:程序博客网 时间:2024/05/17 09:14
下面是学习整理的一般总结
一:知道具体那个程序导致的crash
1 编译一下 gcc -ggdb xxx.c 重新生成目标文件,方便调试!
2. 输入命令 ulimit -c unlimited ,然后执行 编译后的程序,发生segmentation falut,同时会生成一个文件core.xxxx(xxxx means pid) 。
3 .gdb a.out core.xxxx ,并gdb > bt 马上就会输出错误代码所在的文件和行数,同时还打印出这句错误的语句。
二: 系统比较大,不知道具体哪个程序导致的?
在做测试前,最好先收集一些信息以备后用
1 收集所有进程信息 ps -t
2 内核打印信息: dmesg
.
3 抓取所有信息 logcat &
出现问题后如何处理?
reset 后查看出现问题的进程:cat /proc/XXX(PID)/maps的memory map
根据pc代码行配合 arm-eabi-addr2line可以发掘出错位置所对应的函数名。用法如下;
arm-eabi-addr2line -f -e libmyjni.so 0×00024039 (输出日志中最上面的pc值,可以回溯最终函数调用顺序)
反汇编 相关的动态库或程序:prebuilt/Linux/toolchain-eabi-4.2.1/bin/arm-elf-objdump -d out/target/product/XXXX/symbols/android/lib/XXX.so
下面一堆信息如何处理?需要使用"stack"工具结合符号信息表翻译出具体的函数关系与行数!
r0 00000000 r1 49189c24 r2 00000038 r3 00000080
r4 a9706110 r5 49189c24 r6 49189d48 r7 00000000
r8 49189d9c r9 430f0eb4 10 430f0e9c fp 002d35f8
ip 00000000 sp 49189c10 lr a97036ed pc a970335c cpsr 20000030
、
- 如何定位crach问题
- Crach
- 测试如何定位问题
- 如何定位生产问题
- 如何定位问题
- 技术开发中如何定位问题
- oracle性能问题如何定位
- 如何定位JVM的问题
- 如何快速定位线上问题?
- 如何定位"无法重现“的问题
- DHCP不成功问题应该如何定位?
- linux 下如何定位代码问题
- 测试,如何深入定位一个问题
- 如何定位native内存泄露问题?
- 如何定位 问题SQL的【一般套路】
- 如何快速定位TempDB产生问题
- 如何快速定位TempDB产生问题
- 如何快速定位TempDB产生问题
- android开发过程中遇到的一些问题(包括自定义ProgressBar, Intent, Animation, ListView, RadioButton)
- 友元函数的应用
- 关于JSP的一些小的知识适于初学者,高手勿看·
- 【转】Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢
- 用RadASM开发记事本程序
- 如何定位crach问题
- 消息处理初步
- 苦恼(一)
- Linux 学习之路-------苦行,只为修得正果。每日三省吾身
- GTK+学习笔记1
- GtkWindow — Toplevel which can contain other widgets
- Delphi中,根据字符串,拆分字符串,相当于vb中的split函数
- grub属于bootloader
- 配置RadASM,并写一个消息框程序