From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17020 invoked by alias); 8 Aug 2012 13:03:11 -0000 Received: (qmail 17011 invoked by uid 22791); 8 Aug 2012 13:03:10 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_DNSWL_NONE,TW_CP,TW_TM X-Spam-Check-By: sourceware.org Received: from smtpout.karoo.kcom.com (HELO smtpout.karoo.kcom.com) (212.50.160.34) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 08 Aug 2012 13:02:56 +0000 Received: from 213-152-38-55.dsl.eclipse.net.uk (HELO [192.168.1.103]) ([213.152.38.55]) by smtpout.karoo.kcom.com with ESMTP; 08 Aug 2012 14:02:54 +0100 Message-ID: <50226385.6060903@dronecode.org.uk> Date: Wed, 08 Aug 2012 13:03:00 -0000 From: Jon TURNEY Reply-To: cygwin-xfree User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20120713 Thunderbird/14.0 MIME-Version: 1.0 To: cygwin-xfree@cygwin.com CC: crleblanc@gmail.com Subject: Re: XWin.exe segmentation fault on Windows 7 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact cygwin-xfree-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-xfree-owner@cygwin.com Reply-To: cygwin-xfree@cygwin.com Mail-Followup-To: cygwin-xfree@cygwin.com X-SW-Source: 2012-08/txt/msg00016.txt.bz2 On 08/08/2012 05:51, Chris LeBlanc wrote: > I'm trying to help a coworker get Cygwin running on her Windows 7 > (64b) machine, but we're seeing a segmentation fault with XWin.exe. > Previous versions of X11 worked fine on this machine, but recently it > has been unable to fork processes. It's been giving the error "fork: > child -1 - forked process died unexpectedly ...", which is why I've > been trying to upgrade to the most recent version of Cygwin. Thanks for the detailed bug report. Given you were getting fork problems before this upgrade, this might well be a problem with some other software interfering with cygwin's operation. So you should take a look at [1], and probably try running XWin with CYGWIN including detect_bloda [2] > Any advice on how to get more debug info? How hard is it to build > XWin from source? If it's a minor strcpy() issue it could be a pretty > easy fix. Any other advice? Instructions on building the X server from source are in [3], but with the debug info package installed you have source and symbols, so you should be able to set a breakpoint on main and step through the code anyhow. > 0 [main] XWin 6164 exception::handle: Exception: STATUS_ACCESS_VIOLATION > 454 [main] XWin 6164 open_stackdumpfile: Dumping stack trace to > XWin.exe.stackdump > > Program received signal SIGSEGV, Segmentation fault. > strcpy (dst0=0x40010006
, src0=0x0) > at /usr/src/debug/cygwin-1.7.16-1/newlib/libc/string/strcpy.c:86 > 86 while (!DETECTNULL(*aligned_src)) > (gdb) bt full > #0 strcpy (dst0=0x40010006
, src0=0x0) > at /usr/src/debug/cygwin-1.7.16-1/newlib/libc/string/strcpy.c:86 > dst = 0x40010006
> src = 0x0 > aligned_dst = 0x40010006 > aligned_src = 0x28a026 > #1 0x751d2ad6 in OutputDebugStringA () from > /cygdrive/c/Windows/syswow64/KERNELBASE.dll > No symbol table info available. > #2 0x40010006 in ?? () > No symbol table info available. > #3 0x00000000 in ?? () > No symbol table info available. > (gdb) This stack trace looks highly suspicious: - The presence of the invalid address 0x40010006 as src for strcpy and in the backtrace - I think cygwin is supposed to notice it is being debugged and give control to the debugger and not write a stackdump file - I don't think OutputDebugStringA() should ever end up calling cygwin's strcpy() So all this suggests to me some kind of stack corruption has happened. > Output from XWin.exe.stackdump: > Exception: STATUS_ACCESS_VIOLATION at eip=61129F8B > eax=0028D624 ebx=00000000 ecx=00000000 edx=00000000 esi=0028D624 edi=0028AB5C > ebp=0028A968 esp=0028A95C program=C:\cygwin\bin\XWin.exe, pid 6164, thread main > cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B > Stack trace: > Frame Function Args > 0028A968 61129F8B (0028D624, 00000000, 0028FF14, 771170D5) > 0028AA28 6108E2BA (0028AA58, 611DF23B, 60FE8510, 00000068) > 0028AB78 6108EB57 (60FE000C, 00000005, 0028ABC4, 005C2DE9) > 0028AB98 61091F56 (005C2DCE, 005C2DCC, 00000000, 00000000) > 0028ABF8 610D5F05 (6C340000, 00000001, 0028FD24, 00000002) > 0028AC38 00528F43 (00000002, 0028AC60, 800280E8, 8003A441) > 0028ACF8 61007535 (00000000, 0028CD78, 61006B20, 00000000) > End of stack trace Processing this with "awk '/^[0-9]/{print $2}' XWin.exe.stackdump | addr2line -asf -e /usr/bin/cygwin1.dll", and cleaning up the output by hand a bit, gives... 0x61129f8b strcpy strcpy.c:86 0x6108e2ba fillout_mntent mount.cc:1636 0x6108eb57 cygdrive_getmntent mount.cc:1720 0x61091f56 getmntent mount.cc:1900 0x610d5f05 ?? ??:0 0x00528f43 main main.c:145 0x61007535 _Z10dll_crt0_1Pv dcrt0.cc:982 ... which looks a bit more reasonable, and suggests something in the cygwin DLL is exploding when XWin uses getmntent() in winCheckMount() to check for FAT and textmode mounts. [1] http://cygwin.com/faq/faq.using.html#faq.using.bloda [2] http://cygwin.com/ml/cygwin/2012-02/msg00797.html [2] http://x.cygwin.com/docs/cg/ -- Jon TURNEY Volunteer Cygwin/X X Server maintainer -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://x.cygwin.com/docs/ FAQ: http://x.cygwin.com/docs/faq/