From 5c8e6fbd8cba2653984ca48d8a1872b3e6974a2c Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Tue, 17 May 2005 01:21:06 +0000 Subject: * 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. --- winsup/cygwin/ChangeLog | 7 +++++++ winsup/cygwin/external.cc | 8 ++++++-- winsup/cygwin/include/sys/cygwin.h | 3 ++- winsup/cygwin/init.cc | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) (limited to 'winsup/cygwin') diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 70573a831..c2bba384e 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2005-05-16 Christopher Faylor + + * 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 * path.cc (path_conv::check): Remove embedded dots before slashes. diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc index 5268b86b8..6d618c961 100644 --- a/winsup/cygwin/external.cc +++ b/winsup/cygwin/external.cc @@ -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; } diff --git a/winsup/cygwin/include/sys/cygwin.h b/winsup/cygwin/include/sys/cygwin.h index 30ec17804..7fa62635e 100644 --- a/winsup/cygwin/include/sys/cygwin.h +++ b/winsup/cygwin/include/sys/cygwin.h @@ -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 */ diff --git a/winsup/cygwin/init.cc b/winsup/cygwin/init.cc index 3d7a91c50..a0d34f51a 100644 --- a/winsup/cygwin/init.cc +++ b/winsup/cygwin/init.cc @@ -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: -- cgit v1.2.3