Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [Dltk-dev] DLTK for Scheme

Hi William,

In DLTK we have implementation of almost all Debug related things, so making integration with already existing DBGp debugger is not very difficult.

You could look at any of our implementations, we have debuggers for Tcl and Ruby languages.

Steps to add debuggers support to your language:
1) Create Launch Configuration to run/debug script.
You need to extend org.eclipse.debug.core.launchConfigurationTypes, org.eclipse.debug.ui.launchConfigurationTypeImages extension points. Please refer to plugin.xml files from org.eclipse.dltk.tcl.launching, org.eclipse.dltk.tcl.debug.ui plugins. If you already have launch configuration please check that "debug" value are present in modes parameter.** ("run/debug" in case of Tcl).

2) Extend 2 Eclipse debug extension points (org.eclipse.debug.ui.debugModelContextBindings, org.eclipse.debug.ui.debugModelPresentations).
This extensions will declare Eclipse debug model bindings.
Please refer to org.eclipse.dltk.tcl.debug.ui/plugin.xml file for details.

3) Declare org.eclipse.dltk.debug.scriptDebugModel extension to map debug model id with nature.
Please refer to org.eclipse.dltk.tcl.debug/plugin.xml file.

4) Create DLTK Debugging engine (org.eclipse.dltk.launching.debuggingEngine extension point). Engine know how to start debugger from eclipse, using launch configuration, etc. Please refer to our ActiveState integration plugin org.eclipse.dltk.tcl.activestatedebugger or our Ruby debugger plugin org.eclipse.dltk.ruby.basicdebugger.

Our DBGp implementation:
1) Yes, we support threads. We have this implemented in our ruby debuggers.
2) No, we don't have support Async DBGP yet.

PS:
One thing to help testing of your debugger, is to use our DBGp logging view.
It will be automatically activated if option "Enable DBGP logging" is enabled from "Debug configurations" dialog for launch configuration.

* Why does the Python debug launch not capture stdin/out the
way that the non-debug one does? Is there any reason why
it relies on DBGP for input/output redirection?
I suppose this is just a bug in our python implementation, we will check this.


Best regards,
Andrei Sobolev.


Back to the top