如何更改符号文件(pdb)中源文件的位置
时间:2020-03-05 18:43:17 来源:igfitidea点击:
基本上我想这样做:一个pdb文件包含源文件的位置(例如C:\ dev \ proj1 \ helloworld.cs)。是否可以修改该pdb文件,使其包含其他位置(例如," \ more \ differenter \ location \ proj1 \ helloworld.cs")?
解决方案
回答
如果我们希望对pdb文件中嵌入的路径更加通用,则可以首先使用MS-DOSsubst
命令将特定文件夹映射到驱动器号。
subst N: <MyRealPath>
然后相对于N:驱动器打开项目并重新生成它。PDB文件将引用N:上的源文件。现在,将这组特定的源文件放置在什么位置都无所谓,只要我们随后像创建它时一样将根目录称为" N:"即可。
约翰·罗宾斯(John Robbins)在其出色的著作《为Microsoft .NET和Microsoft Windows调试应用程序》中推荐了这种做法。
回答
我们可以使用Windows调试工具的源索引功能,该功能会将对源存储库中文件的适当修订的引用保存为PDB文件中的备用流。
回答
正如On Freund已经指出的那样,这肯定是可能的。
但是,如果只是在调试过程中可以定位和加载源代码,那么更好的方法是相应地设置源代码路径。一旦在调试器中设置,它将在PDB中预先包含所有硬编码的路径。
在windbg中(例如):
.srcpath+ path_to_source_root
或者此(如果我们要远程调试):
.lsrcpath+ path_to_source_root