Valgrind 可以显示泄漏内存的值吗?

Fer*_*eak 5 valgrind memory-leaks

我想知道 valgrind 是否有可能显示泄漏内存的值,例如(不是真正的 valgrind 输出!):

==15060== 12 bytes (***HERE***) in 1 blocks are definitely lost in loss record 1 of 1
==15060==    at 0x4C2AAA4: operator new[](unsigned long) (in vgpreload_memcheck-amd64-linux.so)
==15060==    by 0x5DC8236: char* allocate(unsigned long, char const*, long) (mem.h:149)
==15060==    by 0x5EAC286: trim(char const*, nap_compiler const*) (file.cpp:107)
Run Code Online (Sandbox Code Playgroud)

其中***HERE***显示正在泄漏的字符串的确切值。我一直在查看所有文档,但一无所获。也许更熟悉该工具的人可以指出如何实现这一目标!(我不怕自己编译:))

phd*_*phd 2

Valgrind 版本 >= 3.8.0 中的 GDB 服务器提供了监视命令 block_list,该命令将输出泄漏块的地址。

然后,您可以使用 GDB 命令(例如 x.gdb)检查泄漏的内存内容。

有关详细信息,请参阅 http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserverhttp://www.valgrind.org/docs/manual/mc -manual.html#mc-manual.monitor-命令