检查malloc之前和free C之后的内存状态

时间:2018-04-21 14:48:41

标签: c memory-management dynamic malloc free

我想知道在执行使用malloc()的程序之前使用了多少内存,以及在程序执行完毕后分配了多少内存。我想这样做是为了检查我的free()是否真正清理了我已经分配的所有内存。

当我以前做并发编程时,我使用ipcs知道在执行程序之前和之后分配了多少信号量,队列和共享内存。

是否有相似的内容可以检查我们的malloc()free()效率?

我正在运行ubuntu 16.04

非常感谢

2 个答案:

答案 0 :(得分:1)

一个额外的回答点,valgrid有一个名为

的工具
  

地块

,这是一个堆分析器。它可用于分析整个程序中的堆使用情况。您还可以借助

以图形方式查看堆使用情况
  

地块

  

ms_print

命令

可以找到更多信息和文档here

答案 1 :(得分:0)

我把@Felix Palmen评论作为有效答案; Valgrind工具完全符合我的需求。安装它:

sudo apt-get install libc6-dbg gdb valgrind

对于文档,这是官方的Valgrind网站。