我需要 Visual Studio 扩展来对调试事件做出反应。我已经注册了一个IDebugEventCallback2
我正在接收事件,但我为每个事件得到的只是一个不透明的IDebugEvent2
和一个 Guid,其中许多不仅没有记录,而且不会出现在网络上(或我的注册表中)。
我目前的具体要求是知道该过程何时继续 - 即。用户点击了“继续”、“运行到光标”等。我应该寻找什么 Guid?
或者我应该订阅其他一些事件系列吗?
(更一般地说,我是否缺少某种方式来了解传递给我的事件IDebugEventCallback2::Event
回调,当其中许多没有出现在 MSDN 或其他任何地方时?谢谢!)
没有简单的方法可以做到这一点。诸如此类的行动Continue and 运行到光标处是由 Visual Studio 实现的抽象,不对应于调试引擎的任何唯一事件。调试引擎事件报告接口IDebugEventCallback2
将使您能够仅在细粒度事件(例如创建断点或到达断点时)收到通知。
虽然 Visual Studio 使您能够执行以下操作Continue and 运行到光标处以编程方式,它不提供在被采取时获得通知的直接方式。
您可以使用EnvDTE.DebuggerEvents.OnXxx https://msdn.microsoft.com/en-us/library/envdte.debuggerevents.aspx当某事即将发生时收到通知的事件。特别是,OnEnterBreakMode
事件使您能够拦截断点命中并可能采取行动。您还可以使用当前的断点检查所到达的断点的所有详细信息环境DTE调试器 https://msdn.microsoft.com/en-us/library/envdte.debugger.aspx在事件处理程序内部。
现在,通过一些努力,您可以使用这些构造来实现与所有 Visual Studio 调试操作相对应的事件,包括Continue and 运行到光标处准确。如果您需要未提供的其他活动EnvDTE.DebuggerEvents
(比如插入断点时),你别无选择,只能使用IDebugEventCallback2.Event
。在这种情况下,如果您有特定的事件,请明确提及,我也许可以告诉您相应的事件IDebugEventCallback2.Event
GUIDs.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)