2

我在写一个VS扩展,需要知道用户当前正在调试的文件的全路径,想支持pdb中写的源路径不正确,提示用户查找的场景在别处归档。

如果我执行以下操作:

1) 调试其 PDB 指向位置 A 的代码文件的 DLL

2)将代码文件移动到不同的位置,B

3) 当提示打开文件对话框时,指示调试器将代码定位在位置 B

然后打开该文件,Visual Studio 似乎“记住”了这个重定向,并且即使在我重新启动它之后也会知道在位置 B 中查找该文件。

我的问题是,IDebugStackFrame2/EnvDTE.StackFrame 对象都给了我旧的、不正确的代码文件路径——我想要正确的路径,这样我就可以从中读取源代码!Visual Studio 是否以任何方式公开此间接表?

如何获取源文件的文本?

PS我尝试将 VsShellUtilities.OpenDocument 方法与旧的、不正确的路径一起使用,但它会抛出一个找不到文件的方法。

4

2 回答 2

0

从#2开始,您是否也在重新编译?PDB 本身具有源的路径信息,您可以使用十六进制编辑器查看。一旦调试器控制了 PDB 以及那里指定的任何路径,我认为您无法更改源文件的路径。

于 2011-07-22T13:51:37.897 回答
0

根本做不到…………

于 2011-10-03T23:22:57.420 回答