Eclipse调试器事件

Eclipse调试器事件,eclipse,debugging,events,eclipse-plugin,Eclipse,Debugging,Events,Eclipse Plugin,在我的Eclipse插件中,我希望在调试器事件时得到通知(例如,当点击单步或断点时)。通过使用以下代码订阅调试事件,我成功地在JDT环境中实现了这一点: DebugPlugin.getDefault().addDebugEventListener(this); 这将为该事件处理程序提供: public void handleDebugEvents(DebugEvent[] events) { } 在JDT中,这是在断点或挂起事件上触发的,我希望在CDT中的行为也一样。然而,事实并非如此。在调

在我的Eclipse插件中,我希望在调试器事件时得到通知(例如,当点击单步或断点时)。通过使用以下代码订阅调试事件,我成功地在JDT环境中实现了这一点:

DebugPlugin.getDefault().addDebugEventListener(this);
这将为该事件处理程序提供:

public void handleDebugEvents(DebugEvent[] events)
{
}
在JDT中,这是在断点或挂起事件上触发的,我希望在CDT中的行为也一样。然而,事实并非如此。在调试会话开始时,我只收到两个创建事件:

DebugEvent[org.eclipse.cdt.dsf.gdb.launching]。GDBProcess@ae0aae,创建,未指定] DebugEvent[org.eclipse.debug.core.model。RuntimeProcess@920d5d,创建,未指定]

有没有一个通用的解决方案不需要对JDT或CDT有特定的依赖关系

谢谢,
艾伦

我确实找到了解决办法,并在这里回答了我的另一个问题:


Alan

我认为,如果不仔细聆听和挖掘Eclipse环境中的每一个操作,就无法实现您想要的(通用的、独立于实现的解决方案),因为我知道Eclipse通用调试插件只是构建特定于实现的调试器的框架,就像Java自己的调试器一样

您对
DebugPlugin
的静态调用是对运行CDT或JDT的基本“框架”的调用。例如,如果我想向Java调试器注册一个断点侦听器,我将调用
jdiebugmodel.addJavaBreakpointListener()

另外,如果有一种方法可以只侦听从通用平台调试插件触发的/在通用平台调试插件下触发的事件,其中包括从该通用调试器扩展的插件触发的事件,这可能会简化您试图完成的任务