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は、回答のないページの 1 つです。

4

1 に答える 1

1

Reflector の DependencyObject.GetValue のソースを見ると、Windbg でこれを行うのは簡単ではないと思います。別の方法 (ハックな方法であることは認めます) として、独自のクラスで、標準の CLR プロパティを Name DP にバインドして、デバッガーで読み取ることができる値を取得することができます。

于 2008-10-17T13:52:56.880 に答える