Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com From: Chris Faylor Date: Fri, 10 Sep 1999 21:56:17 -0400 To: Le Roi Cc: cygwin AT sourceware DOT cygnus DOT com Subject: Re: fork & exec -> crash Message-ID: <19990910215617.A18134@cygnus.com> Reply-To: cygwin AT sourceware DOT cygnus DOT com Mail-Followup-To: Le Roi , cygwin AT sourceware DOT cygnus DOT com References: <19990908130937 DOT 30173 DOT qmail AT hotmail DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.95.6i In-Reply-To: <19990908130937.30173.qmail@hotmail.com>; from Le Roi on Wed, Sep 08, 1999 at 09:09:37AM -0400 It sounds like you're running on Windows 95 or 98. This problem has been reported in the past. As near as I can tell, it's some kind of strange Windows problem. I have a test program that does roughly the same thing but if I put a sleep(2) in the parent process, just before it exits, things seem to work. I'll probably fix this at some point. In the meantime, as always, "a fix would be gratefully accepted." -Chris Faylor -Win32 Manager -Cygnus Solutions On Wed, Sep 08, 1999 at 09:09:37AM -0400, Le Roi wrote: >I'm trying to write a simple program that will fork and exec another >program. When I run it, it sometimes runs the child program, and sometimes >does not, but always gets a Windows "This program has performed an illegal >operation and will be shut down" message. Here is my program: > >int >main(int argc, char **argv) >{ > int pid; > > if (argc == 1) { > printf("Must specify command to run.\n"); > return (1); > } > > if ((pid = fork()) == -1) { > perror("fork"); > return (1); > } else if (pid == 0) { > execv(argv[1], &argv[1]); > _exit(1); > } else { > printf("parent exiting\n"); > _exit(0); > } > > return (0); >} > >Note that if I comment out the fork code and just call the execv line, it >correctly execs without crashing. Also note that I got the same behavior >when I was calling exit instead of _exit. > >And here is my the "details" of the crash: > >SPAWN caused an invalid page fault in >module KERNEL32.DLL at 015f:bff77042. >Registers: >EAX=0257f0e0 CS=015f EIP=bff77042 EFLGS=00010213 >EBX=0000003c SS=0167 ESP=0257f00c EBP=0257fd24 >ECX=d28268e0 DS=0167 ESI=0000001f FS=0000 >EDX=00000000 ES=0167 EDI=0257fa04 GS=0000 >Bytes at CS:EIP: >64 ff 35 00 00 00 00 64 89 25 00 00 00 00 8b 4c >Stack dump: >bffa18e8 6102d45b 0000003c 0257fa04 00000208 0257f0e0 00000000 00000000 >0257fdd5 79616c70 6e756f73 6c702e64 756f7320 2f73646e 6d696863 772e7365 > >Thanks, > >Adam > >______________________________________________________ >Get Your Private, Free Email at http://www.hotmail.com > >-- >Want to unsubscribe from this list? >Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com > -- cgf AT cygnus DOT com http://www.cygnus.com/ -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com