扩展Eclipse调试功能

5
我需要创建一个Eclipse调试器插件,能够调试在Cortex-M0内核上运行的嵌入式代码。 我的插件依赖于现有的用于调试ARM应用程序的插件:GNU ARM Eclipse JLink插件(http://gnuarmeclipse.livius.net/blog/) 当断点被触发并且用户按下继续和暂停按钮时,我的调试器插件应该能够向Java应用程序发送信息(如源代码行、文件等)。 根据https://www.eclipse.org/articles/Article-Debugger/how-to.html,我必须实现自己的Eclipse Debug模型。 我已经成功创建了一个Launch Delegate,它扩展了GNU ARM JLink插件的LaunchConfigurationDelegate类,这样我就不必重写初始化调试环境的代码。
从GNU ARM Eclipse JLink插件源代码中,我了解到它不会在断点被触发或用户按下继续、单步调试等时扩展Eclipse的默认功能。因此,我没有现有的jlink插件类可以扩展。在我的调试模型中,我创建了实现IDebugTarget、IStackFrame、IThread并扩展DebugElement等其他类的类。我认为实现org.eclipse.debug.core.model.ISuspendResume和org.eclipse.debug.core.model.IStep的类将能够捕获断点命中事件和步进事件。但是,我仍然无法在我的插件代码中捕获任何调试事件。
您有没有关于如何在我的插件中捕获调试事件(暂停、恢复、单步进入、跨步)的提示?您能否告诉我应该扩展哪些类或实现哪些接口以捕获代码步进事件?
1个回答

1

DsfServiceEventHandler 帮助了我。现在我能够捕获 MIBreakpointHitEvent 事件并检索断点的文件名、函数名和源代码行。


请问您能否提供一个使用DsfServiceEventHandler和MIBreakpointHitEvent来捕获断点命中的示例代码?这些事件可以用来读取变量的值吗?如果不能,应该使用哪个类?先感谢您。 - m-adolf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接