使用vld检查内存泄露
黑娃 2013-03-14 06:32:19 请看伪代码
#include "vld.h"
...
int main()
{
//step1:
// 给一些全局变量分配内存
//step2:
for(;;)
{/* 服务器的逻辑 */}
//step3:
// 释放全局变量分配的内存
}
问题:
由于这是个逻辑服务器进程,所以永远走不到step3,那我用vld怎么捕捉内存泄露信息呢?
我现在都是在step2的时候把程序关闭了,就是右上角的x按钮,vld会给我很多泄露信息,但是我怀疑不准确。
我自己做了一个实验,就是用上例的三部写个简单例子,如果在第二步关闭程序的话,vld是不会给出任何输出的。
实际上第二步很复杂,多线程的程序,还有底层的socket封装、继承,共享内存,lua脚本载入等等,不知道vld是不是因为用了什么奇怪的模块才会打出一些我觉得不准确的泄露情报。
求指教,我怎么来检查这个程序的这个内存泄露情况比较靠谱?