java valgrind_无法使用Valgrind运行Java Android程序

你必须创建一个脚本,让它调用start_valgrind.sh

#!/system/bin/sh

PACKAGE="com.example.hellojni"

# Callgrind tool

#VGPARAMS='-v --error-limit=no --trace-children=yes --log-file=/sdcard/valgrind.log.%p --tool=callgrind --callgrind-out-file=/sdcard/callgrind.out.%p'

# Memcheck tool

VGPARAMS='-v --error-limit=no --trace-children=yes --log-file=/sdcard/valgrind.log.%p --tool=memcheck --leak-check=full --show-reachable=yes'

export TMPDIR=/data/data/$PACKAGE

exec /data/local/Inst/bin/valgrind $VGPARAMS $*

应将其复制到设备.

将start_valgrind.sh文件中的上述脚本放在本地文件系统的某处,您可以使用以下脚本(让它调用bootstrap_valgrind.sh)来完成所有工作(将start_valgrind.sh脚本复制到手机中,运行它通过Valgrind开始你的应用程序).

#!/usr/bin/env bash

PACKAGE="com.example.hellojni"

adb push start_valgrind.sh /data/local/

adb shell chmod 777 /data/local/start_valgrind.sh

adb root

adb shell setprop wrap.$PACKAGE "logwrapper /data/local/start_valgrind.sh"

echo "wrap.$PACKAGE: $(adb shell getprop wrap.$PACKAGE)"

adb shell am force-stop $PACKAGE

adb shell am start -a android.intent.action.MAIN -n $PACKAGE/.HelloJni

adb logcat -c

adb logcat

exit 0

警告:确保使用setprop设置的属性名称(wrap.com.yourcompany.yourapp)的长度小于31个字符.

否则,您将收到错误“无法设置属性”,因为您无法设置长度大于31的属性名称,这是属性名称中允许的最大字符数.

属性值也应为< = 91个字符:https://stackoverflow.com/a/5068818/313113

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值