PyDebug was started late in 2009. But it’s development was put on the shelf in April of 2010, when it’s author was asked to try to find some way for users of the XO in the developing world to participate in the social networking that was so much an enthusiasm in the US and Europe.
Now in October of 2010, XoPhoto has been released, and it is time to resume development of the debugger.
What’s done? The basics are in place:
- Terminal, editor, project page, and browser/help page seem to function when executed in builds ranging from 650 on up to 852.
- Ipython is a terminal based command line debugger. The close cooperation between it and a cooperating editor is implemented ie. the editor positions itself to the line where an exception is discovered by the debug module.
- The graphical interface to the sugar defined “activity.info” setup file is functioning on the project page, as is the quick-and-dirty svg icon generation facility.
What is left to do?
- Debugging a GTK program with a command line debugger is a little tricky. During the startup phase, as the GTK memory structures are being set up, a programming error usually creates an exception, and useful diagnostic info is written to the terminal screen. During this start up process, the debugger can be set to break at line numbers, and variables can be examined, etc. But once the graphical interface is set up, control transfers to the gtk main loop, and the program that is being debugged is executed in response to mouse clicks and keystrokes. If the user sets a breakpoint in a routine that is a response to a mouse click, the breakpoint routine will stop execution of that subroutine, and pass the control back to the gtk-mainloop. IPython provides a means for including the terminal debug session in the GTK mainloop, but this functionality has not been developed, tested, and or documented.
- There needs to be a tutorial which leads the learner through the development of a simple activity.
- I’d like to develop simple template activities that demonstrate mesh networking, collaboration interface and gradually increase the coverage of templates and examples.
- There needs to be a mechanism for substituting help data for all the different languages into which PyDebug might be translated.