Ubuntu: valgrind: 无法为平台 'memcheck' 启动工具 'amd64-linux': 没有那个文件或目录
Ubuntu: valgrind: failed to start tool 'memcheck' for platform 'amd64-linux': No such file or directory
我安装了 valgrind 没有问题,但是当 运行 它时,我不断收到以下错误:
valgrind: failed to start tool 'memcheck' for platform 'amd64-linux': No such file or directory
我已经相应地调整了我的 bash 文件。我添加了以下路径:/usr/bin/valgrind
from using: which valgrind
命令,但它仍然无法正常工作。然后我添加了路径:/usr/lib/valgrind
但它仍然无法正常工作。我想我对使用 Ubuntu.
的正确本地目录感到困惑
我正在使用:
export VALGRIND_LIB="/usr/lib/valgrind"
我必须先添加我的本地目录吗?
您不需要设置任何环境变量,除非您正在处理 Valgrind 本身的代码。
只是 运行 /usr/bin/valgrind。然后,这将 运行 /usr/lib/valgrind/memcheck-amd64-linux 并在同一目录中预加载一些 .so 文件。
我对 Debian/Ubuntu 没有太多经验,但如果你用 snap 安装它,那么 afaict 你应该使用 --classic 选项。
将“导出 VALGRIND_LIB=/usr/lib/valgrind/”(或 /usr/local/lib/valgrind/ 或您安装 valgrind lib 的其他位置)添加到 ~/.bashrc
export VALGRIND_LIB=<where libexec/valgrind is|where massif-arm64-linux is>
尝试 运行 使用“sudo”,对我来说很有帮助。
还要确保您对 64 位可执行文件使用 64 位 valgrind,在 64 位 exe 上使用 32 位 valgrind 会导致此错误
/tmp>file /usr/bin/valgrind /usr/bin/valgrind: ELF 32-bit LSB
executable, Intel 80386, version 1 (SYSV), dynamically linked (uses
shared libs), for GNU/Linux 2.6.18, not stripped
/tmp>file a.out a.out: ELF 64-bit LSB executable, x86-64, version 1
(SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18,
not stripped
/tmp>valgrind a.out valgrind: failed to start tool 'memcheck' for
platform 'amd64-linux': No such file or directory
我从源代码构建了 valgrind,发布的答案对我不起作用,但这确实有效:
例如我是如何配置的:
./configure --prefix=$HOME/local/valgrind
我添加到我的 ~/.bashrc
export VALGRIND_LIB=$HOME/local/valgrind/libexec/valgrind
似乎需要 libexec
,而不是 lib
我安装了 valgrind 没有问题,但是当 运行 它时,我不断收到以下错误:
valgrind: failed to start tool 'memcheck' for platform 'amd64-linux': No such file or directory
我已经相应地调整了我的 bash 文件。我添加了以下路径:/usr/bin/valgrind
from using: which valgrind
命令,但它仍然无法正常工作。然后我添加了路径:/usr/lib/valgrind
但它仍然无法正常工作。我想我对使用 Ubuntu.
我正在使用:
export VALGRIND_LIB="/usr/lib/valgrind"
我必须先添加我的本地目录吗?
您不需要设置任何环境变量,除非您正在处理 Valgrind 本身的代码。
只是 运行 /usr/bin/valgrind。然后,这将 运行 /usr/lib/valgrind/memcheck-amd64-linux 并在同一目录中预加载一些 .so 文件。
我对 Debian/Ubuntu 没有太多经验,但如果你用 snap 安装它,那么 afaict 你应该使用 --classic 选项。
将“导出 VALGRIND_LIB=/usr/lib/valgrind/”(或 /usr/local/lib/valgrind/ 或您安装 valgrind lib 的其他位置)添加到 ~/.bashrc
export VALGRIND_LIB=<where libexec/valgrind is|where massif-arm64-linux is>
尝试 运行 使用“sudo”,对我来说很有帮助。
还要确保您对 64 位可执行文件使用 64 位 valgrind,在 64 位 exe 上使用 32 位 valgrind 会导致此错误
/tmp>file /usr/bin/valgrind /usr/bin/valgrind: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
/tmp>file a.out a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
/tmp>valgrind a.out valgrind: failed to start tool 'memcheck' for platform 'amd64-linux': No such file or directory
我从源代码构建了 valgrind,发布的答案对我不起作用,但这确实有效:
例如我是如何配置的:
./configure --prefix=$HOME/local/valgrind
我添加到我的 ~/.bashrc
export VALGRIND_LIB=$HOME/local/valgrind/libexec/valgrind
似乎需要 libexec
,而不是 lib