了解Valgrind o / p

时间:2011-07-21 05:21:59

标签: valgrind memcheck

我使用valgrind运行memcheck。 o / p是

==3091== 204 bytes in 17 blocks are definitely lost in loss record 1,406 of 2,299
这是什么意思?

我猜有204 bytes memory loss

意味着什么
17 blocks ?

如何知道同一个函数发生了多少次内存泄漏?

完成valgrind的堆栈跟踪

==3091== 204 bytes in 17 blocks are definitely lost in loss record 1,406 of 2,299
==3091==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==3091==    by 0x4CA304: fs_get (fs_unix.c:38)
==3091==    by 0x4E58C1: cpystr (misc.c:74)
==3091==    by 0x4D130F: ip_nametoaddr (ip_unix.c:178)
==3091==    by 0x4D15F4: tcp_open (tcp_unix.c:192)
==3091==    by 0x4D41A5: cc_connect_http_proxy (proxy.c:164)
==3091==    by 0x4D4B0C: cc_connect (proxy.c:571)
==3091==    by 0x4D506D: ssl_open (osdep.c:353)
==3091==    by 0x4E56C3: net_open_work (mail.c:6240)
==3091==    by 0x4E558A: net_open (mail.c:6196)
==3091==    by 0x4FBA04: imap_open (imap4r1.c:841)
==3091==    by 0x4D9CB1: mail_open_work (mail.c:1355)

1 个答案:

答案 0 :(得分:3)

这意味着有17个不同的malloc(或其他分配器函数)调用,其返回值不是free。这17个分配表示总共丢失了204个字节。