多年来,我一直使用 !heap –p –a 来完成各种任务。现在我开始使用最新的 Win8 sdk 中的 WinDbg 6.2.9200 在 Win8 上进行调试。
在这里,我发现 !heap –p –a 并不总是有效,并且 !address 的输出“广告”使用 !heap –x (见下文)。
读完 !heap -? ,我无法理解其中的区别!有谁知道区别吗?
您使用哪个命令来查看堆块的详细信息?
0:008> !address 335168f8
<cut cut>
Usage: Heap
Base Address: 32b43000
End Address: 33540000
Region Size: 009fd000
State: 00001000 MEM_COMMIT
Protect: 00000004 PAGE_READWRITE
Type: 00020000 MEM_PRIVATE
Allocation Base: 32570000
Allocation Protect: 00000004 PAGE_READWRITE
More info: heap owning the address: !heap 0xa80000
More info: heap segment
More info: heap entry containing the address: !heap -x 0x335168f8
0:008> !heap -x 0x335168f8
Entry User Heap Segment Size PrevSize Unused Flags
-----------------------------------------------------------------------------
335168f0 335168f8 00a80000 32570000 30 30 1c busy extra fill
0:008> !heap -p -a 0x335168f8
0:008> .echo "nothing !!"
nothing !!