• 主页
  • 系统维护与使用
  • 应用程序开发
  • 内核源代码
  • 驱动程序开发
  • CPU和硬件区
  • UNIX文化
  • Solaris
  • Power Linux

Linux下Valgrind的调试问题,向高手求助

jack_wq 2013-07-09 04:12:26
我在开发的过程中,发现有内存泄露(申请没有及时释放)的问题,使用valgrind工具检查发现有很多still reachable的memory,summary如下:
LEAK SUMMARY:
definitely lost: 0 bytes in 0 blocks
indirectly lost: 0 bytes in 0 blocks
possibly lost: 0 bytes in 0 blocks
still reachable: 58,576 bytes in 1,958 blocks
suppressed: 0 bytes in 0 blocks
但是没有显示堆栈信息,显示信息如下(部分)
3,552 bytes in 222 blocks are still reachable in loss record 627 of 628
at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
by 0x4579EA: xmalloc (in /bin/bash)
by 0x41FA4F: ??? (in /bin/bash)
by 0x4218DB: yyparse (in /bin/bash)
by 0x41B506: parse_command (in /bin/bash)
by 0x41B5C5: read_command (in /bin/bash)
by 0x41B74D: reader_loop (in /bin/bash)
by 0x41B2A9: main (in /bin/bash)

8,192 bytes in 1 blocks are still reachable in loss record 628 of 628
at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
by 0x4579EA: xmalloc (in /bin/bash)
by 0x446FDF: fd_to_buffered_stream (in /bin/bash)
by 0x447097: with_input_from_buffered_stream (in /bin/bash)
by 0x41B24B: main (in /bin/bash)

命令行参数如下:
valgrind --leak-check=full --show-reachable=yes -v --read-var-info=yes --num-callers=10 --leak-resolution=high
不知道是我的valgrind参数设置问题还是其他什么问题,如何能显示内存泄露调用的堆栈信息?请高手指教。谢谢。
分不够可以再加,这个不是问题。
...全文
143 点赞 收藏 3
写回复
3 条回复
pix77 2013年07月10日
类似于at 0x4A05E1C: malloc (vg_replace_malloc.c:195)这样, 指出文件名行数的
回复 点赞
jack_wq 2013年07月09日
谢谢楼上的链接,我看过了。 我想知道如何找到这些still reachable的内存是在哪里申请的?从输出信息看不到的。如何能知道呢?
回复 点赞
发动态
发帖子
Linux/Unix社区
创建于2007-08-27

7100

社区成员

7.3w+

社区内容

Linux/Unix社区 应用程序开发区
社区公告
暂无公告