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