Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com X-Apparently-From: Message-ID: <3AD095E8.E1D1B59@yahoo.com> Date: Sun, 08 Apr 2001 12:46:32 -0400 From: Earnie Boyd Reply-To: Earnie Boyd X-Mailer: Mozilla 4.76 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: Robert Collins CC: cygwin AT cygwin DOT com, Joost Kraaijeveld Subject: Re: G++ guru's please comment - Re: FW: pthread_create problem in Cygwin 1.1.8-2] References: <3AD06DB0 DOT 8756E06 AT yahoo DOT com> <03f001c0c040$84aaa630$0200a8c0 AT lifelesswks> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Robert Collins wrote: > > > -------- Original Message -------- > > Subject: FW: pthread_create problem in Cygwin 1.1.8-2 > > Date: Sun, 8 Apr 2001 15:40:43 +0200 > > From: Joost Kraaijeveld > > To: "'earnie_boyd AT yahoo DOT com'" > > > > Hi Earnie, > > > > > > I am using: > > > > Reading specs from /bin/../lib/gcc-lib/i686-pc-cygwin/2.95.3-2/specs > > gcc version 2.95.3-2 (cygwin special) > > > > Additional testing showes that if I insert a Sleep(500) in the > > threadFunction() just before the return 0 it only crahes 3-5 times of > > the 10 > > runs. Also, it crashes more often after fast repeated runs of the > > program. > > It also crashes more often on faster hardware (I have tested on two > > machines, PII 400 and a PIII 700, both 256 MB RAM). Running only 1 > > thread > > instead of two does not crash the program. > > This smells like a threads/exception handling interaction issue of some > sort. > > It crashes for me, on i=99 at the same place. It crashes _every time_ > for me. Adding a sleep as you did made it crash 8/10 instead of 10/10. > Removing the return 0; from within the try {} stopped it crashing > completely. > > Also, printf doesn't appear to be atomic and threadsafe (lines got > interspersed). You might be hitting something there, but I doubt it > (crashing in the wrong place). > > some things to test/do: > > 1) It's possible it's a problem with the thread exiting code, could you > try using a pthread_exit call instead of return and report back. > > 2) What cygwin1.dll are you using? I'm using a custom build ~= to the > latest snapshot. > 2a) Earnie - what are you testing with? (as a control point that doesn't > see the fault). > $ uname -a CYGWIN_NT-4.0 DU211344 1.3.0(0.36/3/2) 2001-03-18 16:59 i686 unknown > 3) What's the value of ecx when it dies? Mine is > (gdb) info register > eax 0x407004 4222980 > ecx 0xc0 192 > > 3a) Earnie - if you have a few minutes, can you put a breakpoint on the > offending instruction, and report back the output o > info registers (gdb) info registers eax 0x3 3 ecx 0x3 3 edx 0x3 3 ebx 0x1e51ec58 508685400 esp 0x1e51e430 0x1e51e430 ebp 0x1e51e4b8 0x1e51e4b8 esi 0xa0111f0 167842288 edi 0x1e51e968 508684648 eip 0x4010cc 0x4010cc eflags 0x202 514 cs 0x1b 27 ss 0x23 35 ds 0x23 35 es 0x23 35 fs 0x38 56 gs 0x0 0 fctrl 0x27f 639 fstat 0x0 0 ftag 0xffff 65535 fiseg 0x0 0 fioff 0x0 0 foseg 0x0 0 fooff 0x0 0 fop 0x0 0 > info locals No locals. > info threads (gdb) info threads * 3 thread 266.0x172 threadFunction (arg=0x0) at Main.cpp:14 2 thread 266.0x178 0x77f6828b in ?? () 1 thread 266.0x17e 0x77f678df in ?? () threadFunction (arg=0x0) at Main.cpp:14 > bt in each thread? > (gdb) thread 1 [Switching to thread 1 (thread 266.0x17e)] #0 0x77f678df in ?? () (gdb) bt #0 0x77f678df in ?? () #1 0x77f1ced8 in ?? () #2 0x61004862 in _size_of_stack_reserve__ () #3 0x61004b3d in _size_of_stack_reserve__ () #4 0x61005283 in _size_of_stack_reserve__ () #5 0x404d14 in __main () (gdb) thread 2 [Switching to thread 2 (thread 266.0x178)] #0 0x77f6828b in ?? () (gdb) bt #0 0x77f6828b in ?? () #1 0x77f1cd92 in ?? () #2 0x61056026 in _size_of_stack_reserve__ () #3 0x61005731 in _size_of_stack_reserve__ () #4 0x77f04ee8 in ?? () (gdb) thread 3 [Switching to thread 3 (thread 266.0x172)] #0 threadFunction (arg=0x0) at Main.cpp:14 (gdb) bt #0 threadFunction (arg=0x0) at Main.cpp:14 #1 0x6106661c in _size_of_stack_reserve__ () #2 0x77f04ee8 in ?? () (gdb) step (gdb) info registers eax 0x0 0 ecx 0x407020 4223008 edx 0x1e51e498 508683416 ebx 0x1e51ec58 508685400 esp 0x1e51e430 0x1e51e430 ebp 0x1e51e4b8 0x1e51e4b8 esi 0xa0111f0 167842288 edi 0x1e51e968 508684648 eip 0x4011c0 0x4011c0 eflags 0x246 582 cs 0x1b 27 ss 0x23 35 ds 0x23 35 es 0x23 35 fs 0x38 56 gs 0x0 0 fctrl 0x27f 639 fstat 0x0 0 ftag 0xffff 65535 fiseg 0x0 0 fioff 0x0 0 foseg 0x0 0 fooff 0x0 0 fop 0x0 0 (gdb) info locals No locals. (gdb) info threads * 3 thread 266.0x172 threadFunction (arg=0x0) at Main.cpp:20 2 thread 266.0x178 0x77f6828b in ?? () 1 thread 266.0x17e 0x77f678df in ?? () (gdb) thread 1 [Switching to thread 1 (thread 266.0x17e)] #0 0x77f678df in ?? () (gdb) bt #0 0x77f678df in ?? () #1 0x77f1ced8 in ?? () #2 0x61004862 in _size_of_stack_reserve__ () #3 0x61004b3d in _size_of_stack_reserve__ () #4 0x61005283 in _size_of_stack_reserve__ () #5 0x404d14 in __main () (gdb) thread 2 [Switching to thread 2 (thread 266.0x178)] #0 0x77f6828b in ?? () (gdb) bt #0 0x77f6828b in ?? () #1 0x77f1cd92 in ?? () #2 0x61056026 in _size_of_stack_reserve__ () #3 0x61005731 in _size_of_stack_reserve__ () #4 0x77f04ee8 in ?? () (gdb) thread 3 [Switching to thread 3 (thread 266.0x172)] #0 threadFunction (arg=0x0) at Main.cpp:20 (gdb) bt #0 threadFunction (arg=0x0) at Main.cpp:20 #1 0x6106661c in _size_of_stack_reserve__ () #2 0x77f04ee8 in ?? () (gdb) step Unable to Read Instructions at 0x6106661c HTH, Earnie. _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple