在Visual Studio中使用Pdb文件和源代码文件进行调试

时间:2017-06-06 06:42:30

标签: c# visual-studio visual-studio-2010 visual-studio-2012 pdb-files

我有一个从客户端代码发布到外部dll中的方法的Web项目,我有源代码文件和外部dll的pdb文件。我想做的是使用源代码文件和pdb调试外部DLL。 Visual Studio不会停止说没有为该模块加载符号。

1 个答案:

答案 0 :(得分:4)

要调试dll,总是需要具有相同版本的符号文件。当您调试自己的应用程序时,通常不必关心它。

但是背景中发生了一些事情。在构建应用程序时,Visual stuido allways将符号文件放在debug文件夹中,并按照Loading the symbols automatic中的描述加载它们。

(当您分发应用程序时,通常不希望分发这些符号,因此无法将它们复制到发布目录中,而是将构建配置更改为发布。)

加载符号manuell

如果您想手动加载符号,可以使用Modules对话框加载它们。

"Debug" -> "Windows" -> "Modules"

您可以右键单击一行,然后有选项"加载符号"它允许您选择要加载的pdb文件。

enter image description here

自动加载符号

Visual Studio还可以在以下某个位置找到符号时自动加载符号。

  • DLL或可执行文件中指定的位置。 (默认情况下,如果您在计算机上构建了DLL或可执行文件,则链接器会将关联的.pdb文件的完整路径和文件名放在DLL或可执行文件中。调试器首先检查符号是否符号文件存在于DLL或可执行文件中指定的位置。这很有用,因为您总是有符号可用于您在计算机上编译的代码。)

  • .pdb文件,可能与DLL或可执行文件位于同一文件夹中。

  • 任何本地符号缓存文件夹。
  • 指定的任何网络,Internet或本地符号服务器和位置,例如Microsoft符号服务器(如果已启用)。

enter image description here

如果您想了解更多关于符号如何与visual studio一起使用的信息,请阅读this有关Understanding symbol files and Visual Studio’s symbol settings的文章。