我想知道 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***
显示正在泄漏的字符串的确切值。我一直在查看文档,但一无所获。也许更熟悉该工具的人可以指出如何实现这一目标! (我不怕自己编译 :) )
请您参考如下方法:
Valgrind版本>= 3.8.0的GDB服务器提供monitor命令
黑名单
这将输出泄漏块的地址。
然后,您可以使用 GDB 命令(例如 x)检查泄漏的内存内容。
有关更多信息,请参阅
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