在我的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的通用解决方案?
谢谢, 艾伦
答案 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。如果有一种方法可以只监听从通用平台调试插件发出的事件,其中包括从这个通用调试器扩展的插件触发的事件,这可能会简化您要完成的任务