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