Comment It's not all GDBs fault (Score 1) 69
Actually, GDB works quite well for multithreaded applications on MacOS X or other BSD MACH systems. It even is usable on Solaris, although Solaris threads are buggy in so many other ways ;^(
One of the big problems with GDB on Linux is LinuxThreads. Linux doesn't really have a notion of what a thread is. All threads in Linux are processes displayed in `ps'. When GDB sends a signal to stop a thread, all threads get a signal and immediately wake up from their semaphores, mutexes, or conditions and continue execution. Obviously, this crashes practically any MT application.
I've brought this to the attention of the LinuxThreads people a few times, but there isn't too much interest in fixing it.
For now I do all my development and debugging on MacOS X. Fortunately, everything usually runs OK when I move it over to Linux.