Debuggers are difficult to build and evaluate.
In order to solve this problem, , the Pharo debugger needs to be modular, extensible, stable, production-level and easy to adopt.
Thus, the Pharo debugger design allows to easily extend the debugger via new debugging commands and new debugger extensions, with modular pieces that are interchangeable such as the GUI, the API implementation and the interpreter used to perform steps.
As example of debugging tools, Chest is a debugger extension that allows to share objects between several program executions, in order to, for example, compare objects across different programs.
As another example, JumpToCaret is a debugging command that allows to jump back and forth in the code under debug, while keeping the same exact program state, in order to debug if some piece of code was executed.
In the end, the Pharo debugger, which has real users, satisfies all requirements to be an extensible production-level debugger.
Working Group : Debugging
- Poster