【问题标题】:Is it possible to stop .NET 2008 Debugger conditionally?是否可以有条件地停止 .NET 2008 调试器?
【发布时间】:2013-06-07 07:16:04
【问题描述】:

我们如何动态地停在代码中的某个地方,比如当条件为真时我需要中断代码?说某个变量有一定的价值?

【问题讨论】:

  • 您只能对本机非托管代码执行此操作。 (假设您的意思是要设置“数据已更改”类型的断点。)
  • @MatthewWatson,我认为这不正确。在 Visual Studio 中调试托管 C# 代码时可以添加条件断点。
  • @AshBurlaczenko 虽然我认为它不适用于 VS2008...但我可能会考虑 VS2005! (编辑:是的,我是......它是在 VS2008 中引入的,所以这当然是可能的)

标签: c# debugging dynamic conditional


【解决方案1】:

我没有 2008 的副本要验证,但是较新的版本(2010 和 2012)您可以设置断点,然后右键单击编辑器中的红色圆圈以显示一些选项以提供条件。

【讨论】:

    【解决方案2】:

    是的,这是可能的。您可以将条件添加到断点。只需按照以下步骤操作

    1. 添加断点
    2. 在断点处单击鼠标右键
    3. 点击条件...
    4. 添加您的条件并单击确定

    你可以看到更多关于它的细节in this MSDN blog

    【讨论】:

      【解决方案3】:

      为了完整起见,您还可以向您的应用添加(条件)代码:

       if (c == d && System.Diagnostics.Debugger.IsAttached)
            System.Diagnostics.Debugger.Break();
      

      【讨论】:

      • 好主意,这种方法比 Visual Studio 解决方案有什么好处吗?
      • 优点:你可以使用任意复杂的逻辑,缺点:更难去除,污染。
      猜你喜欢
      • 1970-01-01
      • 2011-03-05
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 2011-11-01
      相关资源
      最近更新 更多