2010-12-08 12 views
5

私は学術目的のシンボルソースサーバー用にいくつかのロジックを書いています。pdbファイルがアセンブリのデバッグに有効であるかどうかを確認する方法

ユーザーが問題なく使用できるように、アセンブリとそのpdbファイルが互いに一致するかどうかを確認する必要があります。

私はほとんど研究をしていませんが、何も壮大ではありません。以下のモジュールが 有効な最適化または デバッグ情報なしのいずれかに建てられた

:VSは、それが情報を表示する可能性がありますデバッグ間違ったシンボルを取得する場合 assembly.dll
にするには、debugこのモジュール、そのプロジェクトを変更 設定をデバッグモードにビルドします。 にこのメッセージを表示しないようにするには、 '起動時にユーザーコードがない場合に警告' デバッガオプションを無効にします。

また、VSがどのような情報を取得して、それらを検証するのか疑問に思っています。

(管理された)APIはありますか?または管理されていない場合もありますか?

アイデア?

答えて

2

API Visual Studioの名前はDIAです。それはあなたがC#から呼び出すことができるCOM APIです。

Mono.Cecilライブラリは、アセンブリとシンボルにアクセスするための素晴らしいクラスセットを提供します。 .pdbファイルの下にDIAを使用します。私はこれを直接セシルに呼びます。もしそうでなければ、ソースコードはガイドを提供するべきです。

+0

おかげで、私はMono.Cecilが知ってもらうためにいいだろう、任意のCOMの上にAPIを管理好む – satori

+0

Mono.Cecilは私に何度も救いました –

2

このページには、PDBおよびDBGファイルの詳細についての優れた記事が掲載されています。シンボルファイルに格納されている内容、読み込み方法、バイナリファイル(EXEまたはDLL)とシンボルファイル(PDBまたはDBG)が一致するかどうかを判断する方法について説明します。

http://www.debuginfo.com/articles/debuginfomatch.html#details

関連する問題