我已经搜寻了一个星期,试图找到这个问题的答案。
如何使用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中看到任何内容。