Hi��
I try to investigate how debugger opens and who initiates it.
I want to cleanup this logic and simplify current debugger API.
I found that basic error debugging starts with UIManager then UIManager calls SpecDebugger, then SpecDebugger calls UIManager and again... At the end of this chain debugger is opened by #openFullSuspendLabel: or #openNotifierContents:label:
There are two places where opening debugger initiated differently:
- Low space watcher calls SpecDebugger class>>openInterrupt:onProcess:
- Warning default action calls SpecDebugger class>>openContext:label:contents: (And it not uses UIManager. I guess non interactive mode not working here).
In latest Pharo image it is only users of this methods. Is anybody know anyone else?
I almost cleaned basic errors debugging. And I want use it for this two cases too. But they implements very specific logic. They both contains primitive simulation guard 19 and some kind of recursion tracking.
I understand that low space watcher requires something clever. But why Warning not opens debugger with way Error does it?
Any suggestions?
Best regards,
Denis