Alright, I'm aware of the "check for invalid memory region and throw exception" issue present when debugging pthread applications under gdb and that the actual segfault is innocuous. However, the following solutions:
1. "handle SIGSEGV nostop" "handle SIGTRAP nostop" 2. (hit continue on every SIGSEGV raised). Are unacceptable to me. I have functions which initialize mutexes for 1000s of objects at load time. e.g. parse, alloc struct, init mutex within struct. For one, it becomes fruitless to try and debug a real segfault issue when using gdb and pthreads under cygwin. The only option when working with mass mutexes is disable stopping on SIGSEGV within gdb - rendering useless the debugging of an actual real segfault situation. This is the best I could come up with to get around it, and frankly it's a ridiculous hack, that's entirely non-portable, possibly even with future versions of cygwin libraries - but it's necessary to keep my sanity when debugging pthreads based apps under cygwin: #ifdef __CYGWIN__ # define PT_m_init(x, y) \ { \ *x = malloc(sizeof(struct __pthread_mutex_t)); \ (**x).__dummy = 56; \ } #else # define PT_m_init(x, y) \ pthread_mutex_init((x), (y)) #endif Someone throw me a bone here, please. -cl -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/