【发布时间】:2015-10-29 12:53:09
【问题描述】:
背景: 最近我一直在使用一个名为 eMoflon 的插件,它与 eclipse EMF 一起使用,并像 EMF 一样从模型生成 Java 代码,但具有一些附加功能。软件的静态结构是在 UML 类图的帮助下建模的,其中动态行为(即方法)是用所谓的 Story Drvien 建模(SDM)建模的,它有点类似于活动图,但每个节点都包含块代码(实际上它们包含图形转换以模仿特定行为,但这些转换会转化为生成的代码块)。
我想要开发的是一个 Debugger,它代表了建模级别的调试,即与标准 eclipse jdt 调试器不同,其中调试器在一个断点处停止,然后当我们按下 Stepover 时,它会逐行进行。在我的情况下,我想在我的 SDM 的不同 Nodes 上放置断点,并假设当我的调试器停止在特定 node 时,然后当我按下 Stepover >,它应该跳转到下一个Node,如果我按下StepIn,那么它应该进入那个特定的Node。
问题?
我解决这个问题的方法是让 eMoflon 在生成的 Java 代码中注入特定的 sn-ps 代码(比如说 //Stop 语句)。当代码中遇到 //Stop 语句时,我的调试器插件与 JDT 一起工作应该能够暂停 java 的执行。现在我已经在Platform Debug Model 的指导方针上实现了一个调试器,但我似乎无法为我的插件找到与 JDT 通信的方法。这甚至可能是我想要做的吗?
有人告诉我,java 代码暂停只能通过 JDT/Debug 完成,如果是这种情况,我可以使用标准 JDT/Debug 复制上述行为或使用我的插件扩展 JDT/Debug 功能吗?
【问题讨论】:
标签: eclipse debugging eclipse-plugin emf eclipse-jdt