This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Porting gdb to Cyclops64


Dear list,

In my previous message I described a problem I encountered while
stepping a multi-threaded program. Here is a general description of
what's happening.

All threads execute in parallel (on their own core) on the Cyclops64
chip. I implemented a queue on the gdb server to serialize events. This
makes Cyclops64 look like a cooperatively scheduled architecture to gdb
in stop mode.

While single stepping a single thread (let's call it thread 5) gdb
decided to set a breakpoint at some address and continue all threads.
All threads hit this internal breakpoint including thread 5. The
breakpoint events for threads 1-4 are reported and ignored by gdb (gdb
knows it doesn't care about these threads). Then thread 5 is reported
and gdb removes the breakpoint. However the event for threads 6-n are
still in the queue. The next time the user continues these events are
reported. Since gdb removed the internal breakpoint it assumes these
events must be caused by something else and doesn't filter them out.

Is there anything I can do about this? Is there a facility to set a
breakpoint for a single thread and filter them on the server? Or is this
just a consequence of gdb not knowing how to deal with an SPMD
architecture yet?

Thank You,
Brian



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]