一次痛苦的Android應用死鎖問題

1.一般要查看進程當前堆棧

kill -3 [pid] //trace生成到/data/anr/trace.txt

2.當進程已經死鎖時;發送kill -3進程無法收到,kill -11或-9由系統直接幹掉進程、會破壞現場

debugged -b [pid]

不是自旋鎖(忙等鎖),所以、CPU佔用率不高。

3.ddms對java堆棧的打印

ddms使用

4.抓取log

ps -t [pid]

logcat -v thread

5.進程垮掉以後生成的tomstones

/data/tomstones/

6.Linux內核級死機堆棧

/var/core_dump

7.dumpsys

dumpsys window
dumpsys input
dumpsys activity activities

8.vim使用

sed -ne '/\( 2428\)/p' 20160202.log > cyber.log

9.打印java堆棧

Exception e = new Exception("this is a log");
e.printStackTrace();



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章