Thu Feb 21 09:19:00 GMT 2002
> -----Original Message-----
> From: O'BRIEN,STEVE (HP-UnitedKingdom,ex1)
> Hi Rob
> I didn't mean to suggest that there is a problem with the
> cygwin pthread
There may be :}. I'm not concerned if there is or is not, but rather with the fault you see - when we examine that we can lay blame :}.
> Sometimes I get:
> GThread-ERROR **: file gthread-posix.c: line 55
> error Device or resource busy during pthread_mutex_init
> ((pthread_mutex_t *)
> result, ((void *)0))
What does gthread-posix.c line 55 look like.
> Sometimes I get a segmentation fault
Can you duplicate this with gdb, or with strace, or with JIT debugging (see how-debuging-works.txt in the cygwin source directory.You'll need a debug cygwin1.dll for tracking this down.
> Sometimes the test completes ok
> Failures appear at different points in the program, so I
> can't even say that
> the "resource busy" always occurs at X and segmentation fault
> always occurs
> at Y.
Thats ok. If we can pin one down with a good backtrace, it may make the fault visible.
> When running in gdb the debug symbol table becomes corrupted, so the
> function names it reports do not match the file:lineno
> reported - so the
> program is clearly trashing memory on its way.
Optimisation can also cause that, I wouldn't assume that the symbol table is necessarily corrupt. What does bt full, and info threads show?
> I *think* that a mutex is not being set properly, or is being
> corrupted when
> the memory managment error kicks in, so that two threads
> attempt to free the
> same memory, or one uses memory that is already freed by another. All
> guesswork though, because I have not been able to trace the
> execution in
Yah, single stepping with threads is iffy at best, they tend not do show the fault. Breakpoints are your friend :}.
More information about the Cygwin-xfree