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

Check memory status before malloc and after free C

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

当我以前为了做到这一点而进行并发编程时,我使用 ipcs 来了解在程序执行前后分配了多少信号量、查询和共享内存。

是否有类似的东西来检查我们的 malloc()free() 效率?

我 运行 ubuntu 16.04

非常感谢

我将@Felix Palmen 的评论作为有效答案; Valgrind 工具非常适合我的需要。要安装它:

sudo apt-get install libc6-dbg gdb valgrind

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

要补充一点,valgrid 有一个工具叫

massif

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

的帮助下以图形方式查看堆使用情况

massif

ms_print

命令

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