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?
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.

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

Reply via email to