RE: Two threads hitting the same break

Paul Koning
2010-03-18T20:02:17Z

Thanks.

I'm not sure about using that model -- it doesn't behave in an intuitive
fashion.

If I have two threads that hit the same break at the same time, I would
expect to see both breaks. The Linux code tosses one of them. Given
how it picks threads to report, the next time the two threads hit a
break, the one that wasn't reported the first time will be reported this
time. But the net result is that I only see a portion of the breaks --
half of them if there are two threads.

Consider a test case of the form
- print something
- wait a bit
- repeat

If I set a break in that loop and keep hitting continue, I see one break
per pass through the loop even if there are two threads executing this
loop. I'm not sure why the Linux folks chose to make it work that way;
I'm not sure I want to copy that behavior.

Then again, doing something more obvious might be hard...

paul

> -----Original Message-----
> From: Pedro Alves [mailto:pedro@codesourcery.com]
> Sent: Thursday, March 18, 2010 3:36 PM
> To: gdb@sourceware.org
> Cc: Paul Koning
> Subject: Re: Two threads hitting the same break
>
> On Thursday 18 March 2010 19:26:52, Paul Koning wrote:
> > I think I've seen discussion of this sort of issue, possibly in the
> > code, but I'm not having much luck finding it. Any suggestions for
> the
> > right way to handle this?
>
> See linux-nat.c:cancel_breakpoint.
>
> --
> Pedro Alves