Windbg:Free对象后无法获得下一个对象

我知道碎片通常在垃圾回收收集的对象被标记为“空闲”块时发生,但占用下一个地址空间的对象被locking。 我可以得到一个Free对象的列表,但似乎无法找出它旁边的固定内容。

我转储对象,find它的大小,然后将其大小添加到原始对象地址,以获得下一个对象,如下所示:

0:000>!do 0a2467c8自由对象大小438312(0x6b028)个字节

0:000>!do 0a2467c8 + 438312无效的对象

我永远无法得到下一个固定的对象来显示。 它总是无效的。 我在这里做错了什么?

WinDbg并不总是按计划运行。 看看Mark Russinovich的最新实用程序。

ProcDump v1.0,每盎司值得一提。 http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx

ProcDump是一个命令行实用程序,其主要目的是监视CPU峰值的应用程序并在pipe理员或开发人员可以使用确定峰值的原因时产生崩溃转储。 ProcDump还包括挂起的窗口监视(使用与Windows和任务pipe理器使用的窗口挂起相同的定义)和未处理的exception监视。 它也可以作为一个通用的进程转储工具,可以embedded到其他脚本中。