Hi!
I tested it under linux (fc6 c::b svn 3592, gcc, gdb 6.5-15.fc6rh) and win xp (c::b svn 3737, mingw32-gcc 3.4.4, gdb 6.3) and it works right in both platforms. I used pthread in linux, pthread.2 in winxp.
You can press F4 when gdb is waiting for an action from you. Otherwise, it will not catch it.
The same hapens with breakpoints, you can set them when gdb is waiting for an action from you, otherwise it does not set it (in borland debugger, you can set breakpoints even if the program is running).
The default C::B Debug configuration is good enough for debugging.
In particular, for debugging you must have -g option set (project | build options | compiler settings | compiler flags | produce debugging symbols), remove all optimization options in the same screen, and unset the option 'strip all symbols from binary' ('linker | general | include debug info' equivalent in borland).
Hope this helps.