C# 在VisualStudio中使用Pdb文件和源代码文件进行调试
我有一个web项目,从客户端代码发布到外部dll中的方法,我有这个外部dll的源代码文件和pdb文件。我想做的是使用源代码文件和pdb调试外部dll。Visual studio没有停止说没有为模块加载符号,因为。调试同一版本的符号文件总是需要的。当您调试自己的应用程序时,通常不必关心这一点 但是有一些事情是在幕后发生的。生成应用程序时,Visual Studio始终将符号文件放在调试文件夹中,并按照C# 在VisualStudio中使用Pdb文件和源代码文件进行调试,c#,visual-studio,visual-studio-2010,visual-studio-2012,pdb-files,C#,Visual Studio,Visual Studio 2010,Visual Studio 2012,Pdb Files,我有一个web项目,从客户端代码发布到外部dll中的方法,我有这个外部dll的源代码文件和pdb文件。我想做的是使用源代码文件和pdb调试外部dll。Visual studio没有停止说没有为模块加载符号,因为。调试同一版本的符号文件总是需要的。当您调试自己的应用程序时,通常不必关心这一点 但是有一些事情是在幕后发生的。生成应用程序时,Visual Studio始终将符号文件放在调试文件夹中,并按照自动加载符号中的说明加载它们 (分发应用程序时,通常不希望分发这些符号,因此不会将它们复制到将生成
自动加载符号中的说明加载它们
(分发应用程序时,通常不希望分发这些符号,因此不会将它们复制到将生成配置更改为release的发布目录中。)
手动加载符号
如果要手动加载符号,可以使用模块
对话框加载符号
“调试”->“窗口”->“模块”
您可以在行上单击鼠标右键,并且可以使用“加载符号”选项指定要加载的PDB文件
自动加载符号
当可以在以下位置之一找到符号时,Visual studio还会自动加载符号:
- 在DLL或可执行文件中指定的位置
(默认情况下,如果您在计算机上构建了DLL或可执行文件,则链接器会将关联的.pdb文件的完整路径和文件名放置在DLL或可执行文件中。调试器首先检查符号文件是否存在于DLL或可执行文件中指定的位置。这很有帮助,因为您的计算机上编译的代码始终有可用的符号。)
- .pdb文件,该文件可能与DLL或可执行文件位于同一文件夹中
- 任何本地符号缓存文件夹
- 在上指定的任何网络、internet或本地符号服务器和位置,如Microsoft符号服务器(如果启用)
如果您想了解有关符号如何与visual studio一起使用的更多信息,可以阅读有关了解符号文件和visual studio的符号设置的文章始终需要调试具有相同版本的符号文件。调试您自己的应用程序时,通常不必关心这一点
但也有一些事情发生在后台。在构建应用程序时,Visual Studio总是将符号文件放在调试文件夹中,并按照自动加载符号中的说明加载它们
(分发应用程序时,通常不希望分发这些符号,因此不会将它们复制到将生成配置更改为release的发布目录中。)
手动加载符号
如果要手动加载符号,可以使用模块
对话框加载符号
“调试”->“窗口”->“模块”
您可以在行上单击鼠标右键,并且可以使用“加载符号”选项指定要加载的PDB文件
自动加载符号
当可以在以下位置之一找到符号时,Visual studio还会自动加载符号:
- 在DLL或可执行文件中指定的位置
(默认情况下,如果您在计算机上构建了DLL或可执行文件,则链接器会将关联的.pdb文件的完整路径和文件名放置在DLL或可执行文件中。调试器首先检查符号文件是否存在于DLL或可执行文件中指定的位置。这很有帮助,因为您的计算机上编译的代码始终有可用的符号。)
- .pdb文件,该文件可能与DLL或可执行文件位于同一文件夹中
- 任何本地符号缓存文件夹
- 在上指定的任何网络、internet或本地符号服务器和位置,如Microsoft符号服务器(如果启用)
如果您想了解有关符号如何与visual studio一起使用的更多信息,可以阅读有关了解符号文件和visual studio的符号设置的文章