【问题标题】:Hunting memory leaks寻找内存泄漏
【发布时间】: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


【解决方案1】:

在 MSDN 中有一个很好的指南:Memory Leak Detection Enabling

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 2012-06-16
    • 1970-01-01
    • 2011-02-25
    • 2011-05-11
    • 1970-01-01
    • 2011-03-17
    相关资源
    最近更新 更多