【发布时间】:2014-05-16 18:54:14
【问题描述】:
我有一个 C# 程序,其中调试器在断点方面具有非常特殊的行为。
如果在我“开始调试”时已设置断点,则调试器将在断点处停止。
如果我在程序运行时添加断点,调试器将不会在任何这些断点处停止。但是,调试器将继续在我启动程序时设置的断点处停止。为了让新的断点正常工作,我必须停止程序然后重新启动它,或者分离然后重新连接调试器。
此外,如果我在程序运行时禁用断点,然后重新启用断点,则调试器将不再在该断点处停止。为了让断点再次正常工作,我必须停止程序然后重新启动它或分离然后重新附加调试器。
我不希望每次要添加新断点时都必须分离并重新附加调试器。有谁知道为什么会发生这种情况以及如何使调试器正确停止在运行时添加的断点处?任何其他程序都不会发生这种情况。只有这 1 个程序有这个问题。对于我调试过的所有其他程序,我可以在运行时设置断点,并且调试器会毫无问题地停止。
我正在使用 Visual Studio 2010 Service Pack 1 和 .NET Framework 4。不过,当我使用旧版本的 .NET Framework 时,问题也存在。
【问题讨论】:
-
您是使用项目引用作为程序集引用,还是使用驱动器上某个路径中的程序集?
-
我引用了同一解决方案中的其他项目,也引用了驱动器上另一个路径中的程序集。
-
其他路径上的程序集是否也已更改/重建/重新部署。或者您的某个项目是否意外地通过路径而不是项目引用引用了程序集?那些 for 通常是唯一无法正确调试的奇怪情况。
标签: c# visual-studio-2010 debugging breakpoints