visual-studio - 在 Visual Studio 扩展中,如何检测调试器何时继续

标签 visual-studio visual-studio-extensions vsix extensibility vs-extensibility

我需要 Visual Studio 扩展来对调试事件使用react。我已经注册了一个 IDebugEventCallback2 并且正在接收事件,但我为每个事件获得的只是一个不透明的 IDebugEvent2 和一个 Guid,其中许多不仅没有记录,而且不会出现在网络上的任何位置(或在我的注册表中)。

我目前的具体要求是知道该过程何时继续 - 即。用户点击了“继续”、“运行到光标”等。我应该寻找什么 Guid?

或者我应该订阅其他一些事件系列吗?

(更一般地说,当其中许多事件没有出现在 MSDN 或还有其他地方吗?谢谢!)

最佳答案

没有简单的方法可以做到这一点。 继续运行到光标等操作是 Visual Studio 实现的抽象,不对应于调试引擎的任何唯一事件。调试引擎事件报告接口(interface) IDebugEventCallback2 将使您能够仅在细粒度事件(例如创建断点或到达断点时)收到通知。

虽然 Visual Studio 允许您以编程方式执行继续运行到光标等操作,但它不提供直接方式来在执行这些操作时收到通知。

您可以使用EnvDTE.DebuggerEvents.OnXxx事件即将发生时收到通知。特别是,OnEnterBreakMode 事件使您能够拦截断点命中并可能执行操作。您还可以使用当前 EnvDTE.Debugger 检查到达断点的所有详细信息。在事件处理程序内。

现在,通过一些努力,您可以使用这些构造来准确地实现与所有 Visual Studio 调试操作(包括继续运行到光标)相对应的事件。如果您需要 EnvDTE.DebuggerEvents 未提供的其他事件(例如插入断点时),则别无选择,只能使用 IDebugEventCallback2.Event。在这种情况下,如果您有特定的事件,请明确提及它们,我也许可以告诉您相应的 IDebugEventCallback2.Event GUID。

关于visual-studio - 在 Visual Studio 扩展中,如何检测调试器何时继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30853341/

相关文章:

visual-studio - 如何在 Visual Studio 扩展 (vsix) 中包含 Nuget 包

c# - 如何将当前 VS 主题应用于现有控件

c++ - 将功能添加到窗口顶部的主菜单

visual-studio - Visual Studio 的字体和颜色扩展?

visual-studio-2012 - 在同一个项目中部署MEF组件和VS包

c# - VSIX(Visual Studio 扩展) "Fonts and Colors"更改事件

visual-studio - 有人找到了适用于 Visual Studio 的 PowerShell 语法突出显示或 IntelliSense 插件吗?

visual-studio - Visual Studio 意外停止调试且没有错误

c++ - 从现有项目构建 exe 包(可移植)

c# - VSIX 扩展安装但项目模板未显示在 visual studio 中