我有32位C应用程序(在64位系统上运行)泄漏内存.
调试它我从http://valgrind.org/downloads/下载了valgrind 3.8.1.
是./configure,make和make install来安装valgrind.
但是valgrind只构建了64位memcheck-amd64-linux二进制文件.
32位memcheck没有构建.
结果我得到了以下错误
# valgrind --tool=memcheck --time-stamp=yes -v --track-origins=yes --leak-check=yes /home/test_code32 --error-limit=no
valgrind: failed to start tool 'memcheck' for platform 'x86-linux': No such file or directory
屈服于valgrind给了我:
execve("/usr/local/lib/valgrind/memcheck-x86-linux", ["valgrind", "--tool=memcheck", "--time-stamp=yes", "-v", "--track-origins=yes", "--leak-check=yes", "/home/test_code32", "--error-limit=no"], [/* 60 vars */]) = -1 ENOENT (No such file or directory)
write(2, "valgrind: failed to start tool '"..., 94valgrind: failed to start tool 'memcheck' for platform 'x86-linux': No such file or directory
) = 94
我检查了./configure输出,它说:
checking for 32 bit build support... no
我正在使用gcc(SUSE Linux)4.3.4.
任何想法如何让valgrind在64位机器上构建32位memcheck?
最佳答案 我已经解决了这个问题.
我安装了32位gcc支持,然后再次构建了valgrind,它创建了32位memcheck.