[原]C++跨平台内存泄露检测模块-笔录

         内存泄露相信对C++程序员来说都不陌生。解决内存泄露的方案多种多样,大部分方案以追踪检测为主,这种方法实现起来容易,使用方便,也比较安全。

         首先我们要确定这个模块的主要功能:

  1. 能追踪内存的分配和释放过程。
  2. 要能显示内存分配的相关信息,比如内存块大小,代码所在文件所在行等。
  3. 在发现内存泄露时及时给出相关信息。
  4. 能正确处理一些异常情况,比如内存不足,对象初始化失败等等。
  5. 是线程安全的。[*这个还没有实现]

        有了一些基本功能需求,我们需要考虑每种功能怎么去实现。首先,我们可以通过重载的方式来追踪new,delete.malloc和free,C++给我提供了这样的特性。因为本文主要针对C++,所以主要讲重载new,delete的方法,malloc和free的重载实现于此类似,最终版本的程序中也实现了malloc和free的重载。