我已经为 android 安装了 valgrind,我可以确认它正在工作,因为我尝试使用它运行 ls,它工作正常。
但是如何使用我想调试的本机组件执行 android 应用程序?我看了这个问题:How to start an android app with valgrind,但我不知道如何遵循它。如何将应用程序包装在 shell 脚本中?什么是“包裹”。其次是包名应该是什么?
我尝试使用 com.matthewmitchell.wakeifyplus 作为我的应用程序包来执行此操作:
setprop wrap.com.matthewmitchell.wakeifyplus "logwrapper /data/local/valgrind"
但它说“无法设置属性”。我应该做些什么?我找不到任何可行的分步指南。我确实试过这个(我什至不知道 setprop 是做什么的):
setprop com.matthewmitchell.wakeifyplus "logwrapper /data/local/valgrind"
/data/local/valgrind 是一个具有执行权限的 shell 脚本,即:
#!/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 中,即使在清除它之后也是如此。