我已经使用它为 ARM编译了Valgrind ,并稍作改动。
使用指定的方法在手机上安装后,出现以下错误:
# /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.
在这一点上,我大多没有想法,任何帮助将不胜感激。
我知道这个类似的帖子,但我确信(基于带有“-d”的输出)前缀是正确的。
潜在的线索:这在之前工作了几个“ROM”-s,但不幸的是,这个当前的工作与以前工作的完全相同,具有完全相同的 Valgrind 构建。
小的改动:因为构建是在 64 位系统上完成的,所以 _64 被附加到适当的工具链路径中。我可以发布完整的脚本,但它应该是无关紧要的。著名的遗言,可能。