2011-07-20 19 views
2

私はVS拡張モジュールを書いています。ユーザーが現在デバッグしているファイルのフルパスを知る必要があります.pdbに書かれたソースパスが正しくないというシナリオをサポートしたいと思います。他の場所でファイルを見つける。Visual Studioデバッガの拡張性 - VSデバッガのソースファイルパスのリダイレクトに従う方法

Iは、次の手順を実行している場合:

1)PDBポイントコードファイルにおける位置で

2)別の場所にコードファイルを移動し、B

3 DLLをデバッグ)場合ファイルを開くダイアログが表示されたら、デバッガが場所Bのコードを見つけるように指示します

ファイルが開かれ、Visual Studioはこのリダイレクトを "記憶"していると思われます。私はそれを再開する。

私の問題は、IDebugStackFrame2/EnvDTE.StackFrameオブジェクトが、コードファイルの古いパスと不正なパスの両方を渡していることです。正しいパスを取得してソースを読むことができます。 Visual Studioはこのインダイレクションテーブルをどのような方法で公開しますか?

ソースファイルのテキストを取得するにはどうすればよいですか?

P.S. VsShellUtilities.OpenDocumentメソッドを古い不正なパスで使用しようとしましたが、ファイルが見つかりません。

答えて

0

..........

0

#2から、あなたも再コンパイルしていますか? PDB自体はソースへのパス情報を持っています。あなたはそれを16進エディタで見ることができます。デバッガがPDBを保持し、そこに指定されているパスがあれば、ソースファイルへのパスを変更できるとは思いません。単純に行うことができない

+0

こんにちは、申し訳ありませんが、多分私は私の質問に十分明確ではありませんでした - 私は、PDBは、ソースファイルへのパスを持って知っています私はプログラムでpdbを読む方法を知っています。私が知らないのは、コード・ファイルがpdbから取られたパスに見つからないというシナリオで、Visual Studioからパスを取得する方法です。ユーザーはソース・ファイルを自分で見つけるように求められました。私は再コンパイルしていません。私は、Visual Studioがpdbで書かれたパスのファイルを見つけることができない状況をシミュレートするために、ファイルを別の場所に移動しています。 –

+0

あなたの説明のために多くのおかげです(私の混乱を申し訳ありません)。ユーザー指定のパスに関しては、私はそれを動作させることはできませんでした。私はVisual Studioのダイアログからそのパスを使用してソースファイルをコピーしますが、パスを変更することは動作していないようです。間違ったことをやっているのか、Visual Studioにこの領域に問題があるのか​​はわかりません。 –

+0

何が間違っているのかわかりません - VS2008とVS2010ではうまく動作します。 –

関連する問題