On Fri, Jun 29, 2018 at 5:58 PM Ben Coman <b...@openinworld.com> wrote:

>
>
> On 29 June 2018 at 22:48, Guillermo Polito <guillermopol...@gmail.com>
> wrote:
>
>> Hi all,
>>
>> during today's sprint we have been working with lots of people on the
>> infinite debugger problem (https://pharo.fogbugz.com/f/cases/22085/). We
>> have checked the emails sent in the latest month. Then, together with
>> Quentin, Pablo, Pavel, Yoan we have been discussing and testing hypothesis
>> all day. We have been also comparing the debuggers code between pharo 3/4
>> (where the bug was is present) and pharo 7, but this was not necessarily
>> straight forward as the code is not the same and there is no easy diff...
>>
>> AAAAND, we have found that the problem may come from a wrong pragma
>> marker. Just removing that pragma gives us back the same behaviour as in
>> Pharo 3/4. :D
>>
>> https://github.com/pharo-project/pharo/pull/1621
>>
>> I know that the exception handling/debugging has been modified several
>> times in the latest years (some refactorings, hiding contexts...), we
>> unfortunately don't have tests for it, so I'd like some more pair of eyes
>> on it. Ben, Martin could you take a look?
>>
>> Thanks all for the fish,
>> Guille
>>
>
> I'm just about to fly out for a family vacation, so I'm not sure when I'll
> get a chance to have a good look.
> But I read the issue on Fogbugz and it echos some things I've been
> thinking recently,
> though I hadn't come close to that particular fix.
>
> I think my following comments are probably unrelated, but just sharing
> some thoughts that crossed my mind when I was looking into my own similar
> trouble.
> This is an area I'm not clear on and would like to understand better...
>
> When the UI thread (UI1) needs to be debugged (e.g. code run from
> Playground, or a test)
> and is suspended and a new UI thread (UI2) is started, which thread does
> the debugger run in?
>

Yes


> I guess it must run in UI2 but sometimes I got the vague feeling some
> parts of it were caught in UI1 and affected by UI1 being suspended.
>
But perhaps I got the wrong impression - its a complex interplay to follow.
>

Nope.. Actually, UI2 will simulate code of UI1 as it was running in UI1.
There is some machinery (look at #effectiveProcess) so that

Processor activeProcess

yields UI1 when stepping over UI2 code.


>
> The other vague notion I had was when thread UI1 is resumed, it seems to
> replace thread UI2 where the World keeps its,
> and wondered if <StepOver> on the suspended-debug-UI1 thread somehow made
> it "resume" and so replace UI2 as the main thread,
> but then UI1 gets suspended again and the display freezes.
>
> Thanks for everyones efforts on this.
> cheers -ben
>


-- 



Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - *http://www.cnrs.fr
<http://www.cnrs.fr>*


*Web:* *http://guillep.github.io* <http://guillep.github.io>

*Phone: *+33 06 52 70 66 13

Reply via email to