DebuggerEventsClass.OnContextChanged 事件

此 API 支持 .NET Framework 基础结构,不适合在代码中直接使用。

只要通过用户界面或自动化模型更改当前进程、程序、线程或堆栈,就会被激发。

命名空间:  EnvDTE
程序集:  EnvDTE(在 EnvDTE.dll 中)

语法

声明
Public Overridable Event OnContextChanged As _dispDebuggerEvents_OnContextChangedEventHandler
public virtual event _dispDebuggerEvents_OnContextChangedEventHandler OnContextChanged
public:
virtual  event _dispDebuggerEvents_OnContextChangedEventHandler^ OnContextChanged {
    void add (_dispDebuggerEvents_OnContextChangedEventHandler^ value);
    void remove (_dispDebuggerEvents_OnContextChangedEventHandler^ value);
}
abstract OnContextChanged : IEvent<_dispDebuggerEvents_OnContextChangedEventHandler,
    EventArgs>
override OnContextChanged : IEvent<_dispDebuggerEvents_OnContextChangedEventHandler,
    EventArgs>
JScript 不支持事件。

实现

_dispDebuggerEvents_Event.OnContextChanged

示例

下面的示例演示如何使用 OnContextChanged 事件。

测试此事件:

  1. 打开目标应用程序。

  2. 运行外接程序。

    观察消息框:“事件已附加。”

  3. 设置一个断点,然后在调试模式下运行目标应用程序。

  4. 应用程序在断点停止后,停止调试器。

    观察消息框:“调试器进入上下文更改模式”。

// Place the following code in the Exec method of the add-in:
EnvDTE.DebuggerEvents debugEvents = applicationObject.Events.DebuggerEvents;
debugEvents.OnContextChanged += 
new _dispDebuggerEvents_OnContextChangedEventHandler(DebuggerEvents.ContextHandler);

// Place the following Event handler code in the add-in:
// Needed to activate event handlers in Connect.Exec.
public static void StartEvents(DTE dte)
{
    System.Windows.Forms.MessageBox.Show("Events are attached.");
}

public static void ContextHandler(EnvDTE.Process newProc, 
    EnvDTE.Program newProg, EnvDTE.Thread newThread, EnvDTE.StackFrame newStkFrame)
{
    System.Windows.Forms.MessageBox.Show("Debugger enters context changed mode.");
}

.NET Framework 安全性

请参见

参考

DebuggerEventsClass 类

EnvDTE 命名空间