我需要创建一个 Eclipse 调试器插件,它能够调试在 Cortex-M0 内核上运行的嵌入式代码。我的插件依赖于用于调试 arm 应用程序的现有插件:GNU ARM Eclipse JLink 插件 ( http://gnuarmeclipse.livius.net/blog/ ) 我的调试器插件应该能够将信息(如 src 代码行、文件等)发送到当断点被击中以及用户按下恢复和暂停按钮时的 Java 应用程序。
根据 https://www.eclipse.org/articles/Article-Debugger/how-to.html,我必须实现我自己的 Eclipse 调试模型
我设法创建了一个 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 中的类,我将能够捕获断点命中事件和步进事件。但是,我仍然无法在我的插件代码中捕获任何调试事件。
您对如何从 Eclipse UI 捕获我的插件中的调试事件(挂起、恢复、步入、跳过等)有任何提示吗?你能告诉我我应该扩展哪些类或者我应该实现哪些接口来捕获代码步进事件吗?