操作模式

IDE 可以运行三种模式,如下所示:

  • 设计模式

  • 运行模式

  • 中断模式

    你的自定义调试引擎(DE)在这些模式之间的转换方式是一个需要你熟悉转换机制的实现决策。 DE 可以或可能不会直接实现这些模式。 这些模式实际上是根据 DE 中的用户操作或事件切换的调试包模式。 例如,从运行模式转换到中断模式的转换是由 DE 中的停止事件引发的。 从暂停转到运行模式或单步模式,是由用户执行单步或运行等操作引发的。 有关 DE 转换的详细信息,请参阅 执行控制

设计模式

设计模式是 Visual Studio 调试的非运行状态,在此期间可以在应用程序中设置调试功能。

设计模式期间只使用一些调试功能。 开发人员可以选择设置断点或创建监视表达式。 IDE 处于设计模式时,永远不会加载或调用 DE。 仅在运行和暂停模式期间与 DE 交互。

运行模式

当程序在 IDE 中的调试会话中运行时,将发生运行模式。 应用程序将一直运行,直到终止,直到命中断点或引发异常为止。 当应用程序运行到终止时,DE 将转换为设计模式。 当断点被触发或抛出异常时,DE 将切换到中断模式。

中断模式

中断模式在调试程序执行挂起时发生。 中断模式为开发人员提供中断时应用程序的快照,并允许开发人员分析应用程序的状态并更改应用程序运行方式。 开发人员可以查看和编辑代码、检查或修改数据、重启应用程序、结束执行或从同一点继续执行。

当 DE 发送同步停止事件时,将输入中断模式。 同步停止事件(也称为停止事件)通知会话调试管理器(SDM)和 IDE 正在调试的应用程序已停止执行代码。 IDebugBreakpointEvent2IDebugExceptionEvent2 接口是停止事件的示例。

通过调用以下方法之一继续停止事件,该方法将调试器从中断模式转换为运行模式或步骤模式:

步骤模式

当程序执行下一行代码或进入、遍历或退出函数时,将发生步骤模式。 通过调用方法 Step 来执行一个步骤。 此方法需要 DWORDSTEPUNITSTEPKIND 枚举指定为输入参数。

当程序成功执行到下一行代码或进入函数,或者它运行到游标或设置断点时,DE 会自动切换回中断模式。

另请参阅