12

Android用のvalgrindをインストールしました.lsを実行しようとしたときに動作していることを確認でき、正常に動作します.

しかし、デバッグしたいネイティブ コンポーネントで Android アプリを実行するにはどうすればよいでしょうか。私はこの質問を見ました: valgrind で Android アプリを開始する方法ですが、それに従う方法がわかりません。アプリをシェル スクリプトでラップするにはどうすればよいですか? 「包む」とは。その後にあるはずのパッケージ名が続きますか?

com.matthewmitchell.wakeifyplus をアプリケーション パッケージにして、これを試してみました。

setprop wrap.com.matthewmitchell.wakeifyplus "logwrapper /data/local/valgrind" 

しかし、「プロパティを設定できませんでした」と表示されます。私はどうしたらいいですか?機能するステップバイステップガイドが見つかりません。私はこれを試しました(setpropが何をするのかさえ知りません):

setprop com.matthewmitchell.wakeifyplus "logwrapper /data/local/valgrind" 

/data/local/valgrind は、次の実行権限を持つシェル スクリプトです。

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

しかし、次のようにアプリを実行すると:

am start -a android.intent.action.MAIN -n com.matthewmitchell.wakeifyplus/.MainActivity 

valgrind は、クリアした後でも logcat に表示されません。

4

1 に答える 1

8

プロパティ名で許可される最大文字数である31 を超える長さのプロパティ名を設定できないため、「 could not set property」というエラーが表示されます: https://stackoverflow.com/a/5068818/313113

adb shell setprop を使用してプロパティを設定する場合は、パッケージ名の長さを 31 文字以下に短縮してください。
そして、物事を単純化するためにbashスクリプトを使用してください。
詳細については、こちらの回答を参照してください: https://stackoverflow.com/a/19235439/313113

于 2013-10-07T22:04:13.873 に答える