2

デバイスがアプリを実行しているときに実行されているdalvikバイトコードのトレースを取得するにはどうすればよいですか(logcatのように)?

4

3 に答える 3

3

やりたいことをするための既存のツールはありませんが、あまり手間をかけずにそのようなツールを実装できる可能性があります。

一般的な考え方は、jdwpプロトコルを使用して、デバッガーとしてdalvikのvmに接続し、仮想マシンをシングルステップで実行して、各ステップ間の状態を検査し、命令を出力することです。...命令インデックスを取得できるはずです。または、JDWPを介した命令オフセット。

さらに、dexファイルを読み取り、JDWPから取得した命令インデックス/オフセットに基づいて、実行されている正確な命令を検索する必要があります。

AndBugを使用して上記のソリューションの最初の部分を実装してから、dexlibを使用してdexファイルにアクセスし、命令を取得できるはずです。

于 2012-11-21T19:00:37.467 に答える
0

あなたはチェックアウトしたいかもしれませんtraceview

于 2012-11-21T15:16:13.833 に答える
0

バイトコードを話さないようにメソッドをトレースするには遅すぎます。アプリが最善の方法を実行していることを知りたい場合は、最初にメソッドをトレースしてから、その中のバイトコードをトレースします。

于 2017-05-11T04:17:22.473 に答える