我有一个从客户端代码发布到外部dll中的方法的Web项目,我有源代码文件和外部dll的pdb文件。我想做的是使用源代码文件和pdb调试外部DLL。 Visual Studio不会停止说没有为该模块加载符号。
答案 0 :(得分:4)
要调试dll,总是需要具有相同版本的符号文件。当您调试自己的应用程序时,通常不必关心它。
但是背景中发生了一些事情。在构建应用程序时,Visual stuido allways将符号文件放在debug文件夹中,并按照Loading the symbols automatic
中的描述加载它们。
(当您分发应用程序时,通常不希望分发这些符号,因此无法将它们复制到发布目录中,而是将构建配置更改为发布。)
加载符号manuell
如果您想手动加载符号,可以使用Modules
对话框加载它们。
"Debug" -> "Windows" -> "Modules"
。
您可以右键单击一行,然后有选项"加载符号"它允许您选择要加载的pdb文件。
自动加载符号
Visual Studio还可以在以下某个位置找到符号时自动加载符号。
DLL或可执行文件中指定的位置。 (默认情况下,如果您在计算机上构建了DLL或可执行文件,则链接器会将关联的.pdb文件的完整路径和文件名放在DLL或可执行文件中。调试器首先检查符号是否符号文件存在于DLL或可执行文件中指定的位置。这很有用,因为您总是有符号可用于您在计算机上编译的代码。)
.pdb文件,可能与DLL或可执行文件位于同一文件夹中。
如果您想了解更多关于符号如何与visual studio一起使用的信息,请阅读this有关Understanding symbol files and Visual Studio’s symbol settings
的文章。