Eclipse调试器事件

时间:2011-06-08 17:12:20

标签: eclipse debugging events eclipse-plugin

在我的Eclipse插件中,我希望收到有关调试器事件的通知(例如,当执行步进或断点时)。我已经设法通过使用以下代码订阅调试事件来在JDT环境中工作:

DebugPlugin.getDefault().addDebugEventListener(this);

这给了这个事件处理程序:

public void handleDebugEvents(DebugEvent[] events)
{
}

在JDT中,这是针对Breakpoint或Suspend事件触发的,我希望CDT中的行为是相同的。但事实并非如此。我只在调试会话开始时得到两个Create事件:

  

DebugEvent [org.eclipse.cdt.dsf.gdb.launching.GDBProcess@ae0aae,CREATE,UNSPECIFIED]   DebugEvent [org.eclipse.debug.core.model.RuntimeProcess@920d5d,CREATE,UNSPECIFIED]

是否存在不需要特定依赖JDT或CDT的通用解决方案?

谢谢, 艾伦

2 个答案:

答案 0 :(得分:1)

我确实找到了解决方案并在此处回答了我的其他问题:Eclipse plugin - handling events when stepping or breaking

艾伦

答案 1 :(得分:0)

我认为无法实现(通用的,独立于实现的解决方案)而无需在Eclipse环境中监听和挖掘每一个操作,因为我理解Eclipse通用调试插件只是框架上的用于构建特定于实现的调试器,如Java自己的调试器。

您对DebugPlugin进行的静态调用是对运行CDT或JDT的基本“框架”的调用。例如,如果我想向Java调试器注册一个断点监听器,我会调用JDIDebugModel.addJavaBreakpointListener(<Your Java breakpoint listener class>);

P.S。如果有一种方法可以只监听从通用平台调试插件发出的事件,其中包括从这个通用调试器扩展的插件触发的事件,这可能会简化您要完成的任务