我正在安装Valgrind,但遇到了一些问题。我的平台信息:
Linux xx-ThinkPad-X61 3.2.0-39-generic-pae #62-Ubuntu SMP Wed Feb 27 22:25:11 UTC 2013 i686 i686 i386 GNU/Linux
我遵循valgrind文件夹中自述文件的安装说明。./configure ->make -> sudo make install。
我不能理解自述文件中的以下提示,我只是忽略了它。
Important! Do not move the valgrind installation into a pla
我正在为android marshmellow设备集成AOSP中的valgrind。
+ Device Architecture- linux-x86
+ kernel Arch - 3.14.55-x86_64
+ valgrind version - valgrind-3.11.0.SVN.aosp
+ Host Architecture - linux-x86_64 (on this machine I am building image for device)
当我运行命令"valgrind ls -l“进行测试时。它显示以下错误--
root@ET50T:/ # va
在尝试调试我的C++二进制文件时,我遇到了以下问题。
valgrind: m_mallocfree.c:307 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed.
valgrind: Heap block lo/hi size mismatch: lo = 1, hi = 4294967295.
This is probably caused by your program erroneously writing past the
end of a heap block and corrupting heap met
我已经为一个嵌入式设备编译了val差制,并执行了下面的命令来检查泄漏。
./valgrind --leak-check=full --xml=yes --xml-file=<xml file path> <application>
但是它给出了以下错误。
valgrind: Fatal error at startup: a function redirection
valgrind: which is mandatory for this platform-tool combination
valgrind: cannot be set up. Details
你好,我正在为android-arm构建valgrind。在Linux Mint 13上失败,出现以下错误:
$ make
echo "# This is a generated file, composed of the following suppression rules:" > default.supp
echo "# " exp-sgcheck.supp xfree-3.supp xfree-4.supp glibc-2.X-drd.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.X.supp >
我正在尝试将valgrind 3.8.1配置为在ARM V7上工作。我首先运行./configure --host=armv7-none-linux-gnueabi
然后我运行make。但是在make之后,我得到了以下错误:
echo "# This is a generated file, composed of the following suppression rules:" > default.supp
echo "# " exp-sgcheck.supp xfree-3.supp xfree-4.supp glibc-2.X-drd.
我已经看过了与这个错误有关的答案。然而,我的问题是,一旦我有了libc的首次亮相,我应该放置这个库的位置是什么?
我已经为我的目标环境下载了val研读和交叉编译。我尝试了以下所有不同的组合:
我将libc放在/lib中,并在/lib/debug中进行了调试
将调试器重命名为libc.debug
导出VALGRIND_LIB以包括/lib、/lib/debug
最后但并非最不重要的是,下面是实际错误:
==29946== Memcheck, a memory error detector
==29946== Copyright (C) 2002-2017, and GNU G
我试图交叉编译价值为MIPS架构,但我得到了错误。
$ make
make all-recursive
make[1]: Entering directory `/valgrind-3.9.0'
Making all in include
make[2]: Entering directory `/valgrind-3.9.0/include'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/valgrind-3.9.0/include'
Making all in V
我用GCC 10标志-fsanitize=address构建,可以很好地运行程序,但是如果我在Valgrind下运行它,它会显示Asan错误: ==477229== Memcheck, a memory error detector
==477229== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==477229== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==477229== Command: ./a.o
我正在使用Oracle Linux Server 6.5版。
GCC 4.4.7版
我正在尝试安装Valgrind valgrind-3.17.0,但以错误告终。你能在下面的问题上提出建议吗?提前谢谢。
下面是我遵循的步骤:
./configure
当我在运行./configure之后检查日志时,我发现有一句话:
checking if amd64 assembler knows the RDSEED instruction... no
进行安装
priv/guest_amd64_helpers.c:3799: Error: no such instruction: `rdseed %r11d
我在通过自制软件在macOS Big上安装Valgrind时遇到了麻烦。在终端我试过了
$ brew install valgrind
在Homebrew的自动更新之后,我收到了以下消息:
valgrind: Linux is required for this software.
Error: An unsatisfied requirement failed this build.
有没有办法安装Valgrind?
我需要检测Makefile是否在valgrind下运行(间接地,使用valgrind --trace-children=yes),我知道如何从C执行,但我还没有找到从脚本执行的方法。
前面的答案仅适用于Linux。对于Mac,我将在环境中使用grep For VALGRIND_STARTUP_PWD,除非有人有更好的主意。
我有一个我写的程序,它的内存占用会随着时间的推移而增长。它最终会消耗所有可用的系统内存,然后使系统崩溃。
我正在尝试确定似乎是内存泄漏的来源。我已经在代码上运行了Valgrind。它没有明确或间接地报告内存丢失。它确实列出了可能丢失的内存,但没有太多的清晰度。我可以使用一些关于如何追踪这个问题的建议。
==13049== HEAP SUMMARY:
==13049== in use at exit: 2,240,095 bytes in 3,720 blocks
==13049== total heap usage: 50,296 allocs, 46,576 frees, 768
我安装val差制时没有出现任何问题,但是在运行它时,我仍然会得到以下错误:
valgrind: failed to start tool 'memcheck' for platform 'amd64-linux': No such file or directory
我已经相应地调整了bash文件。我添加了以下路径:/usr/bin/valgrind (使用:which valgrind命令),但它仍然无法工作。然后我添加了路径:/usr/lib/valgrind,它仍然不起作用。我想我对使用Ubuntu的正确的本地目录感到困惑。
我正在使用:
export V
根据,在堆栈上分配std::array。但是,当将它与Valgrind一起使用时,它将显示堆分配,甚至对于堆栈上分配的元素也是如此。这是假阳性还是假阳性?
下面是两个mwe来说明这种行为。
无堆:
以下代码:
#include <array>
int main() {
std::array<int*, 1> map;
int value = 0;
}
生成预期的以下Valgrind输出:
==14425== HEAP SUMMARY:
==14425== in use at exit: 0 bytes in 0 blocks
==14425==
我有一个实现了活跃度分析的寄存器分配器,并且我得到了一个seg错误:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7560d9d in _int_malloc () from /lib64/libc.so.6
所以我在valgrind上运行它,试图看看这个命令的错误是什么:
valgrind -v --leak-check=yes
我以前从来没有使用过这个程序,我真的不知道为什么会发生seg错误。我怀疑某处有内存泄漏。有人能帮我理解valgrind的输出内容吗?
--58831-- Reading syms f