This is the mail archive of the cygwin@sourceware.cygnus.com 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]

fork & exec -> crash


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@sourceware.cygnus.com


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