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
