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

bug*_*kar 1 c# visual-studio-2010 visual-studio pdb-files visual-studio-2012

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

NtF*_*reX 9

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

但是在后台发生了一些事情。构建应用程序时,Visual Studio 始终将符号文件放在调试文件夹中,并按 下所述加载它们Loading the symbols automatic

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

手动加载符号

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

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

您可以右键单击一行,然后可以选择“加载符号”选项来指定要加载的 PDB 文件。

在此处输入图片说明

自动加载符号

当可以在 Visual Studio 调试器文档中的指定符号 (.pdb) 和源文件中列出的位置之一中找到符号时,Visual Studio 也会自动加载符号:

  • 在 DLL 或可执行文件中指定的位置。

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

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

  • 任何本地符号缓存文件夹。

  • 指定的任何网络、互联网或本地符号服务器和位置,例如 Microsoft 符号服务器(如果启用)。

在此处输入图片说明

如果您想进一步了解这些符号是如何与Visual Studio使用阅读你可以阅读文章有关Understanding symbol files and Visual Studio’s symbol settings