如何更新符号(.pdb)文件中的源位置

我想要做的是运行批处理脚本来更新.pdb文件以指向不同的源位置。 我不确定是否有办法更新pdb文件中的绝对路径,但目前我正在考虑将源流插入pdb文件,以便调试器可以获取源文件。

我使用pdbstr.exe插入源码流:

pdbstr -w -i:c:testpdbstream.txt -p:"C:testsomelibrary.pdb" -s:srcrv

pdbstream.txt的内容非常基本:

SRCSRV: ini ------------------------------------------------
VERSION=1
SRCSRV: variables ------------------------------------------
SRCSRVTRG=%var1%
SRCSRVCMD=cmd echo %var1% >> c:testoutput.txt
SRCSRV: source files ---------------------------------------
C:somedifferentpathsomelibrarysourcesfirstclass.cs
C:somedifferentpathsomelibrarysourcessecondclass.cs
SRCSRV: end ------------------------------------------------

根据MSDN上的信息,我只添加了所需的参数。 据我的理解,当调试器加载pdb文件并搜索源文件时,这应该在SRCSRVCMD变量中运行命令。 所以我期望在c: test output.txt中有一些输出。

我已经验证为模块加载了正确的pdb文件,但是当我在Visual Studio中进行调试时,它找不到任何源文件。 输出显示:

"SRCSRV: The module 'C:testsomelibrary.dll' does not contain source server information."

源码流无效,还是我忽略了特定的步骤? 或者我可以在不插入数据流的情况下更改pdb文件中的绝对源位置?

编辑

为了澄清,我目前正在使用Visual Studio调试器。 我试图调试的代码是在我自己创建的私有库中。 我希望.pdb文件在将所有内容(dll,pdb和源文件)移动到磁盘上的其他位置后指向正确的源文件。

链接地址: http://www.djcxy.com/p/12939.html

上一篇: How to update the source location in symbol (.pdb) files

下一篇: How do you enable "Enable .NET Framework source stepping"?