Message-Id: <200402181636.i1IGZxuZ022360@delorie.com> Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: "Cliff Geschke" To: Subject: RE: 1.5.7-1: Repeatible crash in cygwin1.dll, _sigbe Date: Wed, 18 Feb 2004 10:31:03 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit In-Reply-To: <20040217162718.GB23084@redhat.com> 1.5.7-1: Repeatible crash in cygwin1.dll, _sigbe cygwin-1.5.7-1 cygwin AT cygwin DOT com After doing what you asked, the crash still occurs, but is somewhat different. Here is what I did. 1. Loaded cygwin from CVS. I see the relevant routines have all changed. 2. ./configure 3. make 4. build failed for dumper.exe (will send separate email) 5. Replaced /usr/bin/cygwin1.dll with new-cygwin1.dll 6. Reboot (just to be safe) 7. Ran my test program. I am still seeing stackptr being corrupted. I believe it happens after a setjmp/longjump. See "do_jump" routine below. I think the problem is in the "call _set_process_mask" in sigreturn. That somehow winds up calling _sigbe with the thread stack empty. Look for "####" below for start of debug sections. I can supply the .exe test program if you wish. Good luck and thanks, Cliff Geschke ________________________________________________________________________________ #### Here is the program that I think triggers the problem static void do_jump( Context_Control_overlay *currentp, Context_Control_overlay *nextp ) { int status; if (setjmp(currentp->regs) == 0) { /* Save the current context */ longjmp(nextp->regs, 0); /* Switch to the new context */ _Internal_error_Occurred( INTERNAL_ERROR_CORE, TRUE, status ); } } ________________________________________________________________________________ #### This shows the crash, but not much info except that stackptr is bad. #### Look at next section for better info. (gdb) run Starting program: /home/Cliff/test/ticker/o-optimize/ticker.exe *** CLOCK TICK TEST *** - rtems_clock_get - 09:00:00 12/31/1988 - rtems_clock_get - 09:00:05 12/31/1988 Program received signal SIGSEGV, Segmentation fault. 0x00000000 in ?? () from 2: x/i $pc 0x0: Cannot access memory at address 0x0 Disabling display 2 to avoid infinite recursion. (gdb) bt #0 0x00000000 in ?? () from (gdb) info thr 3 thread 1416.0xeac 0x7ffe0304 in ?? () 2 thread 1416.0xc84 0x7ffe0304 in ?? () * 1 thread 1416.0x954 0x00000000 in ?? () from warning: Couldn't restore frame in current thread, at frame 0 0x00000000 in ?? () from (gdb) info reg eax 0xffffffff -1 ecx 0x4 4 edx 0x230000 2293760 ebx 0xa2420d0 170139856 esp 0xa24163c 0xa24163c ebp 0xa241684 0xa241684 esi 0xdeaddead -559030611 edi 0xdeafdeaf -558899537 eip 0x0 0x0 eflags 0x10246 66118 cs 0x1b 27 ss 0x23 35 ds 0x23 35 es 0x23 35 fs 0x3b 59 gs 0x0 0 (gdb) x/64x 0xa241620 0xa241620: 0x0a2420d0 0x00000004 0x00230000 0xdeafdeaf 0xa241630: 0xffffffff 0x00230000 0x00000000 0x0a0301e0 0xa241640: 0x00000000 0x00000000 0x00403859 0x00000002 0xa241650: 0x0040b0a0 0x00000000 0x0a2420d0 0xdeaddead 0xa241660: 0x0a2420d0 0x0a241684 0x0040442e 0x00000000 0xa241670: 0x0040b0a0 0x00000000 0x0a2420d0 0xdeaddead 0xa241680: 0xdeafdeaf 0x0a2416a4 0x00409046 0x00000000 0xa241690: 0x00000000 0x00000000 0x00000000 0x00000000 0xa2416a0: 0xfeedfeed 0x0a2416a8 0x00408f60 0x0a2416a8 0xa2416b0: 0x0a2416a8 0x00000000 0x00000000 0x00000000 0xa2416c0: 0x00000000 0x00000000 0x00000000 0x00000000 0xa2416d0: 0x00000000 0x00000000 0x00000000 0x00000000 0xa2416e0: 0x00004051 0x00000161 0x00000000 0x00000008 0xa2416f0: 0x00000000 0x00000000 0x00000000 0x00000000 0xa241700: 0x00000000 0x00000000 0x00000000 0x00000000 0xa241710: 0x00000000 0x00000000 0x00000000 0x00000000 (gdb) p/x *((_cygtls *) (0x230000-3744)) $3 = {func = 0x4038a0, saved_errno = 0x4, sa_flags = 0x10000000, oldmask = 0x0, newmask = 0xfffbf94f, event = 0x0, errno_addr = 0x22f228, initialized = 0x43227, sigmask = 0x0, sigwait_mask = 0x0, sigwait_info = 0x0, threadkill = 0x0, infodata = {si_signo = 0xe, si_code = 0x1, si_pid = 0x588, si_uid = 0x3f0, si_errno = 0x0, {__pad = { 0x72656d, 0x0, 0x244cb8, 0x8cf010, 0x8cf074, 0x610ef79c, 0x77fc49e0, 0x77f8ee5a, 0x77ed7618, 0xf8eb36, 0x240000, 0x8cedc0, 0x0, 0x8cef44, 0x8cee38, 0x8cee04, 0xffffffff, 0x8cef98, 0x77fa88f0, 0x77f511e8, 0xffffffff, 0x77f5f70f, 0x77f60f7f, 0x77d40000, 0x8ceecc, 0x0, 0x8ceee0, 0x1, 0x77e7b36e, 0x77d40000, 0x77e7b380, 0x77d40000}, {{{{ si_tid = 0x72656d, si_overrun = 0x0}, si_sigval = { sival_int = 0x72656d, sival_ptr = 0x72656d}, si_value = { sival_int = 0x72656d, sival_ptr = 0x72656d}}}}, { si_status = 0x72656d, si_utime = 0x0, si_stime = 0x244cb8}, si_addr = 0x72656d}}, tid = 0xa040020, local_clib = {_errno = 0x4, _stdin = 0x611132a8, _stdout = 0x61113310, _stderr = 0x61113378, _inc = 0x0, _emergency = {0x0 }, _current_category = 0x0, _current_locale = 0x61003e09, __sdidinit = 0x1, __cleanup = 0x610d3510, _result = 0x0, _result_k = 0x0, _p5s = 0x0, _freelist = 0x0, _cvtlen = 0x0, _cvtbuf = 0x0, _new = {_reent = { _unused_rand = 0x0, _strtok_last = 0x0, _asctime_buf = { 0x0 }, _localtime_buf = {__tm_sec = 0x0, __tm_min = 0x0, __tm_hour = 0x0, __tm_mday = 0x0, __tm_mon = 0x0, __tm_year = 0x0, __tm_wday = 0x0, __tm_yday = 0x0, __tm_isdst = 0x0}, _gamma_signgam = 0x0, _rand_next = 0x0, _r48 = { _seed = {0x0, 0x0, 0x0}, _mult = {0x0, 0x0, 0x0}, _add = 0x0}, _mblen_state = {__count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _mbtowc_state = {__count = 0x0, __value = { __wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _wctomb_state = { __count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _l64a_buf = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, _signal_buf = {0x0 }, _getdate_err = 0x0, _mbrlen_state = {__count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _mbrtowc_state = {__count = 0x0, __value = { __wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _mbsrtowcs_state = { __count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _wcrtomb_state = {__count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _wcsrtombs_state = { __count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}}, _unused = {_nextf = {0x0 }, _nmalloc = {0x0 }}}, _atexit = 0x0, _atexit0 = { _next = 0x0, _ind = 0x0, _fns = {0x0 }, _on_exit_args = {_fnargs = {0x0 }, _fntypes = 0x0}}, _sig_func = 0x0, __sglue = {_next = 0x0, _niobs = 0x3, _iobs = 0x611132a8}, __sf = {{_p = 0x0, _r = 0x0, _w = 0x0, _flags = 0x0, _file = 0x0, _bf = {_base = 0x0, _size = 0x0}, _lbfsize = 0x0, _data = 0x0, _cookie = 0x0, _read = 0x0, _write = 0x0, _seek = 0x0, _close = 0x0, _ub = {_base = 0x0, _size = 0x0}, _up = 0x0, _ur = 0x0, _ubuf = {0x0, 0x0, 0x0}, _nbuf = {0x0}, _lb = { _base = 0x0, _size = 0x0}, _blksize = 0x0, _flags2 = 0x0, _offset = 0x0, _seek64 = 0x0, _lock = 0x0}, {_p = 0x0, _r = 0x0, _w = 0x0, _flags = 0x0, _file = 0x0, _bf = {_base = 0x0, _size = 0x0}, _lbfsize = 0x0, _data = 0x0, _cookie = 0x0, _read = 0x0, _write = 0x0, _seek = 0x0, _close = 0x0, _ub = {_base = 0x0, _size = 0x0}, _up = 0x0, _ur = 0x0, _ubuf = {0x0, 0x0, 0x0}, _nbuf = {0x0}, _lb = { _base = 0x0, _size = 0x0}, _blksize = 0x0, _flags2 = 0x0, _offset = 0x0, _seek64 = 0x0, _lock = 0x0}, {_p = 0x0, _r = 0x0, _w = 0x0, _flags = 0x0, _file = 0x0, _bf = {_base = 0x0, _size = 0x0}, _lbfsize = 0x0, _data = 0x0, _cookie = 0x0, _read = 0x0, _write = 0x0, _seek = 0x0, _close = 0x0, _ub = {_base = 0x0, _size = 0x0}, _up = 0x0, _ur = 0x0, _ubuf = {0x0, 0x0, 0x0}, _nbuf = {0x0}, _lb = { _base = 0x0, _size = 0x0}, _blksize = 0x0, _flags2 = 0x0, _offset = 0x0, _seek64 = 0x0, _lock = 0x0}}}, locals = {grp = { gr_name = 0x0, gr_passwd = 0x0, gr_gid = 0x0, gr_mem = 0x0}, namearray = {0x0, 0x0}, grp_pos = 0x0, rarg = 0x0, dl_error = 0x0, dl_buffer = {0x0 }, res = {pw_name = 0x0, pw_passwd = 0x0, pw_uid = 0x0, pw_gid = 0x0, pw_comment = 0x0, pw_gecos = 0x0, pw_dir = 0x0, pw_shell = 0x0}, pass = { 0x0 }, pw_pos = 0x0, mntbuf = {mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0x0, mnt_passno = 0x0}, iteration = 0x0, available_drives = 0x0, mnt_type = { 0x0 }, mnt_opts = {0x0 }, mnt_fsname = {0x0 }, mnt_dir = { 0x0 }, strerror_buf = {0x0 }, process_ident = 0x0, process_logopt = 0x0, process_facility = 0x0, process_logmask = 0xff, timezone_buf = {0x0 }, _localtime_buf = {tm_sec = 0x0, tm_min = 0x0, tm_hour = 0x0, tm_mday = 0x0, tm_mon = 0x0, tm_year = 0x0, tm_wday = 0x0, tm_yday = 0x0, tm_isdst = 0x0}, username = {0x0 }, ntoa_buf = 0x0, protoent_buf = 0x0, servent_buf = 0x0, hostent_buf = 0x0, signamebuf = {0x0 }}, prev = 0x0, next = 0x0, stackptr = 0x22fbfc, sig = 0x0, stacklock = 0x0, spinning = 0x0, stack = { 0x0 }, padding = 0x230000, static protect_linked_list = } (gdb) ________________________________________________________________________________ #### This shows where stackptr goes bad, trapped by watchpoint (gdb) watch *0x22fbf0 Hardware watchpoint 2: *2292720 (gdb) run Starting program: /home/Cliff/test/ticker/o-optimize/ticker.exe Hardware watchpoint 2: *2292720Hardware watchpoint 2: *2292720Hardware watchpoint 2: *2292720Hardware watchpoint 2: *2292720Hardware watchpoint 2: *2292720Hardware watchpoint 2: *2292720Hardware watchpoint 2: *2292720Hardware watchpoint 2: *2292720Hardware watchpoint 2: *2292720Hardware watchpoint 2: *2292720Hardware watchpoint 2: *2292720 Old value = 2292740 New value = 2292736 0x61086eae in _sigbe () at ../../../winsup/cygwin/cygserver.h:82 Current language: auto; currently c++ (gdb) disp/x *0x22fbf0 1: /x *2292720 = 0x22fc00 (gdb) condition 2 (*((long *) 0x22fbf0) < 0x22fc00) (gdb) c Continuing. *** CLOCK TICK TEST *** - rtems_clock_get - 09:00:00 12/31/1988 - rtems_clock_get - 09:00:05 12/31/1988 Hardware watchpoint 2: *2292720 Old value = 2292736 New value = 2292732 0x61086eae in _sigbe () at ../../../winsup/cygwin/cygserver.h:82 1: /x *2292720 = 0x22fbfc (gdb) d disp 1 (gdb) disp/i $pc 2: x/i $pc 0x61086eae <_sigbe+53>: xor %ebx,%ebx (gdb) info reg eax 0x22fc00 2292736 ecx 0x6110e098 1628496024 edx 0x230000 2293760 ebx 0x230000 2293760 esp 0xa2415d4 0xa2415d4 ebp 0xa2415f8 0xa2415f8 esi 0xdeaddead -559030611 edi 0xdeafdeaf -558899537 eip 0x61086eae 0x61086eae eflags 0x207 519 cs 0x1b 27 ss 0x23 35 ds 0x23 35 es 0x23 35 fs 0x3b 59 gs 0x0 0 (gdb) disas Dump of assembler code for function _sigbe: 0x61086e79 <_sigbe+0>: push %ebx 0x61086e7a <_sigbe+1>: push %edx 0x61086e7b <_sigbe+2>: push %eax 0x61086e7c <_sigbe+3>: mov %fs:0x4,%edx 0x61086e83 <_sigbe+10>: mov $0x1,%eax 0x61086e88 <_sigbe+15>: lock xchg %eax,0xfffffbf8(%edx) 0x61086e8f <_sigbe+22>: mov %eax,0xfffffbfc(%edx) 0x61086e95 <_sigbe+28>: or %eax,%eax 0x61086e97 <_sigbe+30>: je 0x61086ea2 <_sigbe+41> 0x61086e99 <_sigbe+32>: xor %eax,%eax 0x61086e9b <_sigbe+34>: call 0x61055f10 0x61086ea0 <_sigbe+39>: jmp 0x61086e7c <_sigbe+3> 0x61086ea2 <_sigbe+41>: mov $0xfffffffc,%eax 0x61086ea7 <_sigbe+46>: xadd %eax,0xfffffbf0(%edx) 0x61086eae <_sigbe+53>: xor %ebx,%ebx 0x61086eb0 <_sigbe+55>: xchg %ebx,0xfffffffc(%eax) 0x61086eb3 <_sigbe+58>: xchg %ebx,0x8(%esp,1) 0x61086eb7 <_sigbe+62>: decl 0xfffffbf8(%edx) 0x61086ebd <_sigbe+68>: pop %eax 0x61086ebe <_sigbe+69>: pop %edx 0x61086ebf <_sigbe+70>: ret End of assembler dump. (gdb) x/32x $esp 0xa2415d4: 0x00000000 0x00000000 0x00230000 0x00000002 0xa2415e4: 0x0040b0a0 0x00000000 0x00403d88 0x00000001 0xa2415f4: 0xfffbf94f 0x0a241608 0x00403915 0x00000000 0xa241604: 0xfffbf94f 0x0a241638 0x61086f04 0x0000000e 0xa241614: 0x00000000 0xffffffff 0xffffffff 0x0a2420d0 0xa241624: 0x00000004 0x00230000 0xdeafdeaf 0xdeaddead 0xa241634: 0x00000246 0x0a241684 0x0a2420d0 0x00000000 0xa241644: 0x00000000 0x00403859 0x00000002 0x0040b0a0 (gdb) disas 0x61086f04 Dump of assembler code for function sigreturn: 0x61086f04 : add $0x4,%esp 0x61086f07 : call 0x610261c0 0x61086f0c : mov %fs:0x4,%ebx 0x61086f13 : pop %edx 0x61086f14 : test %edx,%edx 0x61086f16 : jl 0x61086f20 0x61086f18 : mov 0xfffff178(%ebx),%eax 0x61086f1e : mov %edx,(%eax) 0x61086f20 : pop %eax 0x61086f21 : pop %ebx 0x61086f22 : pop %ecx 0x61086f23 : pop %edx 0x61086f24 : pop %edi 0x61086f25 : pop %esi 0x61086f26 : popf 0x61086f27 : pop %ebp 0x61086f28 : jmp 0x61086e79 <_sigbe> End of assembler dump. (gdb) p/x *((_cygtls *) (0x230000-3744)) $2 = {func = 0x4038a0, saved_errno = 0xffffffff, sa_flags = 0x10000000, oldmask = 0x0, newmask = 0xfffbf94f, event = 0x0, errno_addr = 0x22f228, initialized = 0x43227, sigmask = 0x0, sigwait_mask = 0x0, sigwait_info = 0x0, threadkill = 0x0, infodata = {si_signo = 0xe, si_code = 0x1, si_pid = 0x45c, si_uid = 0x3f0, si_errno = 0x0, {__pad = { 0x72656d, 0x0, 0x244cb8, 0x8cf010, 0x8cf074, 0x610ef79c, 0x77fc49e0, 0x77f8ee5a, 0x77ed7618, 0xf8eb36, 0x240000, 0x8cedc0, 0x0, 0x8cef44, 0x8cee38, 0x8cee04, 0xffffffff, 0x8cef98, 0x77fa88f0, 0x77f511e8, 0xffffffff, 0x77f5f70f, 0x77f60f7f, 0x77d40000, 0x8ceecc, 0x0, 0x8ceee0, 0x1, 0x77e7b36e, 0x77d40000, 0x77e7b380, 0x77d40000}, {{{{ si_tid = 0x72656d, si_overrun = 0x0}, si_sigval = { sival_int = 0x72656d, sival_ptr = 0x72656d}, si_value = { sival_int = 0x72656d, sival_ptr = 0x72656d}}}}, { si_status = 0x72656d, si_utime = 0x0, si_stime = 0x244cb8}, si_addr = 0x72656d}}, tid = 0xa040020, local_clib = {_errno = 0x4, _stdin = 0x611132a8, _stdout = 0x61113310, _stderr = 0x61113378, _inc = 0x0, _emergency = {0x0 }, _current_category = 0x0, _current_locale = 0x61003e09, __sdidinit = 0x1, __cleanup = 0x610d3510, _result = 0x0, _result_k = 0x0, _p5s = 0x0, _freelist = 0x0, _cvtlen = 0x0, _cvtbuf = 0x0, _new = {_reent = { _unused_rand = 0x0, _strtok_last = 0x0, _asctime_buf = { 0x0 }, _localtime_buf = {__tm_sec = 0x0, __tm_min = 0x0, __tm_hour = 0x0, __tm_mday = 0x0, __tm_mon = 0x0, __tm_year = 0x0, __tm_wday = 0x0, __tm_yday = 0x0, __tm_isdst = 0x0}, _gamma_signgam = 0x0, _rand_next = 0x0, _r48 = { _seed = {0x0, 0x0, 0x0}, _mult = {0x0, 0x0, 0x0}, _add = 0x0}, _mblen_state = {__count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _mbtowc_state = {__count = 0x0, __value = { __wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _wctomb_state = { __count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _l64a_buf = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, _signal_buf = {0x0 }, _getdate_err = 0x0, _mbrlen_state = {__count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _mbrtowc_state = {__count = 0x0, __value = { __wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _mbsrtowcs_state = { __count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _wcrtomb_state = {__count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}, _wcsrtombs_state = { __count = 0x0, __value = {__wch = 0x0, __wchb = {0x0, 0x0, 0x0, 0x0}}}}, _unused = {_nextf = {0x0 }, _nmalloc = {0x0 }}}, _atexit = 0x0, _atexit0 = { _next = 0x0, _ind = 0x0, _fns = {0x0 }, _on_exit_args = {_fnargs = {0x0 }, _fntypes = 0x0}}, _sig_func = 0x0, __sglue = {_next = 0x0, _niobs = 0x3, _iobs = 0x611132a8}, __sf = {{_p = 0x0, _r = 0x0, _w = 0x0, _flags = 0x0, _file = 0x0, _bf = {_base = 0x0, _size = 0x0}, _lbfsize = 0x0, _data = 0x0, _cookie = 0x0, _read = 0x0, _write = 0x0, _seek = 0x0, _close = 0x0, _ub = {_base = 0x0, _size = 0x0}, _up = 0x0, _ur = 0x0, _ubuf = {0x0, 0x0, 0x0}, _nbuf = {0x0}, _lb = { _base = 0x0, _size = 0x0}, _blksize = 0x0, _flags2 = 0x0, _offset = 0x0, _seek64 = 0x0, _lock = 0x0}, {_p = 0x0, _r = 0x0, _w = 0x0, _flags = 0x0, _file = 0x0, _bf = {_base = 0x0, _size = 0x0}, _lbfsize = 0x0, _data = 0x0, _cookie = 0x0, _read = 0x0, _write = 0x0, _seek = 0x0, _close = 0x0, _ub = {_base = 0x0, _size = 0x0}, _up = 0x0, _ur = 0x0, _ubuf = {0x0, 0x0, 0x0}, _nbuf = {0x0}, _lb = { _base = 0x0, _size = 0x0}, _blksize = 0x0, _flags2 = 0x0, _offset = 0x0, _seek64 = 0x0, _lock = 0x0}, {_p = 0x0, _r = 0x0, _w = 0x0, _flags = 0x0, _file = 0x0, _bf = {_base = 0x0, _size = 0x0}, _lbfsize = 0x0, _data = 0x0, _cookie = 0x0, _read = 0x0, _write = 0x0, _seek = 0x0, _close = 0x0, _ub = {_base = 0x0, _size = 0x0}, _up = 0x0, _ur = 0x0, _ubuf = {0x0, 0x0, 0x0}, _nbuf = {0x0}, _lb = { _base = 0x0, _size = 0x0}, _blksize = 0x0, _flags2 = 0x0, _offset = 0x0, _seek64 = 0x0, _lock = 0x0}}}, locals = {grp = { gr_name = 0x0, gr_passwd = 0x0, gr_gid = 0x0, gr_mem = 0x0}, namearray = {0x0, 0x0}, grp_pos = 0x0, rarg = 0x0, dl_error = 0x0, dl_buffer = {0x0 }, res = {pw_name = 0x0, pw_passwd = 0x0, pw_uid = 0x0, pw_gid = 0x0, pw_comment = 0x0, pw_gecos = 0x0, pw_dir = 0x0, pw_shell = 0x0}, pass = { 0x0 }, pw_pos = 0x0, mntbuf = {mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0x0, mnt_passno = 0x0}, iteration = 0x0, available_drives = 0x0, mnt_type = { 0x0 }, mnt_opts = {0x0 }, mnt_fsname = {0x0 }, mnt_dir = { 0x0 }, strerror_buf = {0x0 }, process_ident = 0x0, process_logopt = 0x0, process_facility = 0x0, process_logmask = 0xff, timezone_buf = {0x0 }, _localtime_buf = {tm_sec = 0x0, tm_min = 0x0, tm_hour = 0x0, tm_mday = 0x0, tm_mon = 0x0, tm_year = 0x0, tm_wday = 0x0, tm_yday = 0x0, tm_isdst = 0x0}, username = {0x0 }, ntoa_buf = 0x0, protoent_buf = 0x0, servent_buf = 0x0, hostent_buf = 0x0, signamebuf = {0x0 }}, prev = 0x0, next = 0x0, stackptr = 0x22fbfc, sig = 0x0, stacklock = 0x1, spinning = 0x0, stack = { 0x0 }, padding = 0x230000, static protect_linked_list = } ________________________________________________________________________________ -----Original Message----- From: Christopher Faylor [mailto:cgf-no-personal-reply-please AT cygwin DOT com] Sent: Tuesday, February 17, 2004 10:27 AM To: cygwin AT cygwin DOT com Subject: Re: 1.5.7-1: Repeatible crash in cygwin1.dll, _sigbe On Tue, Feb 17, 2004 at 10:22:31AM -0600, Cliff Geschke wrote: >I am trying to run RTEMS (see www.rtems.com) under cygwin under WindowsXP. >I encountered a repeatible crash in the pre-built cygwin binaries. >To debug it, I downloaded sources and built cygwin1.dll by hand. Try CVS. >(Has anyone tried to make cygwin under cygwin recently? Yes. All of the time. >It failed, but that's another story) Then why mention it without providing any details? >The instruction at _sigbe+22 is fetching a bad value to $eax. >The value of tls_stackptr looks bad. It has been decremented too many >times. > >tls_stack = -1024 >p/x 0x230000-1024 >$22 = 0x22fc00 Thanks for debugging this. If it is still broken in CVS, please send a similar report here. cgf -- 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/