ValgrindでAndroidアプリを起動する方法 質問する

ValgrindでAndroidアプリを起動する方法 質問する

私はこの質問に対する答えを見つけようと、ここ一週間探し続けてきました。

Valgrind を使用して Android アプリを起動するにはどうすればよいですか? 「am」コマンドを使用してアプリを起動できることはわかっていますが、アプリは起動して終了します。

ネイティブ C コードに NDK を使用するアプリを作成していますが、疑わしいメモリ エラーがないか確認する必要があります。

編集:

もう少し勉強になりました。シェル スクリプトを使用してアプリを「ラップ」できます。

私が使用しているシェル スクリプトは次のとおりです。

#!/system/bin/sh
VGPARAMS='--error-limit=no'
export TMPDIR=/data/data/com.starlon.froyvisuals
exec /data/local/Inst/bin/valgrind $VGPARAMS $*

そして、setprop は次のとおりです。

adb shell setprop wrap.com.starlon.froyvisuals "logwrapper valgrind"

アプリの起動方法は次のとおりです。

adb shell am start -n com.starlon.froyvisuals/.FroyVisuals

これは正しいとは思えません。シェル スクリプトがどこに当てはまるかがわからず、logcat にも何も表示されないからです。何かヒントはありますか?

編集2: ああ、シェルスクリプトは上記の「setprop」コマンドで示されています。

adb shell setprop wrap.com.starlon.froyvisuals "logwrapper /data/local/val.sh"

まだlogcatに何も表示されません。

ベストアンサー1

まずlogcatをクリアしてみてください

prompt# adb logcat -c
prompt# adb logcat

アプリケーションをトリガーすると、ログが送信されるのを確認できるはずです。

am start -a android.intent.action.MAIN -n com.example.hellojni/.HelloJni

シェル スクリプトに問題があったので、代わりにこれを使用しました。

adb shell setprop wrap.com.example.hellojni "logwrapper /data/local/Inst/bin/valgrind"

valgrindの直後にパラメータを渡すことができるはずです

おすすめ記事