Valgrind无法在Android OS上执行memcheck工具?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Valgrind无法在Android OS上执行memcheck工具?相关的知识,希望对你有一定的参考价值。
我使用Valgrind为ARM编译了this并进行了少量修改。
使用指定的方法在手机上安装后,我收到以下错误:
# /data/local/Inst/bin/valgrind
valgrind: failed to start tool 'memcheck' for platform 'arm-linux': Permission denied
仔细研究后,可以找到它想要做的事情:
# /data/local/Inst/bin/valgrind -d -v
--25068:1:debuglog DebugLog system started by Stage 1, level 1 logging requested
--25068:1:launcher no tool requested, defaulting to 'memcheck'
--25068:1:launcher no client specified, defaulting platform to 'arm-linux'
--25068:1:launcher launching /data/local/Inst/lib/valgrind/memcheck-arm-linux
valgrind: failed to start tool 'memcheck' for platform 'arm-linux': Permission denied
但是,可执行文件存在且具有正确的权限:
# ls -l /data/local/Inst/lib/valgrind/memcheck-arm-linux
-rwxrwxrwx root root 9261240 2013-10-28 17:00 memcheck-arm-linux
此外,尝试执行它不会产生任何问题,这也消除了动态链接问题:
/data/local/Inst/lib/valgrind/memcheck-arm-linux
valgrind: You cannot run '/data/local/Inst/lib/valgrind/memcheck-arm-linux' directly.
valgrind: You should use $prefix/bin/valgrind.
在这一点上,我主要是出于想法,任何帮助将不胜感激。
我知道this similar post,但我确定(基于输出“-d”)前缀是正确的。
潜在的线索:这之前有一些“ROM”-s,但不幸的是,这个当前的一个与之前工作的完全一样,具有完全相同的Valgrind构建。
小改动:由于构建是在64位系统上完成的,因此在适当的情况下将_64附加到工具链路径。我可以发布完整的脚本,但它应该是无关紧要的。着名的遗言,可能。
我最近碰到了同样的问题。在我的设备/ data / local / Inst上,其所有内容都由名为“shell”的用户拥有。奇怪的是,当我尝试使用root用户执行valgrind时,我得到了上述错误,但是一旦我与非特权用户一起登录,我就可以毫无问题地运行valgrind。
根据您发布的信息,我认为您以root用户身份安装了valgrind,我假设您也以root身份执行了它。
以下是让它为我工作的步骤:
- / data / local / Inst由非特权用户拥有
- 使用相同的非特权用户安装valgrind
- 再次,使用相同的用户执行valgrind
希望这可以帮助。
通常,这表示某些文件(lib或配置文件)缺少您的权限。最有可能的是,当您使用root安装Valgrind时,umask可能会为其他人排除rx。通过为其他人添加rx权限很容易解决这个问题:
find / usr / local -name“* valgrind *” - exec chmod o + rxt {} ;
如果您在android上使用Valgrind,至少有三种方法可以解决问题。 (您必须先安装Android手机。)
在你的电脑上
cmd
adb shell
$su
#cp /data/local/Inst/bin/valgrind /system/bin/
注意:请记住chmod。例如chmod 777 valgrind
。
在您的Android手机上
安装应用程序“Root Explorer”。使用该应用程序将valgrind复制到/system/bin/
。
写一个shell脚本
这是一个例子:Can't run a Java Android program with Valgrind
Chinese Comments: 我本人曾不止一次英语考试不及格。写英文回贴真的很不舒服。不过自我学Android开始,就从http://stackoverflow.com 这里得到过很多帮助。 知恩回报是中华民族的传统美德,所以 就硬首头皮写了这个E文回贴。
以上是关于Valgrind无法在Android OS上执行memcheck工具?的主要内容,如果未能解决你的问题,请参考以下文章
valgrind mac os sierra 10.12.1
Ubuntu上通过android toolchain交叉编译Valgrind操作步骤
valgrind/callgrind 可以在发布的可执行 C++ 程序上工作吗?