Visual Studio 2013 RC 中的“无法找到或打开 PDB 文件”

Posted

技术标签:

【中文标题】Visual Studio 2013 RC 中的“无法找到或打开 PDB 文件”【英文标题】:"Cannot find or open the PDB file" from Visual Studio 2013 RC 【发布时间】:2013-12-03 15:22:59 【问题描述】:

第一次使用 C#,但我有使用 Java 的经验。

我编写了一个 Hello World 程序来启动自己,但我在编译时收到了这个 cannot find or open the PDB file 错误。

'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'C:\Windows\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll'. Cannot find or open the PDB file.
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll'. Cannot find or open the PDB file.
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'C:\Windows\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll'. Cannot find or open the PDB file.
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'C:\Windows\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll'. Cannot find or open the PDB file.
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'C:\Windows\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll'. Cannot find or open the PDB file.
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll'. Cannot find or open the PDB file.
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll'. 
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'c:\users\520\documents\visual studio 2013\Projects\ConsoleApplication4\ConsoleApplication4\bin\Debug\ConsoleApplication4.vshost.exe'. Cannot find or open the PDB file.
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll'. Cannot find or open the PDB file.
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'C:\Windows\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll'. Cannot find or open the PDB file.
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'C:\Windows\assembly\GAC_MSIL\System.Drawing.Design\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.Design.dll'. Cannot find or open the PDB file.
The thread 0xa14 has exited with code 259 (0x103).
The thread 0x235c has exited with code 259 (0x103).
'ConsoleApplication4.vshost.exe' (CLR v2.0.50727: ConsoleApplication4.vshost.exe): Loaded 'c:\users\520\documents\visual studio 2013\Projects\ConsoleApplication4\ConsoleApplication4\bin\Debug\ConsoleApplication4.exe'. Symbols loaded.
The thread 0x25b8 has exited with code 259 (0x103).
The thread 0x9d0 has exited with code 259 (0x103).
The program '[8756] ConsoleApplication4.vshost.exe' has exited with code 0 (0x0).
The program '[8756] ConsoleApplication4.vshost.exe: Program Trace' has exited with code 0 (0x0).

可能是什么问题?

【问题讨论】:

你能发布你的代码吗?你的配置是什么? 这是完全正常的。专注于调试自己的代码,调试.NET框架没有用。 Error Message : Cannot find or open the PDB file 的可能重复项 @HansPassant 有没有办法关掉它? 好的,右击输出窗口,取消勾选你不想看到的通知。 【参考方案1】:

最重要的是,可以加载您自己代码的符号: ...ConsoleApplication4.exe'. Symbols loaded.

其余缺少的符号用于 .NET 系统的程序集 (dll)。它们并非一直都需要,您可以在没有它们的情况下调试代码,但如果您执行消息传递等高级操作,您的大部分堆栈将无法展开(或者有时称为“符号化”)。

我更喜欢尽可能多的系统 pdb(调试符号文件)。使用 VS 2012 设置起来非常容易,我认为 VS 2013 一样简单甚至更好。 http://msdn.microsoft.com/en-us/library/b8ttk8zy%28v=vs.90%29.aspx

请注意,设置符号下载后,您在第一次调试代码时会遇到严重延迟。这就是符号下载发生的时候。一旦完成,启动调试将再次快速(因为只有在 .NET 系统获得一些影响您的程序集的更新时才需要新符号)。

我还安装了 "Debugging Tools for Windows xy""Windows xy SDK"(其中 xy=7、8、8.1、10 取决于您使用的 Windows,加上架构也很重要:X64 或 32),即使我只调试托管(这是用 .NET 垃圾收集和处理语言编写的程序的术语)代码。 http://msdn.microsoft.com/en-us/library/windows/hardware/ff551063%28v=vs.85%29.aspx

您可能无法获得符号的一个程序集是ConsoleApplication4.vshost.exe。这是 Visual Studio 调试器用来启动程序的存根。您可以在 Process Explorer(Sysinternals 工具套件)中看到它,有时会有更多实例徘徊。

【讨论】:

我刚刚在选项对话框 -> 调试节点 -> 符号中启用了“微软符号服务器”。我启动了调试会话,然后自动加载了符号文件 @cerebrosys 是的,现在启用该功能很容易(比在 VS 2012 或 2010 或更早版本中更容易)。但是在您下载符号后,您可能没有调用堆栈中所有条目的符号。缺少一个符号可能会阻止展开堆栈的某些部分。你肯定不会得到你的...vshost.exe 的符号。此外,您可以在呼叫 stacj 中多次跨越托管/非托管边界。【参考方案2】:

当我收到此消息时,这是因为在打开项目时,我单击了“C# Console App .NET CORE”而不是“C# .Net Framework”。您可以复制程序,使用 .Net Framework 打开一个新项目,然后粘贴到复制的程序中。如果您的程序已调试,我应该可以完美运行。它适合我。

【讨论】:

以上是关于Visual Studio 2013 RC 中的“无法找到或打开 PDB 文件”的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Visual Studio Express 2013 for Web with Update 2 RC - 没有安装 Typescript

为啥 Visual Studio Community 2015 RC 只有4G?比VS2013小这么多。

Visual Studio 不再打开我的项目 RC 文件

Visual Studio 2010 Pro RC 中的 Code Contract 属性

C++ 中的 XAML 桌面应用程序(Visual Studio Ultimate 2012 RC)

带有 Visual Studio 2012 RC 的 MVC 4 / Razor 中的可移植类库?