倾倒Valgrind报告的丢失内存的内容

时间:2012-09-30 17:18:01

标签: memory valgrind memory-leaks dump

当我在程序上运行valgrind --leak-check=yes时,会报告几个字节的丢失内存。是否可以查看此内存的内容(即转储存储在其中的数据)?

1 个答案:

答案 0 :(得分:10)

您可以使用Valgrind的最新版本(3.8.1)执行此操作:

启动可执行文件,在启动时激活gdbserver:

valgrind --vgdb-error=0 ....<your program>

然后在另一个窗口中,将gdb连接到Valgrind(按照指示 由Valgrind提供)。 然后在相关位置放置一个断点(例如在主要末端) 并使用gdb

continue

命令直到达到断点。 然后从gdb进行泄漏搜索:

   monitor leak_check full reachable any

然后列出相关损失记录nr

的可到达块的地址
   monitor block_list <loss_record_nr>

然后,您可以使用gdb功能检查给定地址的内存。 另请注意可能有趣的命令“who_points_at” 如果你正在搜索谁保留了指向这个记忆的指针。