android tombstone发生过程,Android Tombstone 分析
1.什么是tombstone
當一個動態庫(native 程序)開始執行時,系統會注冊一些連接到?debuggerd 的?signal handlers,當系統 crash 的時候,會保存一個 tombstone 文件到/data/tombstones目錄下(Logcat中也會有相應的信息),文件的確就像墓碑一樣記錄了死亡了的進程的基本信息(例如進程的進程 號,線程號),死亡的地址(在哪個地址上發生了 Crash),死亡時的現場是什么樣的(記錄了一系列的堆棧調用信息)等等。2.tombstone文件長什么樣
一個tombstone文件大概包含以下信息
--------- beginning of crash
F/libc? ? (? 244): invalid address or address of corrupt block 0xb82f54a0 passed to dlfree
I/libc? ? (? 244): debuggerd_signal_handler called: signal=11, fn=0xb6fbdaa1
F/libc? ? (? 244): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xdeadbaad in tid 244 (mediaserver)
I/libc? ? (? 244): exit from debuggerd_signal_handler
W/NativeCrashListener(? 916): Couldn't find ProcessRecord for pid 244
I/DEBUG? (? 241): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
E/DEBUG? (? 241): AM write failure (32 / Broken pipe)
I/DEBUG? (? 241): Build fingerprint: XXXXXXXXX
I/DEBUG? (? 241): Revision: '0'
I/DEBUG? (? 241): ABI: 'arm'
I/DEBUG? (? 241): pid: 244, tid: 244, name: mediaserver? >>> /system/bin/mediaserver <<<
I/DEBUG? (? 241): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xdeadbaad
I/art? ? ( 3078): now dumpable=1
I/DEBUG? (? 241): Abort message: 'invalid address or address of corrupt block 0xb82f54a0 passed to dlfree'
I/DEBUG? (? 241):? ? r0 00000000? r1 b6f20dec? r2 deadbaad? r3 00000000
I/DEBUG? (? 241):? ? r4 b82f54a0? r5 b6f220f8? r6 00000000? r7 42424242
3、獲取手機中的crash日志,需要打開手機的開發者選項權限,以及提交錯誤報告,打開USB調試、打開錯誤報告快捷方式、啟用WLAN詳細日志記錄功能
當電腦中沒有權限查看文件時,則需要在手機端進行查找crash文件。
4、find過濾包名
1.如果直接用adb logcat抓日志的話,會把系統的一些其他無關緊要的都抓出來,如果只想抓取被測app的日志,那就根據包名過濾
adb logcat | find "com.watchgame.okii" >d:\hello.txt
5、logcat輸出日志
1.把日志存入手機sdcard某個目錄(前提是這個目錄要是存在的)
adb logcat -f /sdcard/yoyo/yoyo.txt
備注:-f 將日志輸出到文件 # 作者:上海-悠悠 QQ交流群:330467341
上面這個指令在真機上(未root)是會報錯的,提示沒操作權限,在模擬器上可以執行
6、結束logcat
1.結束logcat抓包,可以用ctr+c快捷鍵結束, 這個是通過手工的快捷鍵操作完成
2.也可以先查詢到logcat的pip,再kill掉
adb shell ps | findstr logcat
adb shell kill -9 [logcatpid]
注意:kill操作在模擬器上是可以的,真機上沒權限
7、開啟log的日志
adb shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name start --ei cmd_target 23
8、將手機中的日志pull到電腦上
adb pull /sdcard/mtklg(開發者存放crash的地址)/d:test(存放的電腦位置)
總結
以上是生活随笔為你收集整理的android tombstone发生过程,Android Tombstone 分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android imageview 的常
- 下一篇: android o 全机型推送,氢OS(