![]() |
1
3
从
请注意,重新定义现在如何调用另一个版本的malloc,该版本具有您要查找的文件和行号。很明显,要做到这一点,您必须定义crtdbg映射alloc并包含crtdb.h。最好在预编译头文件中这样做,这样您就可以合理地确定所有代码都将使用这些宏进行编译。 这仍然不能保证你会得到这个信息。您的项目可能正在使用未使用它编译的.lib。另一个失败模式是DLL,它可能只是卸载 之前 生成泄漏报告。该dll的文件和行信息也将被卸载。 诊断这些麻烦制造者是有退路的。泄漏报告有一行以块号开头的泄漏,显示在大括号内的起始处。只要在两次运行之间块号是稳定的,就可以在进行分配时强制调试程序中断。将此代码放在主方法中,或者放在早期执行的代码中的任何点上:
|