-
-
[求助]关于!heap -a 的一个疑问
-
发表于:
2013-10-26 15:58
2769
-
!heap -a命令会显示出堆中的所有entries,例如:
0:005> !heap -a 1
Index Address Name Debugging options enabled
1: 003d0000
Segment at 003d0000 to 004d0000 (00100000 bytes committed)
Segment at 02c70000 to 02d70000 (00020000 bytes committed)
Flags: 00000002
ForceFlags: 00000000
Granularity: 8 bytes
Segment Reserve: 00200000
Segment Commit: 00002000
DeCommit Block Thres: 00000800
DeCommit Total Thres: 00002000
Total Free Size: 00002433
Max. Allocation Size: 7ffdefff
Lock Variable at: 003d0138
Next TagIndex: 0000
Maximum TagIndex: 0000
Tag Entries: 00000000
PsuedoTag Entries: 00000000
Virtual Alloc List: 003d00a0
Uncommitted ranges: 003d0090
02c90000: 000e0000 (917504 bytes)
FreeList[ 00 ] at 003d00c4: 02c81fe8 . 004537a8
004537a0: 00108 . 00010 [100] - free
004a7fc0: 00190 . 00010 [100] - free
00453678: 00098 . 00010 [100] - free
0044b0e8: 000c8 . 00010 [100] - free
00418bd8: 00068 . 00010 [100] - free
00413230: 00040 . 00010 [100] - free
00403b48: 00040 . 00010 [100] - free
0046f620: 00130 . 00018 [100] - free
00440e50: 000f0 . 00018 [100] - free
0044bb50: 001c8 . 00018 [100] - free
0043dc10: 00140 . 00018 [120] - free
但是对于每一个Entry,到底那个是SelfSize,哪个是PreviousSize呢?比如这条:
004537a0: 00108 . 00010 [100] - free
108是self,10是previous吗?我在Debug Tutorial Part 3看到是这么说的:
<ADDRESS>: <Current Size> . <PREVIOUS Size>
但是调试过程中发现不是这样的,好像108应该是previous?10是self?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课