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

Reply via email to