1. 前言
这里总结几种系统异常时,常用的几种调试方法
2. Debuggerd
Debuggerd 和 echo t > /proc/sysrq-trigger
一起调试进程空间和内核空间死锁、睡眠问题
3.Kill命令
Kill -6 可以打印所有进程的core dump backtrace,
数据会保存到/data/tombstones/tombstone_0{0..9}递增文件中,
同时也会打印一份保存到 data/anr/traces.txt文件中。
其效果和debuggerd 打印的core dump结果一致;
Kill -3 可以打印zygote进程空间的core dump backtrac,
数据只保存到/data/anr/traces.txt文件中,
类似于AMS 中watchdog服务检查到ANR后打出的traces.txt结果一致;
4.Strace
usage: strace [-CdffhiqrtttTvVxxy] [-I n] [-e expr]...
[-a column] [-o file] [-s strsize] [-P path]...
-p pid... / [-D] [-E var=val]... [-u username] PROG [ARGS]
or: strace -c[df] [-I n] [-e expr]... [-O overhead] [-S sortby]
-p pid... / [-D] [-E var=val]... [-u username] PROG [ARGS]
-c -- count time, calls, and errors for each syscall and report summary
-C --