4

我已经使用为 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 被附加到适当的工具链路径中。我可以发布完整的脚本,但它应该是无关紧要的。著名的遗言,可能。

4

3 回答 3

4

我最近遇到了完全相同的问题。在我的设备 /data/local/Inst 上,它的所有内容都归一个名为“shell”的用户所有。奇怪的是,当我尝试使用 root 用户执行 valgrind 时,我得到了上述错误,但是当我使用非特权用户登录时,我可以毫无问题地运行 valgrind。

根据您发布的信息,我认为您以 root 用户身份安装了 valgrind,并且我假设您也以 root 用户身份执行了它。

所以这里是让它为我工作的步骤:

  • /data/local/Inst 由非特权用户拥有
  • 使用相同的非特权用户安装 valgrind
  • 再次,用同一个用户执行 valgrind

希望这可以帮助。

于 2014-06-05T13:58:15.300 回答
1

通常,这表明某些文件(lib 或配置文件)缺少您的权限。最有可能的是,当您使用 root 安装 Valgrind 时,umask 可能会为其他人排除 rx。通过为其他人添加 rx 权限很容易解决这个问题:

查找 /usr/local -name "*valgrind*" -exec chmod o+rxt {} \;

于 2016-05-18T02:05:21.120 回答
-1

如果你在 Android 上使用 Valgrind,至少有三种方法可以解决问题。(您必须先根您的 Android 手机。)

在您的电脑上

cmd
adb shell
$su
#cp /data/local/Inst/bin/valgrind /system/bin/

注意:记得 chmod。例如chmod 777 valgrind.

在你的安卓手机上

安装应用程序“根资源管理器”。使用应用程序将 valgrind 复制到/system/bin/

编写一个shell脚本

这是一个例子:Can't run a Java Android program with Valgrind

中文评论:本人曾不止英语不及及我。的传统德,所以就硬首美写了这个E文回贴。</p>

于 2014-08-08T06:30:07.087 回答