这个问题相当简单 - 我试图使用s.o.在Silverlight应用程序中调试内存泄漏。我能够使用!gcroot获得一些好的信息,以确定哪些对象具有应该被清除的对象的开放引用;但在这些情况下,它们往往是核心UI元素(如网格和故事板),如果没有能够查看其依赖属性(如名称)的值,我无法真正区分它们。尝试使用!dumpobj查看依赖属性对我来说是一个完全的野鹅追逐,它们都是静态类(属性),它们互相引用,我最后进入了圆圈。在任何时候我都无法在任何地方找到依赖属性的单个实际值。
我搜索了相当多的内容,但只能找到其他人提出这个问题,或猜测没有得到答案。 http://blogs.msdn.com/tess/archive/2008/09/16/q-a-reader-emails-about-net-memory-leaks-and-random-questions.aspx是一个没有答案的页面。
答案 0 :(得分:1)
查看Reflector中的DependencyObject.GetValue的来源让我觉得在Windbg中做这件事并非易事。作为一种替代方法(我承认,这是一个hacky),在您自己的类中,您可以将标准CLR属性绑定到Name DP,这样您就可以在调试器中读取一个值。