我正在编写VS扩展,需要知道用户当前正在调试的文件的完整路径,并且我想支持在pdb中写入的源路径不正确的情况,并且提示用户在其他地方找到该文件。
如果我执行以下操作:
1)调试其PDB指向位置A的代码文件的DLL
2)将代码文件移动到不同的位置B
3)当出现“打开文件”对话框提示时,指示调试器在位置B找到代码
然后打开文件,似乎Visual Studio“记住”了这个重定向,并且即使重新启动它也会知道在位置B中查找该文件。
我的问题是,IDebugStackFrame2 / EnvDTE.StackFrame对象都给了我代码文件的旧的,不正确的路径 - 我想要正确的路径,以便我可以从中读取源代码! Visual Studio是否以任何方式公开此间接表?
如何获取源文件的文本?
P.S。我试图使用旧的,不正确的路径VsShellUtilities.OpenDocument方法,但它会抛出一个找不到文件的方法..
答案 0 :(得分:0)
来自#2,你还在重新编译吗? PDB本身具有源的路径信息,您可以使用十六进制编辑器查看它。一旦调试器掌握了PDB并且在那里指定了任何路径,我认为你不能改变源文件的路径。
答案 1 :(得分:0)
根本无法做到..........