【发布时间】:2012-02-25 17:52:20
【问题描述】:
上周我一直在寻找这个问题的答案。
如何使用 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: 哦,上面的“setprop”命令指示了 shell 脚本。所以
adb shell setprop wrap.com.starlon.froyvisuals "logwrapper /data/local/val.sh"
我仍然没有在 logcat 中看到任何内容。
【问题讨论】:
-
有关如何通过 Valgrind 运行您的应用程序,请参阅我的脚本来自:stackoverflow.com/a/19235439/313113
标签: android android-ndk valgrind gdbserver