eclipse / epsilon

Epsilon is a family of Java-based scripting languages for automating common model-based software engineering tasks, such as code generation, model-to-model transformation and model validation, that work out of the box with EMF (including Xtext and Sirius), UML (including Cameo/MagicDraw), Simulink, XML and other types of models.
https://eclipse.org/epsilon
Eclipse Public License 2.0
53 stars 11 forks source link

[EGX] Execution does not stop at breakpoints in EGL files #100

Closed agarciadom closed 1 week ago

agarciadom commented 4 weeks ago

For the DAP tests (#99), I tried creating an example EGX script which invokes an EGL script, which then imports an EOL file. Testing with the previous Eclipse-based debugger, I noticed some issues with stopping at breakpoints when debugging the EGX script:

It sounds like the debugger object in the EgxModule is not being reused for the EGL executions, which then causes issues with breakpoints in the imported EOL modules as well.

agarciadom commented 2 weeks ago

3192b482e provides an initial fix for file-based executions, where we are running an EGX script from a filesystem file. It will need more work for classpath-based executions, as the URI-path mapping will need to trigger when loading an EGL file as well.

agarciadom commented 1 week ago

Proper support has required generalising the debug adapter so it can keep track of multiple running Epsilon scripts, which may be invoking each other. This implied significant changes to the design of the adapter.

Breakpoints on EGX files and on EGL/EOL files they invoke should work well from 0223979b5, including breakpoints on EGL scripts being executed from EGX orchestrations that are loaded from the classpath (with the appropriate URI-path mappings).