由于设置GCC优化时有错误,因此我想精确地查看Android应用程序的内存。为此,我试图运行Valgrind。
我通过Termux具有安装valgrind,因为它提供了包装(然后不需要编译(。但是错误很快。
我有这个脚本:
#!/system/bin/sh
echo "in the shell script"
touch /sdcard/ok.txt
VGPARAMS='--error-limit=no'
export TMPDIR=/data/data/com.gaulois94
exec /data/data/com.termux/files/usr/bin/valgrind $VGPARAMS $*
我这样做:
adb shell
su
chmod 777 /data/local/valgrind.sh
setenforce 0
setprop wrap.com.gaulois94 "logwrapper /data/local/valgrind.sh"
但是运行应用程序时,我的平板电脑(Nvidia Shield Nougat(崩溃并重新启动...回声和触摸甚至没有执行...
这是AM开始的错误:
android.os.DeadObjectException
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:615)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:3121)
at com.android.commands.am.Am.runStart(Am.java:635)
at com.android.commands.am.Am.onRun(Am.java:388)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
at com.android.commands.am.Am.main(Am.java:121)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)
如何运行valgrind?谢谢 !(这东西让我疯狂XD(。
ps:不知道为什么,我不能在文本开始时打个招呼...好吧,我把它放在这里:你好!
好吧,最后我没有成功地在平板电脑上启动valgrind,尽管我(几个小时后(可以在Android X86模拟器上启动Valgrind,Image System 22(Android 5.0(。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</p>
由于图形问题(我使用GLES2.0(而无法手臂,并且在看到LogWrapper时冻结。
如果有人对我的平板电脑有解决方案,尽管这将很棒!
为时已晚,但可能对某人有帮助。
-
在Android设备和SetProp Wrap。&lt;>"方法无法在Android 8.0以下运行。因此,我建议使用8.0或更高。实际上,我不确定100%。我通过使用8.0解决了死对象例外。
-
[无论如何]如果您在Windows中工作,则必须关心Carriagar Return Char X。确保仅在脚本中使用新行。