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

Reply via email to