1

这个问题相当简单——我正在尝试使用 sos 调试 silverlight 应用程序中的内存泄漏,我能够使用 !gcroot 获得一些好的信息来确定哪些对象具有对应该被清除的对象的开放引用;但在这些情况下,它们往往是核心 UI 元素(如网格和故事板),如果无法查看它们的依赖属性值(如名称),我无法真正区分它们。尝试使用 !dumpobj 查看依赖属性对我来说简直是天方夜谭,它们都是相互引用的静态类(即属性),我最终只能绕圈子。在任何时候,我都无法在任何地方找到依赖属性的单个实际值。

我在谷歌上搜索了很多,但只能找到其他人在问这个问题,或者猜测没有得到答案。 http://blogs.msdn.com/tess/archive/2008/09/16/qa-reader-emails-about-net-memory-leaks-and-random-questions.aspx就是这样一个没有答案的页面。

4

1 回答 1

1

在 Reflector 中查看 DependencyObject.GetValue 的来源让我觉得这在 Windbg 中并非易事。作为一种替代方法(我承认这是一个 hacky),在您自己的类中,您可以将标准 CLR 属性绑定到 Name DP,这样您就可以在调试器中读取一个值。

于 2008-10-17T13:52:56.880 回答