没有加载符号并且缺少pdb文件

Som*_*ody 3 asp.net visual-studio-2008 pdb-files

我试图理解为什么在尝试调试我的网站应用程序时(注意:没有Web应用程序,如果它很重要),我得到"断点当前不会被命中.此文档没有加载符号"消息.

到目前为止,我发现pdb(项目调试数据库)文件和源代码一样重要,它应该出现在bin文件夹中,但无论出于什么原因文件丢失,只有一些dll放在那里,实际上有整个目录中没有pdb文件.

我的第一个问题是:无论正在开发什么类型的项目,都应该有一个pdb文件.正确?

第二个问题:如何重新创建该文件,或者为了再次调试项目需要执行哪些步骤?

Tho*_*ton 7

你必须有可编译的代码才能获得pdb.听起来像你这样做.

通常情况下,您已将构建设置为"Release"而不是"Debug".

http://msdn.microsoft.com/en-us/library/wx0123s5.aspx

如果要创建Web应用程序,则配置文件也可能具有"零售"设置.如果设置为true,则即使在构建配置中另有说明,您也始终处于"释放"模式.

http://msdn.microsoft.com/en-us/library/ms228298(v=vs.80).aspx

  • 在Web站点的情况下,文件后面的代码是由ASP .Net编译的,而不是由Visual Studio编译的,因此bin文件夹中没有dll和pdb文件,当站点处于"在线"状态时,这些文件由ASP .Net管理.Bin文件夹可以包含其他dll和pdb文件. (2认同)

Tim*_*Tim 5

我做了几件事来尝试解决这个问题:

  • 清除临时 ASP.NET 文件(C:\Windows\Microsoft .NET\Framework{version}\Temporary ASP.NET files{site}(您需要退出 Visual Studio 和任何指向开发站点的 Web 浏览器)
  • 启动任务管理器并右键单击 W3WP.EXE 进程,选择 SET AFFINITY 并取消选中除一个 CPU 之外的所有其他进程

通常,如果我这样做,然后附加到 W3WP 进程进行调试,断点将被填充,我可以单步执行我的代码。