【发布时间】:2017-11-07 01:24:00
【问题描述】:
我有一个 Web 项目,它从客户端代码发布到外部 dll 中的方法,我有这个外部 dll 的源代码文件和 pdb 文件。我想做的是使用源代码文件和 pdb 调试外部 dll。 Visual Studio 并没有停止说没有为模块加载任何符号。
【问题讨论】:
标签: c# visual-studio visual-studio-2010 visual-studio-2012 pdb-files
我有一个 Web 项目,它从客户端代码发布到外部 dll 中的方法,我有这个外部 dll 的源代码文件和 pdb 文件。我想做的是使用源代码文件和 pdb 调试外部 dll。 Visual Studio 并没有停止说没有为模块加载任何符号。
【问题讨论】:
标签: c# visual-studio visual-studio-2010 visual-studio-2012 pdb-files
始终需要调试具有相同版本的符号文件。当您调试自己的应用程序时,您通常不必关心这一点。
但是在后台发生了一些事情。 Visual Studio 始终在构建应用程序时将符号文件放在调试文件夹中,并按照Loading the symbols automatic 中的说明加载它们。
(当您分发应用程序时,您通常不想分发这些符号,因此它们不会被复制到您将构建配置更改为发布的发布目录。)
手动加载符号
如果您想手动加载符号,可以使用Modules 对话框加载它们。
"Debug" -> "Windows" -> "Modules".
您可以右键单击一行,并有“加载符号”选项,可让您指定要加载的 PDB 文件。
自动加载符号
Visual Studio 还会在符号位于 listed in the Specify Symbol (.pdb) and Source Files in the Visual Studio Debugger documentation 的地方之一时自动加载它们:
在 DLL 或可执行文件中指定的位置。
(默认情况下,如果您在计算机上构建了 DLL 或可执行文件,链接器会将关联的 .pdb 文件的完整路径和文件名放在 DLL 或可执行文件中。调试器首先检查以查看如果符号文件存在于 DLL 或可执行文件中指定的位置。这很有帮助,因为您始终拥有可用于在计算机上编译的代码的符号。)
.pdb 文件可能与 DLL 或可执行文件位于同一文件夹中。
任何本地符号缓存文件夹。
指定的任何网络、互联网或本地符号服务器和位置,例如 Microsoft 符号服务器(如果启用)。
如果您想了解更多关于符号如何与 Visual Studio 一起使用的信息,您可以阅读 this 关于 Understanding symbol files and Visual Studio’s symbol settings 的文章。
【讨论】: