2016-06-14 7 views
0

任意のプロセスのダンプを要求する方法はありますか?それは/data/anr/traces.txtのANRに対して生成されたものと似ていますか?おそらく、デバイスのシェルを介して可能でなければなりません。Android。 ANRダンプを強制する

ありがとうございます!

答えて

4

私はそれが可能であることを理解したが、残念なことにあまり役に立たない。だから、あなたは、単にデバイスシェルから次を実行することができますあなたはちょうどあなたが興味を持っている処理するSIGQUITを送るべき/data/anr/traces.txtにあなたのプロセスのダンプを追加します。

$ kill -s SIGQUIT <pid> 

そして唯一の問題はないすべてのユーザーが信号を送ることができるということです任意のプロセスにそれは根ざしたデバイスの問題ではありません。残りのものについては、あなたのアプリのパッケージがデバッグ可能な場合でもこのトリックを使用することができます。この事実はrun-asユーティリティを使用し、調査プロセスのユーザーとしてkillを実行することができます:

$ adb shell 
[email protected]:/ $ run-as com.example.sysuser.stunprober       
[email protected]:/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' 
関連する問題