我一直在尋找上週試圖找到這個問題的答案。如何用valgrind啓動一個android應用程序
如何使用valgrind啓動Android應用程序?我知道我可以用'am'命令啓動一個應用程序,但它會啓動應用程序並退出。
我在寫一個應用程序,它使用NDK作爲本地C代碼,我需要檢查它是否有可疑的內存錯誤。
編輯:
我學到了一點點。你可以用一個shell腳本「包裝」一個應用程序。
下面是我使用的shell腳本:
#!/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
我不認爲這是對的,因爲我不確定shell腳本在哪裏,我沒有看到任何logcat。任何提示?
編輯2: 哦,shell腳本在上面用「setprop」命令表示。所以
adb shell setprop wrap.com.starlon.froyvisuals "logwrapper /data/local/val.sh"
我仍然沒有看到任何logcat。
對於如何通過Valgrind的運行你的應用程序看到我的腳本:http://stackoverflow.com/a/19235439/313113 – bitek 2013-10-08 18:24:24