OSDN Git Service

* include/sys/cygwin.h (enum cygwin_getinfo_types): Add CW_DEBUG_SELF.
authorcgf <cgf>
Tue, 17 May 2005 01:21:00 +0000 (01:21 +0000)
committercgf <cgf>
Tue, 17 May 2005 01:21:00 +0000 (01:21 +0000)
* external.cc (cygwin_internal): Implement CW_DEBUG_SELF.
* init.cc (dll_entry): Minor rearrangement of code.

winsup/cygwin/ChangeLog
winsup/cygwin/external.cc
winsup/cygwin/include/sys/cygwin.h
winsup/cygwin/init.cc

index 70573a8..c2bba38 100644 (file)
@@ -1,5 +1,12 @@
 2005-05-16  Christopher Faylor  <cgf@timesys.com>
 
+       * include/sys/cygwin.h (enum cygwin_getinfo_types): Add CW_DEBUG_SELF.
+       * external.cc (cygwin_internal): Implement CW_DEBUG_SELF.
+
+       * init.cc (dll_entry): Minor rearrangement of code.
+
+2005-05-16  Christopher Faylor  <cgf@timesys.com>
+
        * path.cc (path_conv::check): Remove embedded dots before slashes.
 
 2005-05-16  Corinna Vinschen  <corinna@vinschen.de>
index 5268b86..6d618c9 100644 (file)
@@ -311,13 +311,17 @@ cygwin_internal (cygwin_getinfo_types t, ...)
       case CW_ARGV:
        {
          child_info_spawn *ci = (child_info_spawn *) get_cygwin_startup_info ();
-         return (DWORD) (ci ? ci->moreinfo->argv : NULL);
+         return (unsigned long) (ci ? ci->moreinfo->argv : NULL);
        }
       case CW_ENVP:
        {
          child_info_spawn *ci = (child_info_spawn *) get_cygwin_startup_info ();
-         return (DWORD) (ci ? ci->moreinfo->envp : NULL);
+         return (unsigned long) (ci ? ci->moreinfo->envp : NULL);
        }
+      case CW_DEBUG_SELF:
+       error_start_init (va_arg (arg, const char *));
+       try_to_debug ();
+       break;
       default:
        return (DWORD) -1;
     }
index 30ec178..7fa6263 100644 (file)
@@ -82,7 +82,8 @@ typedef enum
     CW_GET_BINMODE,
     CW_HOOK,
     CW_ARGV,
-    CW_ENVP
+    CW_ENVP,
+    CW_DEBUG_SELF
   } cygwin_getinfo_types;
 
 #define CW_NEXTPID     0x80000000      /* or with pid to get next one */
index 3d7a91c..a0d34f5 100644 (file)
@@ -119,6 +119,7 @@ dll_entry (HANDLE h, DWORD reason, void *static_load)
     {
     case DLL_PROCESS_ATTACH:
       cygwin_hmodule = (HMODULE) h;
+      dynamically_loaded = (static_load == NULL);
       /* Is the stack at an unusual high address?  Check if we're running on
         a 64 bit machine.  If so, respawn. */
       if (&is_64bit_machine >= (PBOOL) 0x400000
@@ -127,7 +128,6 @@ dll_entry (HANDLE h, DWORD reason, void *static_load)
        respawn_wow64_process ();
 
       prime_threads ();
-      dynamically_loaded = (static_load == NULL);
       dll_crt0_0 ();
       break;
     case DLL_PROCESS_DETACH: