是否可以在创建DLL后(重新)创建PDB文件

时间:2011-12-08 12:10:27

标签: pdb-files

我有DLL,我有用于创建DLL的确切来源。当我们从客户那里获得转储文件时,我希望我们的本地符号服务器工作。 (在我们的产品的下一个补丁/发布之前,无法在客户站点更新DLL)

1 个答案:

答案 0 :(得分:9)

这似乎是不可能的。在这里看一下:Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with?

或者这篇文章:PDB Files: What Every Developer Must Know

引用“PDB文件:每件事......”:

  

极其重要的部分是调试器如何知道这是   这个二进制文件的精确匹配PDB文件。这是通过GUID完成的   它嵌入在PDB文件和二进制文件中。如果GUID确实如此   不匹配,你当然不会在源代码上调试模块   水平。
  .NET编译器和本机链接器将此GUID放入   二进制和PDB。由于编译行为会创建此GUID,因此请停止并执行此操作   对此稍加思考。如果你有昨天的构建并且做了   不保存PDB文件你能再次调试二进制文件吗?   没有!这就是为每个人保存PDB文件至关重要的原因   建立。因为我知道你在考虑它,所以我会继续回答   问题已经在你脑海中形成:不,没有办法改变   GUID。