WinDbg常用命令系列---!heap
!heap
简介
!heap扩展显示堆使用信息、控制堆管理器中的断点、检测泄漏的堆块、搜索堆块或显示页堆信息。此扩展支持段堆和NT堆。使用!heap没有参数列出所有堆及其类型的堆。
使用形式
!heap [HeapOptions] [ValidationOptions] [Heap]
!heap -b [{alloc|realloc|free} [Tag]] [Heap | BreakAddress]
!heap -B {alloc|realloc|free} [Heap | BreakAddress]
!heap -l
!heap -s [SummaryOptions] [StatHeapAddress]
!heap -i HeapAddress
!heap -x [-v] Address
!heap -p [PageHeapOptions]
!heap -srch [Size] Pattern
!heap -flt FilterOptions
!heap -stat [-h Handle [-grp GroupBy [MaxDisplay]]]
!heap [-p] -?
!heap -triage [Handle | Address]
参数
这些参数适用于Segment和NT堆。
- -s
指定正在请求摘要信息。如果省略SummaryOptions和StatHeapAddress,则显示与当前进程关联的所有堆的摘要信息。 - SummaryOptions
可以是以下选项的任意组合。SummaryOptions不区分大小写。输入!heap -s -?了解更多信息。选项 效果 -v
验证所有数据块。
-b BucketSize
指定存储桶大小。 默认值为1024位。
-d DumpBlockSize
指定存储桶大小。
-a
转储所有堆块。
-c
指定应显示每个块的内容。
- -triage [Handle |Address]
使调试器自动搜索进程堆中的失败。如果将堆句柄指定为参数,则检查该堆;否则,将搜索所有堆中包含给定地址的堆,如果找到,则检查该堆。使用-triage是验证低碎片堆(LFH)损坏的唯一方法。 - -x[-v]
使调试器搜索包含指定地址的堆块。如果添加了-v,该命令将搜索当前进程的整个虚拟内存空间以查找指向此堆块的指针。 - -l
使调试器检测泄漏的堆块。 - -iAddress-hHeapAddress
显示有关指定 堆 的信息。 - Address
指定要搜索的地址。 - -?
在调试器命令窗口中显示此扩展的简短帮助文本。使用!heap -?一般的帮助,而且!heap -p -?页面堆帮助。
这些参数仅适用于NT堆。
- HeapOptions
可以是以下选项的任意组合。HeapOptions值区分大小写。选项 效果
-v
使调试器验证指定的堆。此选项不会检测到低碎片堆(LFH)损坏。使用-triage代替。
- 上一篇: 仅通过转储来排除内存泄漏
- 下一篇: 使用Java中的InputStream读取文件数据