Improve GtkDebugger

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Improve GtkDebugger

Gwenaël Casaccio
Hi,

I've updated the step commands if the selected context is
not the suspended one the code is executed to the selected
context and the step command is executed.

Cheers,
Gwen


_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk

0001-Stepping-while-the-selected-context-is-not-the-suspe.patch (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Improve GtkDebugger

Holger Freyther
On Mon, Oct 21, 2013 at 11:51:44AM +0200, Gwenaël Casaccio wrote:
> +    stepToSelectedContext [
> + <category: 'execute events'>
> +
> +        | ctxt |
> +        ctxt := debugger suspendedContext.
> +        [ ctxt parentContext == contextWidget selectedContext ] whileFalse: [ ctxt := ctxt parentContext ].
> + debugger finish: ctxt


        breakStuff [
                self halt.
                [] repeat.
        ]


I assume that debugger finish: ctxt. Will never finish? Which would
bring us to the point of how can we interrupt things? (yes, we have
the same thing with DoIts..) (xlat adds an interrupt check I don't
think the interpreter has one though)



_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Improve GtkDebugger

Gwenaël Casaccio
On 22/10/2013 23:57, Holger Hans Peter Freyther wrote:

> On Mon, Oct 21, 2013 at 11:51:44AM +0200, Gwenaël Casaccio wrote:
>> +    stepToSelectedContext [
>> + <category: 'execute events'>
>> +
>> +        | ctxt |
>> +        ctxt := debugger suspendedContext.
>> +        [ ctxt parentContext == contextWidget selectedContext ] whileFalse: [ ctxt := ctxt parentContext ].
>> + debugger finish: ctxt
>
> breakStuff [
> self halt.
> [] repeat.
> ]
>
>
> I assume that debugger finish: ctxt. Will never finish? Which would
> bring us to the point of how can we interrupt things? (yes, we have
> the same thing with DoIts..) (xlat adds an interrupt check I don't
> think the interpreter has one though)
>
>

Yes but it's fixed with the TaskQueue patch

Gwen


_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Improve GtkDebugger

Gwenaël Casaccio
On 23/10/2013 09:22, Gwenaël Casaccio wrote:

> On 22/10/2013 23:57, Holger Hans Peter Freyther wrote:
>> On Mon, Oct 21, 2013 at 11:51:44AM +0200, Gwenaël Casaccio wrote:
>>> +    stepToSelectedContext [
>>> +    <category: 'execute events'>
>>> +
>>> +        | ctxt |
>>> +        ctxt := debugger suspendedContext.
>>> +        [ ctxt parentContext == contextWidget selectedContext ]
>>> whileFalse: [ ctxt := ctxt parentContext ].
>>> +    debugger finish: ctxt
>>
>>     breakStuff [
>>         self halt.
>>         [] repeat.
>>     ]
>>
>>
>> I assume that debugger finish: ctxt. Will never finish? Which would
>> bring us to the point of how can we interrupt things? (yes, we have
>> the same thing with DoIts..) (xlat adds an interrupt check I don't
>> think the interpreter has one though)
>>
>>
>
> Yes but it's fixed with the TaskQueue patch
>
> Gwen
>
The patch is based on the master branch.

Gwen

_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk

0001-Stepping-while-the-selected-context-is-not-the-suspe.patch (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Improve GtkDebugger

Holger Freyther
On Wed, Nov 06, 2013 at 11:43:56AM +0100, Gwenaël Casaccio wrote:

> The patch is based on the master branch.

Thanks. I have applied it but there is still some failure in the
handling:


'1234' do: [:each | each ]   ALT+D
<F8>.... and you will reach BlockClosure>>#ensure:.. <F8> and now
it is broken. Pressing continue will bring the below warning. The
task queue is then stalled. E.g. no other debugging is possible.
Do you have time to fix that?

 error: Invalid value Process(nil at userSchedulingPriority, terminated): process has/was already terminated
SystemExceptions.ProcessTerminated(Exception)>>signal (ExcHandling.st:254)
SystemExceptions.ProcessTerminated class(SystemExceptions.InvalidValue class)>>signalOn: (SysExcept.st:416)
Process>>resume (Process.st:489)
[] in Debugger>>continue (DebugTools.star#VFS.ZipFile/DebugTools.st:276)
[] in Process>>onBlock:at:suspend: (Process.st:412)
BlockClosure>>on:do: (BlkClosure.st:196)
[] in Process>>onBlock:at:suspend: (Process.st:413)
BlockClosure>>ensure: (BlkClosure.st:271)
[] in Process>>onBlock:at:suspend: (Process.st:391)
[] in BlockClosure>>asContext: (BlkClosure.st:182)

_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Improve GtkDebugger

Gwenaël Casaccio
On 09/11/2013 08:59, Holger Hans Peter Freyther wrote:

> On Wed, Nov 06, 2013 at 11:43:56AM +0100, Gwenaël Casaccio wrote:
>
>> The patch is based on the master branch.
> Thanks. I have applied it but there is still some failure in the
> handling:
>
>
> '1234' do: [:each | each ]   ALT+D
> <F8>.... and you will reach BlockClosure>>#ensure:.. <F8> and now
> it is broken. Pressing continue will bring the below warning. The
> task queue is then stalled. E.g. no other debugging is possible.
> Do you have time to fix that?
>
>   error: Invalid value Process(nil at userSchedulingPriority, terminated): process has/was already terminated
> SystemExceptions.ProcessTerminated(Exception)>>signal (ExcHandling.st:254)
> SystemExceptions.ProcessTerminated class(SystemExceptions.InvalidValue class)>>signalOn: (SysExcept.st:416)
> Process>>resume (Process.st:489)
> [] in Debugger>>continue (DebugTools.star#VFS.ZipFile/DebugTools.st:276)
> [] in Process>>onBlock:at:suspend: (Process.st:412)
> BlockClosure>>on:do: (BlkClosure.st:196)
> [] in Process>>onBlock:at:suspend: (Process.st:413)
> BlockClosure>>ensure: (BlkClosure.st:271)
> [] in Process>>onBlock:at:suspend: (Process.st:391)
> [] in BlockClosure>>asContext: (BlkClosure.st:182)

I think I understand the issue the vm calls self primTerminate but the
debugger is waiting for the semaphore (that will never be signaled) the
primitive should signal the debugger semaphore if there is one. Paolo
can you confirm ?

Gwen


_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Improve GtkDebugger

Gwenaël Casaccio
In reply to this post by Gwenaël Casaccio
On 06/11/2013 11:43, Gwenaël Casaccio wrote:

> On 23/10/2013 09:22, Gwenaël Casaccio wrote:
>> On 22/10/2013 23:57, Holger Hans Peter Freyther wrote:
>>> On Mon, Oct 21, 2013 at 11:51:44AM +0200, Gwenaël Casaccio wrote:
>>>> +    stepToSelectedContext [
>>>> +    <category: 'execute events'>
>>>> +
>>>> +        | ctxt |
>>>> +        ctxt := debugger suspendedContext.
>>>> +        [ ctxt parentContext == contextWidget selectedContext ]
>>>> whileFalse: [ ctxt := ctxt parentContext ].
>>>> +    debugger finish: ctxt
>>>
>>>     breakStuff [
>>>         self halt.
>>>         [] repeat.
>>>     ]
>>>
>>>
>>> I assume that debugger finish: ctxt. Will never finish? Which would
>>> bring us to the point of how can we interrupt things? (yes, we have
>>> the same thing with DoIts..) (xlat adds an interrupt check I don't
>>> think the interpreter has one though)
>>>
>>>
>>
>> Yes but it's fixed with the TaskQueue patch
>>
>> Gwen
>>
>
> The patch is based on the master branch.
>
> Gwen

Could you apply it ?

Gwen


_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk