【发布时间】:2009-11-16 18:08:22
【问题描述】:
我在 WinDbg 中使用以下命令发现了泄漏的堆块
!heap –l
对于我得到的每个泄漏的堆块,我都在运行以获取堆栈跟踪。
!heap -p -a leakedheapblock
以下是该命令的结果:
address 1c841cc0 found in
_HEAP @ 3930000
HEAP_ENTRY Size Prev Flags UserPtr UserSize - state
1c851cc0 0009 0000 [03] 1c851ce8 0000c - (busy)
Trace: 84f8
7c873c19 ntdll!RtlpDphNormalHeapAllocate+0x00000030
7c876870 ntdll!RtlpDebugPageHeapAllocate+0x00000335
7c8794a8 ntdll!RtlDebugAllocateHeap+0x0000002d
7c8531e4 ntdll!RtlAllocateHeapSlowly+0x00000041
7c83d97a ntdll!RtlAllocateHeap+0x00000e9f
1699d238 MyLibrary!malloc+0x0000007a
如何在“MyLibrary”中找到泄露的代码。
【问题讨论】:
-
你是 gflags.exe /i yourApplication.exe +ust 吗?
-
是的,我启用了用户堆栈跟踪
标签: com memory-leaks