【问题标题】:Is it possible to manually enter step-through mode in visual studio without a breakpoint?是否可以在没有断点的情况下在 Visual Studio 中手动进入逐步模式?
【发布时间】:2012-01-19 22:42:19
【问题描述】:

如果这是重复的帖子,我深表歉意,但我无法在任何其他帖子中找到答案。

我知道我可以通过按 F10 或 F11 启动调试器来进入我的应用程序。我也知道我可以在某些 GUI 事件上设置断点。然而——这不是我想要的。

我希望能够在 VS 中的某处按下按钮,并让它进入“单步执行”模式,以便单步执行被触发的下一段用户代码。我想这样做,所以我不必在我的代码中设置断点。能够让应用程序处于某种状态,手动打开单步进入模式,然后执行一些操作来触发我想要单步执行的代码运行,这将为我节省大量时间。

有什么想法吗?

编辑:

这里是一步一步的,因为我没有很好地解释它。有两个使用 Break All 的建议,但这仍然发生在我尝试做的事情之前

我的目标:

  1. 启动应用程序
  2. 无需断点/单步执行即可操作应用程序
  3. 手动开启单步执行
  4. 触发代码(单击按钮、将鼠标悬停在某物上、更改焦点等)
  5. 在我的操作触发的代码处处于逐步执行模式。

如您所见 - Break All 命令的出现不允许我触发第 4 步。它会立即停止程序,但我仍然无法找到执行操作时将触发的代码。

我知道这可能是不可能的;我只是想听听专家的意见,这样我就可以停止寻找它了。

【问题讨论】:

  • 如果我可以将所有三个回复都标记为我会得到的答案。你们三个都提供了非常相似(并且很有帮助)的信息。但由于@Jeremy 提供了有关如何使用 F10 和 F11 解决此问题的更多详细信息,我决定将其提供给他。

标签: .net visual-studio visual-studio-2010


【解决方案1】:

是的,你可以闯入调试器,但它会立即发生。

您可以按“Break All”按钮 (||) 或 Ctrl + Alt + Break

但它可能不会让你到达你期望的地方。您可以在应用程序中的任何位置,也可能不在您的代码中。

设置一两个战略断点要简单得多,尤其是当您知道要输入哪个代码时。

或者,禁用你的断点而不是删除它们,运行你的程序,然后你的第3步变成启用断点。

【讨论】:

  • 在大多数情况下,我同意设置断点更容易,但对于这种情况,情况恰恰相反。 Break All 按钮并不是我想要的。我将在我的问题中逐步说明。
  • @Origin - 我认为你需要禁用断点。查看更新。
  • +1 用于保留许多禁用的断点。条件断点也是另一种工具....但它们确实可以减慢执行速度。
  • 感谢您的更新。我考虑过这一点——但不幸的是,它仍然没有多大帮助。如果有我可以打开/关闭的“组”断点(一组用于 UI 调试,一组用于其他东西等),那么这对我来说将是一个不错的选择。但是,唉,如果我在我的 UI 上设置所有断点,并且想要测试一些特定的代码(而不是我的 UI),我不能让它神奇地关闭 UI 断点并离开我当前的焦点不变。这就是为什么我希望采用更“生动”的方法。
【解决方案2】:

我认为这不可能如您想象的那样。 Visual Studio 中有一个“暂停”按钮,它将立即进入调试器。但是,即使当前指令不是您代码的一部分,它也会立即停止。

在休息之后,尽管几个快速的 F10F11 会让你回到你的代码。

【讨论】:

    【解决方案3】:

    偶尔我会使用“禁用断点”和“启用断点”来做你想做的事情,否则我会做 ChrisF 回答的事情。

    ChrisF 回答的另一个技巧是,当您按 Ctrl + Alt + Break 并按 F10 或 F11 直到代码完成并且您的左看应用程序,IDE 仍处于逐步模式 - 这意味着当您说单击按钮时,事件不会立即触发,IDE 将在按钮单击事件的第一行代码中停止,即使按钮单击事件没有'里面没有断点。

    【讨论】:

    • 感谢您的回复。不幸的是 - “直到代码完成”是问题所在。我正在使用具有多个绑定表单对象的表单,这些表单对象具有单元格格式调用。尝试单步执行这些类型的函数是非常烦人的,因为如果我将鼠标悬停在单元格上,它们可以偶尔调用,因此只有当我准备好了我正在调试其中一些格式化函数,而另一些则不是。我尝试使用属性让调试器忽略此代码,但是每次我想打开/关闭它时都需要重新构建。
    • 我明白了,条件断点可能是解决方案,也许您可​​以声明几个全局变量,允许您在某些格式化函数上中断。
    • 谢谢,我没想过使用一些变量来更好地定义条件断点。不幸的是,我一半的开发时间都花在了 VS Express 上。我确实找到了对预处理器指令的引用,当结合导致代码中断时,它可能在我正在寻找的这个“分组”中更有效。 stackoverflow.com/questions/1030535/…
    猜你喜欢
    • 2018-02-08
    • 1970-01-01
    • 2010-10-26
    • 2014-05-18
    • 2018-09-21
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多