我有一个C#程序,其中调试器在断点方面有非常特殊的行为。
如果在我"开始调试"时已设置断点,则调试器将在断点处停止。
如果我在程序运行时添加断点,则调试器不会在任何断点处停止。但是,调试器将继续停在我启动程序时已设置的断点处。为了使新断点正常工作,我必须停止程序,然后再次启动它或分离然后重新连接调试器。
此外,如果我在程序运行时禁用断点,然后重新启用断点,则调试器不再在该断点上停止。为了让断点再次正常工作,我必须停止程序,然后重新启动它,或者分离然后重新连接调试器。
每次我想添加新的断点时,我宁愿不必分离和重新连接调试器。有谁知道为什么会发生这种情况以及如何使调试器在运行时添加的断点处正确停止?任何其他程序都不会发生这种情况。只有这1个程序有这个问题。对于我曾经调试过的所有其他程序,我能够在运行时设置断点,调试器停止运行没有问题。
我正在使用Visual Studio 2010 Service Pack 1和.NET framework 4.但是,当我使用旧版本的.NET框架时,问题也存在。
答案 0 :(得分:1)
清理解决方案并重新重建。它将解决问题
答案 1 :(得分:0)
您的源代码和程序集可能不同步 - 重新构建应用程序并重试。 P.S:我很惊讶VS2010听到了很多这个问题:D
编辑:如果你使用某种dll,也许你把调试符号(" pdb"文件)放在与dll相同的文件夹中。
答案 2 :(得分:0)
我终于找到了问题所在。我们使用从.DLL中删除信息的工具。使用这些'剥离' .DLL导致调试问题。
使用未提取的.DLL会使所有这些断点问题消失!