基本上,我有一个我认为应该被垃圾回收的对象,但事实并非如此。 我很确定所有对它的引用都从我在代码中看到的东西中消失了,但由于某种原因,它并没有被破坏。有没有办法找出什么是在.NET中引用我的对象?
有什么方法可以找出什么东西持有我的对象人质? 在Visual Studio 2005中似乎没有办法做到这一点。 WinDbg也许?
基本上,我有一个我认为应该被垃圾回收的对象,但事实并非如此。 我很确定所有对它的引用都从我在代码中看到的东西中消失了,但由于某种原因,它并没有被破坏。有没有办法找出什么是在.NET中引用我的对象?
有什么方法可以找出什么东西持有我的对象人质? 在Visual Studio 2005中似乎没有办法做到这一点。 WinDbg也许?
是,您可以使用WinDbg + SOS来追踪您的托管堆。 This link应该让你开始。
注 - 您不必使用VADump(步骤1到3)来获取转储文件,Visual Studio调试器具有为附加过程内置的此功能。
请检查其他版本,如果你不是在版本2.0
而且这篇文章帮我在一个项目前一阵子,看看
该链接指向WeakReference文章 - 你的意思是? 另外,我试过CLR Profiler,但我似乎无法弄清楚如何使用它以满足我的需求... – 2009-04-16 04:16:54