gdb可以执行函数,调用c库提供的接口函数,可以统计堆的使用情况。
(gdb) p (FILE *)fopen("/123", "w")
$1 = (FILE *) 0xd52320
(gdb) p (int)malloc_info(0, 0xd52320)
$2 = 0
(gdb) p (int)fclose(0xd52320)
$3 = 0
如上,对于daemon程序,stdout不可用,所以可以输出到一个文件,先fopen要输出的文件,打印出指针。然后调用malloc_info()讲统计信息输出到文件,然后关闭文件即可。