我在21 C#项目(ANY CPU)解决方案中的单个C#项目存在问题。Visual Studio 2010 SP1 - C#PDB文件损坏 - 显示错误的行号
断点没有命中 - 当我强制调试器附加(Debugger.Launch())时,我可以看到调用堆栈显示正确的功能,但是行号非常错误。
在一个具体的例子中,我在1020行的第346行有一个断点 - 但是调试器导航到第10745行,这导致调试器显示完全不同的文件的结果。从日志文件中我可以看到正在执行的方法正确。
经过很多头痛之后,我选择在安装了VS 2010 SP1的2台不同的机器上尝试 - 并且这些机器显示出完全相同的行为。
我已经尝试完全清理解决方案,手动删除所有PDB文件,重新启动VS,重新启动机器,清空VS Symbol缓存(工具>选项>调试>符号),删除所有“符号文件(.pdb)位置“并删除解决方案的”.SDF“数据库。
我在调试模式下编译项目,并验证项目上未启用“优化代码”。
解决方案中不同项目的断点确实起作用 - 所以看起来只有这一个项目出于某种原因生成了损坏的PDB文件。但是,我不明白为什么这个单一的项目应该与其他项目不同。唯一真正的区别是我在这个特定的项目中有2个Web引用 - 并且足够有趣的是,在这些存根类中,PDB文件总是指示调试器最终结束。
特定的解决方案正在一个完全修补的Windows 2003 x86机器上编译和调试。
如果有人能给我一个提示如何解决这个问题,我将不胜感激。
只是一个想法,重命名Web引用,然后再试一次。 –
试过这个 - 没有运气 - 同样的问题 – user849496