显示Valgrind的免费记忆源?

时间:2012-11-04 02:34:35

标签: c valgrind

Valgrind报告我的程序正在对垃圾收集器释放的内存位置执行无效读取。

对于Valgrind来说,显示与该对一起无效读取的内存的分配位置会很有帮助:

  

“无效读取大小2”

  

“地址0x523befe是一个大小为12的块中的6个字节”

但是没有显示内存分配位置。这是我的Valgrind命令行:

  

valgrind --tool = memcheck --leak-check = full --track-originins = yes --undef-value-errors = yes --read-var-info = yes --num-callers = 50

我尝试在--tool = memcheck以及其他几个地方之后坚持--track-origin = yes,但无济于事。

知道如何在这个实例中获取内存创建位置吗?

编辑:

这是Valgrind的最终输出:

  

== 14849 ==泄漏摘要:
  == 14849 ==绝对丢失:0块中的0字节
  == 14849 ==间接丢失:0块中的0字节
  == 14849 ==可能丢失:24个块中的900字节
  == 14849 ==仍然可以访问:45,043个块中的631,292个字节   == 14849 ==抑制:0块中的0字节
  == 14849 ==未显示可到达的块(找到指针的块)。
  == 14849 ==要查看它们,请重新运行: - leak-check = full --show-reachable = yes
  == 14849 ==
  == 14849 ==对于检测到的和抑制的错误计数,请重新运行:-v
  == 14849 ==错误摘要:来自14个上下文的14个错误(被抑制:0从0开始)

0 个答案:

没有答案