HighTechTalks DotNet Forums  

How to read output of !gcroot (WinDbg + SOS.DLL)

Dotnet Framework (CLR) microsoft.public.dotnet.framework.clr


Discuss How to read output of !gcroot (WinDbg + SOS.DLL) in the Dotnet Framework (CLR) forum.



Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old   
redhotsly@hotmail.com
 
Posts: n/a

Default How to read output of !gcroot (WinDbg + SOS.DLL) - 04-04-2007 , 03:06 PM






Hi,

I'm trying to understand what the output of !gcroot means.

In this case, 12fdfcf8 is the address of an instance of
ESI.Octopus.Lookups.Interfaces.LookupsFactory.

Here is what I get:

0:052> !gcroot 12fdfcf8

DOMAIN(03955DC8):HANDLE(Pinned):50c12f0:Root:202eb d30(System.Object[])-
Quote:
16496b50(System.Collections.Generic.Dictionary`2[[System.WeakReference,
mscorlib],[ESI.Octopus.Lookups.Interfaces.LookupsFactory,
ESI.Octopus.Lookups.Interfaces]])->
1d13fec4(System.Collections.Generic.Dictionary`2+E ntry[[System.WeakReference,
mscorlib],[ESI.Octopus.Lookups.Interfaces.LookupsFactory,
ESI.Octopus.Lookups.Interfaces]][])

DOMAIN(03955DC8):HANDLE(WeakSh):50c3568:Root:
1add2484(ESI.Framework.Entities.EntityServiceProvi der)->
14e76714(System.EventHandler)->
14e766f4(System.Object[])->
12fdfd40(System.EventHandler)->
12fdfcf8(ESI.Octopus.Lookups.Interfaces.LookupsFac tory)


Questions on the first handle:

What does "HANDLE(Pinned):50c12f0:Root:202ebd30(System.Objec t[])"
mean? Does it mean that my object is indirrectly held by an object
array which is pinned? If is it so, how can I find the root(s) of that
array?

If I run "!do 50c12f0" the debuggers says "this object has an invalid
CLASS field". Why? What does it mean?

Also, I don't understand why the last line of this handle reference
graph is not my object itself as it is the case for the seccond handle
graph.

Questions on the seccond handle:

What does "DOMAIN(03955DC8):HANDLE(WeakSh):50c3568:Root:
1add2484(ESI.Framework.Entities.EntityServiceProvi der)" mean? Does it
mean that my object is indirrectly held by a WeakReference to an
another object that has my object in its delegate list (for an event)?
If is it so, how can I find who created the WeakReference? How can I
inspect the WeakReference itself and find its root(s)?

Thanks

Sylvain



Reply With Quote
Reply




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.