Basically, I have an object that I think should be garbage-collected but it’s not.
I am pretty certain all references to it are gone from what I can see in the code but for some reason, it is not getting destroyed.
Is there some way to find out what’s holding my object hostage?
There doesn’t seem to be a way to do that in Visual Studio 2005.
WinDbg perhaps?
Yes, you can use WinDbg + SOS to trace your managed heap. This link should get you started.
Note – you don’t have to use VADump (steps 1 to 3) to get a dump file, the Visual Studio debugger has this feature built in for an attached process.