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

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

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

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

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

加载符号manuell

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

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

您可以右键单击一行,并有“加载符号”选项,可以选择要加载的pdb文件。

在此处输入图像描述

自动加载符号

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

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

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

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

在此处输入图像描述

如果要阅读有关如何使用Understanding symbol files and Visual Studio's symbol settings更多信息,可以阅读有关Understanding symbol files and Visual Studio's symbol settings