Rom*_*kov 13 memory-leaks msvcrt crtdbg.h visual-c++
我正在使用Visual CRT的内存泄漏检测程序<crtdbg.h>; 当我调用_CrtDumpMemoryLeaks一个分配时,会在每次调用程序时一致地报告:
{133} normal block at 0x04F85628, 56 bytes long.
Data: < > B0 81 F8 04 B0 81 F8 04 B0 81 F8 04 CD CD CD CD
Run Code Online (Sandbox Code Playgroud)
地址各不相同,但{133}始终相同.
根据MSDN关于如何在内存分配编号上设置断点的说明,我应该能够通过此调用在第133次分配上设置断点:
_CrtSetBreakAlloc(133);
Run Code Online (Sandbox Code Playgroud)
我还可以在监视窗口中验证{,,msvcr90d.dll}_crtBreakAlloc确实设置为133.程序退出后,泄漏报告仍然列出#133(以及一些更高的数字),但不会发生断点.为什么会这样,我如何让断点发生?
潜在相关信息:
__asm int 3工作得很好._crtBreakAlloc导致断点(不是我试过的那些)主要的前额拍打......一个"明显"的原因是如果在设置断点之前发生了#133的分配......
只是在我的DLL被调用之前发生了第一次泄漏.实际上它不一定是泄漏,因为我_CrtDumpMemoryLeaks在卸载DLL时调用- 而不是在父应用程序完成取消初始化时调用.
至于我原来的问题中的"潜在相关信息#4" - 我确实尝试了一些值,但不知何故没有高于133 ......
| 归档时间: |
|
| 查看次数: |
5468 次 |
| 最近记录: |