delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/1999/04/27/20:44:15

Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm
Sender: cygwin-developers-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin-developers AT sourceware DOT cygnus DOT com
From: fortinj AT ibm DOT net
Message-ID: <37265A6E.813F8ED8@ibm.net>
Date: Tue, 27 Apr 1999 20:46:38 -0400
Reply-To: fortinj AT ibm DOT net
X-Sender: "" <@smtp-gw01.ny.us.ibm.net> (Unverified)
X-Mailer: Mozilla 4.5 [en]C-gatewaynet (Win98; U)
X-Accept-Language: en
MIME-Version: 1.0
To: "cygwin-developers AT sourceware DOT cygnus DOT com"
<cygwin-developers AT sourceware DOT cygnus DOT com>
Subject: cygwin1.dll startup and GDB

All,
	Yeahhhh, The snapshots worked when I compiled under egcs1.1.2!!

Now I was able to examine more closely why I can't use gdb with the
snapshots after March 30th. (Or at least the snapshots which ran :)) I
feel kind of stupid because I was debugging with the downloaded binaries
for the dll and completely forget that the debugging information was
stripped!!  Hence, the wierd 'stack errors' I reported earlier. 

Here is what I see...
	
	1) Any program compiled normally will run fine from bash.  I created a
Hello.exe program.
        2) When you try to use gdb and run the program, a SIGSEGV during
the dll startup.
           Lines marked with ==>* are the ones of interest.

Fortunately, this time I was able to see exactly where the problem
was.   This is in shared.cc in the 
open_shared function.  This was a new function added March 31 according
to the ChangeLog.

This is easily recreated on my system.... If more info is needed, please
let me know.  

John Fortin
fortinj AT ibm DOT net

( next line to be executed is line 52 )

52            char *mapname = name ? shared_name (name, 0) : NULL;
(gdb) p mapname
$1 = 0x25a09a8 ""
(gdb) n
55                                         TRUE, mapname);
(gdb) p mapname
$2 = 0x0
(gdb) p name
$3 = 0x0
(gdb) where
#0  open_shared (name=0x0, shared_h=@0x61068bfc, size=124, addr=0x0)  
at /d/src/winsup/shared.cc:55
#1  0x610102e4 in fhandler_console::fhandler_console (this=0x25a09a8,  
name=0x6101c866 "/dev/conin") at d/src/winsup/fhandler_console.cc:38
#2  0x6101cbdf in hinfo::build_fhandler (this=0x61068c2c, fd=0,
dev=2,    name=0x6101c866 "/dev/conin", unit=0) at
/d/src/winsup/hinfo.cc:244
#3  0x6101cab8 in hinfo::build_fhandler (this=0x61068c2c, fd=0,   
name=0x6101c866 "/dev/conin", handle=0x24) at /d/src/winsup/hinfo.cc:227
#4  0x6101c95a in hinfo::init_std_file_from_handle (this=0x61068c2c,
fd=0,    handle=0x24, myaccess=2147483648, name=0x6101c608 "{stdin}")   
at /d/src/winsup/hinfo.cc:184
#5  0x6101c6c5 in hinfo_init () at /d/src/winsup/hinfo.cc:88
#6  0x61004344 in dll_crt0_1 () at /d/src/winsup/dcrt0.cc:690
#7  0x610045d7 in dll_crt0 (uptr=0x403000) at /d/src/winsup/dcrt0.cc:770
#8  0x401176 in cygwin_crt0 (f=0x401050 <main>) at
/d/src/winsup/libccrt0.cc:82
#9  0x40103a in mainCRTStartup () at
/d/src/newlib/libc/sys/cygwin/crt0.c:48
(gdb) n

Program received signal SIGSEGV, Segmentation fault.
0xbffa0eb2 in _libuser32_a_iname ()
(gdb) l 55
50        if (!shared_h)
51          {
==>*52            char *mapname = name ? shared_name (name, 0) : NULL;
==>*53
==>*54            shared_h = OpenFileMappingA (FILE_MAP_READ |
FILE_MAP_WRITE,
==>*55                                         TRUE, mapname);
56
57            if (!shared_h &&
58                !(shared_h = CreateFileMappingA ((HANDLE) 0xffffffff,
59                                                 &sec_all,
(gdb)


Note that the SIGSEGV is in line 54/55.  The mapname variable is NULL
from line 52.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019