This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: 1.5.7-1: Repeatible crash in cygwin1.dll, _sigbe


1.5.7-1: Repeatible crash in cygwin1.dll, _sigbe

cygwin-1.5.7-1
cygwin@cygwin.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 <repeats 25 times>}, 
    _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 <repeats 26 times>}, _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 <repeats 24 times>}, _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 <repeats 30 times>}, 
        _nmalloc = {0x0 <repeats 30 times>}}}, _atexit = 0x0, _atexit0 = {
      _next = 0x0, _ind = 0x0, _fns = {0x0 <repeats 32 times>}, 
      _on_exit_args = {_fnargs = {0x0 <repeats 32 times>}, _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 <repeats 256 times>}, 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 <repeats 128 times>}, 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 <repeats 80 times>}, mnt_opts = {0x0 <repeats 80 times>}, 
    mnt_fsname = {0x0 <repeats 260 times>}, mnt_dir = {
      0x0 <repeats 260 times>}, strerror_buf = {0x0 <repeats 20 times>}, 
    process_ident = 0x0, process_logopt = 0x0, process_facility = 0x0, 
    process_logmask = 0xff, timezone_buf = {0x0 <repeats 20 times>}, 
    _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 <repeats 257 times>}, 
    ntoa_buf = 0x0, protoent_buf = 0x0, servent_buf = 0x0, hostent_buf = 0x0, 
    signamebuf = {0x0 <repeats 29 times>}}, prev = 0x0, next = 0x0, 
  stackptr = 0x22fbfc, sig = 0x0, stacklock = 0x0, spinning = 0x0, stack = {
    0x0 <repeats 256 times>}, padding = 0x230000, 
  static protect_linked_list = <optimized out>}
(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 <low_priority_sleep>
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 <sigreturn+0>:	add    $0x4,%esp
0x61086f07 <sigreturn+3>:	call   0x610261c0 <set_process_mask>
0x61086f0c <sigreturn+8>:	mov    %fs:0x4,%ebx
0x61086f13 <sigreturn+15>:	pop    %edx
0x61086f14 <sigreturn+16>:	test   %edx,%edx
0x61086f16 <sigreturn+18>:	jl     0x61086f20 <sigreturn+28>
0x61086f18 <sigreturn+20>:	mov    0xfffff178(%ebx),%eax
0x61086f1e <sigreturn+26>:	mov    %edx,(%eax)
0x61086f20 <sigreturn+28>:	pop    %eax
0x61086f21 <sigreturn+29>:	pop    %ebx
0x61086f22 <sigreturn+30>:	pop    %ecx
0x61086f23 <sigreturn+31>:	pop    %edx
0x61086f24 <sigreturn+32>:	pop    %edi
0x61086f25 <sigreturn+33>:	pop    %esi
0x61086f26 <sigreturn+34>:	popf   
0x61086f27 <sigreturn+35>:	pop    %ebp
0x61086f28 <sigreturn+36>:	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 <repeats 25 times>}, 
    _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 <repeats 26 times>}, _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 <repeats 24 times>}, _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 <repeats 30 times>}, 
        _nmalloc = {0x0 <repeats 30 times>}}}, _atexit = 0x0, _atexit0 = {
      _next = 0x0, _ind = 0x0, _fns = {0x0 <repeats 32 times>}, 
      _on_exit_args = {_fnargs = {0x0 <repeats 32 times>}, _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 <repeats 256 times>}, 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 <repeats 128 times>}, 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 <repeats 80 times>}, mnt_opts = {0x0 <repeats 80 times>}, 
    mnt_fsname = {0x0 <repeats 260 times>}, mnt_dir = {
      0x0 <repeats 260 times>}, strerror_buf = {0x0 <repeats 20 times>}, 
    process_ident = 0x0, process_logopt = 0x0, process_facility = 0x0, 
    process_logmask = 0xff, timezone_buf = {0x0 <repeats 20 times>}, 
    _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 <repeats 257 times>}, 
    ntoa_buf = 0x0, protoent_buf = 0x0, servent_buf = 0x0, hostent_buf = 0x0, 
    signamebuf = {0x0 <repeats 29 times>}}, prev = 0x0, next = 0x0, 
  stackptr = 0x22fbfc, sig = 0x0, stacklock = 0x1, spinning = 0x0, stack = {
    0x0 <repeats 256 times>}, padding = 0x230000, 
  static protect_linked_list = <optimized out>}
________________________________________________________________________________


-----Original Message-----
From: Christopher Faylor [mailto:cgf-no-personal-reply-please@cygwin.com] 
Sent: Tuesday, February 17, 2004 10:27 AM
To: cygwin@cygwin.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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]