2011-07-20 17 views
2

我正在編寫一個需要知道用戶當前正在調試的文件的完整路徑的VS擴展,並且我想支持在pdb中寫入的源路徑不正確的情況,並且提示用戶在別處找到該文件。Visual Studio調試器可擴展性 - 如何關注VS調試器源文件路徑重定向?

如果我執行以下操作:

1)調試一個DLL,其PDB點代碼文件在位置A

2)將代碼文件到不同的位置,B

3)當提示打開文件對話框,指示調試器找到位置B的代碼

然後打開文件,看起來Visual Studio「記住」了這個重定向,並且知道在位置B尋找文件,即使在我重新啓動它。

我的問題是,IDebugStackFrame2/EnvDTE.StackFrame對象都給我的代碼文件舊的,不正確的路徑 - 我想要正確的,所以我可以從它讀取源! Visual Studio是否以任何方式公開這個間接表?

如何獲取源文件的文本?

P.S.我試圖用舊的,不正確的路徑使用VsShellUtilities.OpenDocument方法,但它拋出一個文件找不到方法..

回答

0

簡直不能完成..........

0

從#2,你也重新編譯? PDB本身具有到源的路徑信息,您可以使用十六進制編輯器查看該信息。我不認爲你可以改變源文件的路徑,一旦調試器獲得了PDB的持有和任何指定的路徑。

+0

嗨,對不起,也許我在我的問題不夠清楚 - 我知道pdb有源文件的路徑,我知道如何以編程方式讀取pdb。我不知道的是如何從Visual Studio獲取路徑,在從pdb中獲取路徑中未找到代碼文件的情況下,並且提示用戶自己查找源文件。我不重新編譯,我只是將文件移動到其他位置,以模擬Visual Studio無法在寫入pdb的路徑中找到文件的情況。 –

+0

對,非常感謝您的澄清(抱歉我的困惑)。關於用戶指定的路徑,我永遠無法使它工作,我只是從Visual Studio對話框中使用該路徑來複制源文件,但改變路徑似乎不起作用。不知道我是否做錯了什麼,或者如果Visual Studio在這方面有問題。 –

+0

不知道那裏有什麼問題 - 它在VS2008和VS2010中對我很好。 –