4

我正在 VS 2010 中开发一个 .NET 4.0 应用程序。

我第一次尝试使用转储文件,但是在将小型转储加载到 VS 时,我无法调试它,因为 VS 找不到源文件。

这是我所做的:

  • Options -> Debugging -> Symbols我添加了我的应用程序的构建目录,其中包含 pdbs。
  • 在 VS 调试器中运行应用程序。已选中Debug -> Break All
  • 已选中Debug -> Save dump as
  • 转到Windows资源管理器中的转储文件并打开它。这打开了一个新的 VS 实例。
  • 我单击“混合调试”。这打开了一个新标签,上面写着"There is no source code available for the current location

我试图弄清楚为什么 VS 没有加载我的 pdb:

  • 打开Debug -> Windows -> Modules
  • Symbol StatusMyApp.exe的列显示“已加载符号”。
  • 对于 MyApp.vshost.exe,它说“无法找到或定位 PDB 文件”。
  • 右键单击 MyApp.exe,选择“符号加载信息”。它说“MyApp.pdb:已加载符号”。
  • 对 MyApp.vshost.exe 做了同样的事情。它说vshost32.pdb: 找不到或打开 PDB 文件。. (注意它是如何寻找一个名为 vshost32.pdb 而不是 MyApp.vshost.pdb 的文件,出于某种原因)

那么,有什么想法吗?

4

1 回答 1

4

解决了这个问题。VS 正在查看调用堆栈中最底部的方法,这是 ntdll.dll 中某处的系统方法。所以自然没有它的来源。我必须在窗口中单击我自己的方法Call Stack才能导航到我自己的代码,该代码的源代码可用

于 2011-08-09T14:39:31.890 回答