Last updated at 2:23 pm UTC on 16 January 2006
This is just copied verbatim from my mail to the Squeak mailing list:
since I think that the Squeak Debugger misses some very important features, I started to implement them. The attached changeset is my first shot at the issue; it implement the following features:
- Debugger inspector panes are updated on every step. (that was an easy one)
- PC highlighting is improved for loops, blocks, variable assignments. No more highlighting of the instruction after the loop block.
- Fast step method executes the message using perform:, not by simulation. Mucho mucho quicker!
- Exceptions caught within stepped methods are properly displayed in the debugger. No more 'Cant simulate halt. Proceed to bypass it.'
- nonlocal returns are caught.
There are almost certainly bugs in my code; I did not have much time for testing and so rely on you to find them :-) I have thought about writing unit test code, but for the most tricky aspects I have difficulties setting up test cases in my mind, let alone in code...
Some more things I would like to do are:
- a 'reset' menu function which resets the selected context, without proceeding immediately.
- a 'skip to caret' menu function which steps until the pc is just before the selected point in the method.
- true breakpoints which can be added and removed without requiring recompilation, and without losing existing context's state.
However, these will require some more time. If you have any additional suggestions, please let us discuss them here on the list.
Note that the methods in the changeset are carefully arranged not to break on file-in. If you just file out the changeset, the resulting file will almost certainly not work. That's what one deserves for messing with the Parser...
For those interested in how this code works, here is Better Debugger.
Probably the change set above is now in the standard release.
Somebody might check this (i.e. ask on the mailing list)
and put a note here or better rewrite the instructions above.
An entirely unrelated change set was done in the last few days.
- It adds a 'Create' button to debuggers that pop up on "method not understand error messages".
- This button writes a stub method containing a halt, then proceeds the debugger (which will stop at the halt).
- You can then edit the source of the method.
- It also adds an 'implement in...' submenu to the debugger's call stack's contextual menu (only for #doesNotUnderstand: messages).
The changeSet is on the SqueakMap now.
[17-February 2003] Thierry Reignier Debugger-FKeys-TREG-1.cs
The changeSet is on the SqueakMap .
Added F key handling to support faster debugging. These keys are handled whereever your cursor is the debugger windows.
(Valid for windows-like keyboard having F1 to F12 keys)
F5 send (or sept into)
F6 step (or step over)
F7 step through
F8 create - if installed
F8 (create) if installed