我想知道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)
***HERE***
显示正在泄露的字符串的确切值。我一直在查看文档,但一无所获。也许更熟悉该工具的人可以指出如何做到这一点! (我不怕自己编译:))
答案 0 :(得分:1)
Valgrind版本中的GDB服务器> = 3.8.0提供了monitor命令 黑名单 这将输出泄漏块的地址。
然后,您可以使用GDB等命令检查泄漏的内存内容。
有关详细信息,请参阅 http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver 和 http://www.valgrind.org/docs/manual/mc-manual.html#mc-manual.monitor-commands