On Wed, Nov 25, 2015 at 6:29 PM, Denis Kudriashov <[email protected]> wrote:
> > 2015-11-25 17:16 GMT+01:00 Andrei Chis <[email protected]>: > >> Hi, >> >> In updating the debuggers from moose to the new API just one small issue >> came up: >> >> - Process>>newDebugSessionNamed:startedAt: hardcodes DebugSession. >> However we are using different debugging sessions. >> >> The class side method #sessionClass of a debugger returns the debugging >> session's class. That could be used instead of DebugSession. >> > > To provide fast fix we can rewrite process method with: > > Process>>newDebugSessionNamed: aString startedAt: aContext > > ^Smalltalk tools debugger sessionClass named: aString on: self startedAt: > aContext > > Could you publish issue and slice? > We can postpone this for the moment. I'll look a bit more at how this fits with the debuggers from moose as I'd like a more general solution where the debugger can be dynamically selected. > > In my fixes I try to put single point for debugging. I removed some old > methods and clean places where they was used. > Session is actual debugger model. And I was think that it is better to > always create debugger on it. > Now I think that maybe debug session should be internal object for > debugger. But it's seems strange. > When I added the session I viewed it as a model for the debugger. SpecDebugger and GTStackDebugger are just two different user interfaces for the same model (DebugSession). > > My main target is remote debugger. So I try to investigate all related > stuff. > Cool target :) > > What subclasses of DebugSession implement specifically? For what they > needed? > For example, GTBytecodeDebugger uses GTBytecodeDebuggerSession which makes sure step instructions only go over one bytecode (so no usage of #stepToSendOrReturn which are needed in the normal debugger). Apart from this other sessions store more information. For example GTSUnitDebugSession stores the context with the failing assertion. > If we move to GTDebugger completely can we have only debug session class? > GTGenericStackDebugger, the equivalent of SpecDebugger, uses also DebugSession (it just adds a few extension methods). All other debuggers have sessions that just inherit from DebugSession and they can be loaded separately. Cheers, Andrei
