私のプロセス(プラグインを動的にロード)でメモリ内の変数を繰り返し、特定のタイプのインスタンスを探します。変数を反復して特定のタイプのインスタンスを見つける方法
以前は特定のタイプ(またはすべてのタイプがメモリにあります)が見つかりました。私は型のインスタンスを作成することができます、私は異なる型のフィールドとして含まれているインスタンスを取得することができますが、とにかく私は特定の型のインスタンスを "検索"するだけではわかりません。
私のプロセス(プラグインを動的にロード)でメモリ内の変数を繰り返し、特定のタイプのインスタンスを探します。変数を反復して特定のタイプのインスタンスを見つける方法
以前は特定のタイプ(またはすべてのタイプがメモリにあります)が見つかりました。私は型のインスタンスを作成することができます、私は異なる型のフィールドとして含まれているインスタンスを取得することができますが、とにかく私は特定の型のインスタンスを "検索"するだけではわかりません。
1つの方法は、windbgとsosを使用することです。 !dumpypeに-typeフラグを指定することができます。
この記事では、リークを検出する目的で、必要なすべてのsosコマンドを示します。作者はcdbを使用しています。あなたはsdbをロードする限り、cdbまたはwindbgを使用できます。 http://www.simple-talk.com/dotnet/.net-framework/investigating-.net-memory-management-and-garbage-collection/ –
!DumpHeapコマンドの出力を解析して、アプリケーション内の管理対象の型にポインタをキャストすることで、Windbgを自動化できます。 –
答えが示すとおり、アプリケーションにデバッガを接続する必要があります。これがオプションではない場合は、おそらくより簡単な解決法を提供するために問題を詳しく解説する必要があります(たとえば、オブジェクトを中央コレクションに登録する必要があります...) –
プロセスへのアタッチがオプションでない場合、 windbg/sosのテクニックは、プロセスメモリダンプとしても機能します。アーキテクチャを正しく取得していることを確認してください。http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64- machine.aspx –