X-Spam-Check-By: sourceware.org Date: Sat, 20 Jan 2007 03:27:45 -0800 From: Christopher Layne To: cygwin AT cygwin DOT com Subject: cygexec strangeness Message-ID: <20070120112745.GA25379@ns1.anodized.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.11 X-Assp-Spam-Prob: 0.00000 X-Assp-Whitelisted: Yes X-Assp-Envelope-From: clayne AT ns1 DOT anodized DOT com X-Assp-Intended-For: cygwin AT cygwin DOT com X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Kind of strange. Am I missing something on how cygexec is supposed to be used? $ cat o.c #include #include #include int main(int argc, char **argv) { int r; if ((r = open(argv[1], O_RDONLY)) < 0) perror("open"); return 0; } $ gcc -g3 -ansi -pedantic -o o o.c $ ./o o.c $ mount -f -b -s -X 'c:\cygwin' / $ ./o o.c $ strace ./o o.c strace: error creating process o, (error 2) strace: error creating process o, (error 2) strace: error creating process o, (error 2) strace: error creating process o, (error 2) strace: error creating process o, (error 2) strace: error creating process o, (error 2) I don't get that, but I'll presume it's intertwined with what I'm asking about. $ PATH="/var/tmp:$PATH" strace o o.c [...] 56 54874 [main] o 19080 open: open (o.c, 0x0) 35 54909 [main] o 19080 normalize_posix_path: src o.c 23 54932 [main] o 19080 cwdstuff::get: posix /c/WINDOWS/system32 22 54954 [main] o 19080 cwdstuff::get: (/c/WINDOWS/system32) = cwdstuff::get (0x22C8A0, 260, 1, 0), errno 0 21 54975 [main] o 19080 normalize_posix_path: /c/WINDOWS/system32/o.c = normalize_posix_path (o.c) 23 54998 [main] o 19080 mount_info::conv_to_win32_path: conv_to_win32_path (/c/WINDOWS/system32/o.c) 23 55021 [main] o 19080 mount_info::cygdrive_win32_path: src '/c/WINDOWS/system32/o.c', dst 'c:\WINDOWS\system32\o.c' 21 55042 [main] o 19080 set_flags: flags: binary (0x2) 83 55125 [main] o 19080 mount_info::conv_to_win32_path: src_path /c/WINDOWS/system32/o.c, dst c:\WINDOWS\system32\o.c, flags 0x2A, rc 0 137 55262 [main] o 19080 symlink_info::check: GetFileAttributes (c:\WINDOWS\system32\o.c) failed 25 55287 [main] o 19080 geterrno_from_win_error: windows error 2 == errno 2 51 55338 [main] o 19080 symlink_info::check: GetFileAttributes (c:\WINDOWS\system32\o.c.lnk) failed 24 55362 [main] o 19080 geterrno_from_win_error: windows error 2 == errno 2 22 55384 [main] o 19080 symlink_info::check: 0 = symlink.check (c:\WINDOWS\system32\o.c, 0x22C560) (0x2A) 21 55405 [main] o 19080 mount_info::conv_to_win32_path: conv_to_win32_path (/c/WINDOWS/system32) 20 55425 [main] o 19080 mount_info::cygdrive_win32_path: src '/c/WINDOWS/system32', dst 'c:\WINDOWS\system32' 20 55445 [main] o 19080 set_flags: flags: binary (0x2) 20 55465 [main] o 19080 mount_info::conv_to_win32_path: src_path /c/WINDOWS/system32, dst c:\WINDOWS\system32, flags 0x2A, rc 0 39 55504 [main] o 19080 symlink_info::check: not a symlink 22 55526 [main] o 19080 symlink_info::check: 0 = symlink.check (c:\WINDOWS\system32, 0x22C560) (0x2A) 72 55598 [main] o 19080 path_conv::check: this->path(c:\WINDOWS\system32\o.c), has_acls(1) 31 55629 [main] o 19080 build_fh_pc: fh 0x611B2E08 58 55687 [main] o 19080 fhandler_base::open: (c:\WINDOWS\system32\o.c, 0x100000) 62 55749 [main] o 19080 seterrno_from_win_error: /netrel/src/cygwin-snapshot-20070110-1/winsup/cygwin/fhandler.cc:710 windows error 2 24 55773 [main] o 19080 geterrno_from_win_error: windows error 2 == errno 2 20 55793 [main] o 19080 __set_errno: void seterrno_from_win_error(const char*, int, DWORD):310 val 2 19 55812 [main] o 19080 fhandler_base::open: C0000034 = NtCreateFile (0x0, 80100000, c:\WINDOWS\system32\o.c, io, NULL, 0, 7, 1, 4020, NULL, 0) 20 55832 [main] o 19080 fhandler_base::open: 0 = fhandler_base::open (c:\WINDOWS\system32\o.c, 0x100000) 17 55849 [main] o 19080 fhandler_base::open_fs: 0 = fhandler_disk_file::open (c:\WINDOWS\system32\o.c, 0x0) 18 55867 [main] o 19080 open: -1 = open (o.c, 0x0) [...] What's the obsession with c/w/system32 ? $ PATH="/var/tmp:$PATH" strace o /var/tmp/o.c 43 34889 [main] o 52328 fhandler_base::open: (c:\cygwin\var\tmp\o.c, 0x100000) 38 34927 [main] o 52328 fhandler_base::set_flags: flags 0x100000, supplied_bin 0x10000 19 34946 [main] o 52328 fhandler_base::set_flags: filemode set to binary 16 34962 [main] o 52328 fhandler_base::open: 0 = NtCreateFile (0x6F0, 80100000, c:\cygwin\var\tmp\o.c, io, NULL, 0, 7, 1, 4020, NULL, 0) 18 34980 [main] o 52328 fhandler_base::open: 1 = fhandler_base::open (c:\cygwin\var\tmp\o.c, 0x100000) 17 34997 [main] o 52328 fhandler_base::open_fs: 1 = fhandler_disk_file::open (c:\cygwin\var\tmp\o.c, 0x0) 16 35013 [main] o 52328 open: 3 = open (/var/tmp/o.c, 0x0) Hmmm... $ mount -f -b -s 'c:\cygwin' / $ strace ./o o.c 36 41956 [main] o 37300 fhandler_base::open: (c:\cygwin\var\tmp\o.c, 0x100000) 36 41992 [main] o 37300 fhandler_base::set_flags: flags 0x100000, supplied_bin 0x10000 18 42010 [main] o 37300 fhandler_base::set_flags: filemode set to binary 16 42026 [main] o 37300 fhandler_base::open: 0 = NtCreateFile (0x6F0, 80100000, c:\cygwin\var\tmp\o.c, io, NULL, 0, 7, 1, 4020, NULL, 0) 17 42043 [main] o 37300 fhandler_base::open: 1 = fhandler_base::open (c:\cygwin\var\tmp\o.c, 0x100000) 16 42059 [main] o 37300 fhandler_base::open_fs: 1 = fhandler_disk_file::open (c:\cygwin\var\tmp\o.c, 0x0) 17 42076 [main] o 37300 open: 3 = open (o.c, 0x0) BTW: It only does it during debugging with strace or gdb. Looking for old threads, someone mentioned something in regards to execvp/lp, but in my case it's just an open(): http://sourceware.org/ml/cygwin/2006-01/msg01477.html Other than that can't really find anything previous... -- 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/