問題タブ [debug-diagnostic-tool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
200 参照

.net - DebugDiag 2.0 カスタム ルールでのアセンブリ属性のダンプ

DebugDiag 2.0でカスタム ダンプ分析ルールを作成しようとしています。このコードは、多数のアセンブリを含むマネージ C# アプリケーションです。各アセンブリには、アセンブリを作成するためにコンパイルされたソース ファイルに関するリビジョン情報を含む独自のカスタム属性があります。

WinDbgコマンド!savemoduleまたは !saveallmodulesを使用して、モジュールをファイルに抽出できることを知っています。その後、JetBrains DotPeek などのツールを使用してアセンブリ属性を検査できます。

DebugDiag 分析中にこれらの属性を見つけて、属性情報を DebugDiag レポートにダンプしたいと考えています。自動分析レポートにこれらの属性があると、チームの効率が向上します。

DebugDiag 2.0 オブジェクトを使用してメモリ ダンプからマネージ アセンブリ属性を抽出するにはどうすればよいですか?

デバッガー オブジェクトからモジュールを取得しようとしましたがNetDbgObj、そこから属性を取得する便利な方法がわかりません。

ClrModule オブジェクトが NetDbgObj.ClrRuntime オブジェクトを介して利用可能であることを確認できます。ClrModule オブジェクトを取得できましたが、どうすればよいかわかりません。MetadataAddressMetadataLength、 のプロパティがありますがMetadataImport、それらをどうするかわかりません。

これらの属性オブジェクトはマネージド ヒープ上にないため、!dumpheap -type MyAttribute返されません。

アセンブリ属性は、アセンブリ データのどこかにメタデータとして格納されます。!DumpModule の出力を見てきました。

dc のようなコマンドを使用してメタデータをダンプできることはわかっています。

ここからどこへ行けばいいのかわからない。