【发布时间】:2017-03-15 15:51:11
【问题描述】:
我尝试使用 MSDN CRT 库获取程序内存泄漏,但在启动 _CrtDumpMemoryLeaks() 时遇到异常问题,因为它永远不会结束线程的执行。
结构: 启动一个 DLL 包装类的 nUnit 测试,它只调用 _CrtDumpMemoryLeaks()...调试器运行一段时间(进程活动)然后挂起但不会停止 - 没有更多活动。
如 MSDN 文档中所述,新、malloc、calloc、realloc 和 free 函数已被覆盖。
我错过了什么?
我的背景: Visual Studio 2012 Update 5、托管 C++ (C++/CLI)、单元测试 C# (nUnit)
【问题讨论】:
-
向我们展示codez。 How to Ask
-
可能您遇到了严重的内存损坏情况...尝试在程序开始时和程序的各个时刻执行它。很明显,您会看到许多泄漏(因为仍有许多对象被引用),但至少您将能够查明损坏
-
按照您的建议更正。好的。我完成了转储......但这里是代码: char * memLeak = (char *) malloc(64); memset(memLeak,0,64); _CrtDumpMemoryLeaks();我没有内存泄漏!正常吗?
标签: c# c++ memory-leaks