I clean and refactor all but lowSpaceWatcher. It is in slice 17069. In my image it is not broke stuff. So I hope it is safe change. 2015-11-20 12:18 GMT+01:00 Denis Kudriashov <dionisiydk@gmail.com>:
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