提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
基本上我想要这样做:pdb文件包含源文件的位置(例如C:\\dev\\proj1\\helloworld.cs
)。 是否可以修改该pdb文件以使其包含不同的位置(例如\\more\\differenter\\location\\proj1\\helloworld.cs
)?
您可以使用Windows调试工具的源索引功能,该功能将保存对源存储库中文件的相应修订的引用,作为PDB文件中的备用流。
如果您希望对pdb文件中嵌入的路径更通用,可以先使用MS-DOS subst
命令将特定文件夹映射到驱动器号。
subst N: <MyRealPath>
然后打开相对于N:驱动器的项目并重建它。 您的PDB文件将引用N:上的源文件。 现在,无论您放置哪一组特定的源文件都无关紧要,只要您随后调用根目录“N:”就像您构建它时一样。
John Robbins在其出色的书“Microsoft .NET的调试应用程序”和Microsoft Windows中推荐了这种做法。
我想找到答案,以便调试在我的机器上没有构建的可执行文件中发生的故障转储,因此PDB中引用的源代码的路径无效,PDB的路径也是如此在可执行文件中引用。
在搜索并找不到有效的东西后,我发现如果将可执行文件和PDB放在崩溃转储文件旁边(即在同一目录中),然后在VS中打开并运行崩溃转储,VS将找到并使用PDB / EXE本地。 此外,它还会在单击调用堆栈中的条目时提示源代码的位置:将其指向任何相关的源代码,一切正常,这很棒!
无论如何,希望这有助于其他人...... :)
正如On Freund已经指出的那样,这当然是可能的。 但是,如果仅在调试期间可以定位和加载源,那么更好的方法是相应地设置源路径。 一旦设置在调试器中,它将预先显示PDB内的所有硬编码路径。
在windbg中(例如):
.srcpath + path_to_source_root或者这个(如果您正在远程调试):
.lsrcpath + path_to_source_root
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.