簡體   English   中英

安卓 強制ANR轉儲

[英]Android. Force ANR dump

有什么方法可以請求對任意進程進行轉儲,這類似於在/data/anr/traces.txt為ANR生成的/data/anr/traces.txt嗎? 可能應該可以通過設備的外殼實現。

提前致謝!

經過一些研究,我發現有可能,但不幸的是,它不是很有用。 因此,要將您的進程轉儲添加到/data/anr/traces.txt您應該只發送SIGQUIT到您感興趣的進程。您可以直接從設備外殼運行下一步:

$ kill -s SIGQUIT <pid>

唯一的問題是,並非每個用戶都可以將信號發送到任意進程。 在植根設備上應該不成問題。 對於其余的那些,如果您的應用程序包是可調試的,您仍然可以使用此技巧。 這個事實允許使用run-as實用程序並以被調查進程的用戶run-as執行kill

$ adb shell
shell@mako:/ $ run-as com.example.sysuser.stunprober                           
shell@mako:/data/data/com.example.sysuser.stunprober $ kill -s SIGQUIT 4712

logcat輸出顯示轉儲已寫入:

I/art(4712): Thread[5,tid=4721,WaitingInMainSignalCatcherLoop,Thread*=0xb74c4d28,peer=0x12c000a0,"Signal Catcher"]: reacting to signal 3
I/art(4712): Wrote stack traces to '/data/anr/traces.txt'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM