I know that fragmentation typically occurs when an object collected by garbage collection is marked as a "free" block, but the object occupying the next address space is pinned. I can get a list of Free objects, but cannot seem to find out what is pinned next to it.

I dump the object, find its size, and then add its size to the original object address to get the next object, like this:

0:000> !do 0a2467c8 Free Object Size 438312(0x6b028) bytes

0:000> !do 0a2467c8+438312 Invalid object

I can never get the next, pinned object to show up. Its always invalid. What am I doing wrong here?

link|improve this question

0% accept rate
Figured it out. When you step to the next object, the value must be in HEX, not in decimal. – Jeff Costa Jul 27 '09 at 22:42
feedback

1 Answer

WinDbg does not always work out as planned. Check out Mark Russinovich’s latest utility.

ProcDump v1.0, a 1.0 worth every ounce of mention. http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx

ProcDump is a command-line utility whose primary purpose is monitoring an application for CPU spikes and generating crash dumps during a spike that an administrator or developer can use to determine the cause of the spike. ProcDump also includes hung window monitoring (using the same definition of a window hang that Windows and Task Manager use) and unhandled exception monitoring. It also can serve as a general process dump utility that you can embed in other scripts.

link|improve this answer
Thanks, I'll check it out. – Jeff Costa Jul 27 '09 at 22:41
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.