* win32-low.c (GETPROCADDRESS): Define.
authorPedro Alves <palves@redhat.com>
Thu, 10 May 2007 20:39:18 +0000 (20:39 +0000)
committerPedro Alves <palves@redhat.com>
Thu, 10 May 2007 20:39:18 +0000 (20:39 +0000)
(winapi_DebugActiveProcessStop): Add WINAPI.  typedef as pointer.
(winapi_DebugSetProcessKillOnExit): Likewise.
(win32_create_inferior): Force usage of ansi CreateProcessA.
(win32_attach): Use GETPROCADDRESS.
(win32_detach): Likewise.

gdb/gdbserver/ChangeLog
gdb/gdbserver/win32-low.c

index ef79d0e1353126404b6d4615dfe92fae73780ac4..b36dcfb156089bf4c859fd2c183a862d813b67e4 100644 (file)
@@ -1,3 +1,12 @@
+2007-05-10  Pedro Alves  <pedro_alves@portugalmail.pt>
+
+       * win32-low.c (GETPROCADDRESS): Define.
+       (winapi_DebugActiveProcessStop): Add WINAPI.  typedef as pointer.
+       (winapi_DebugSetProcessKillOnExit): Likewise.
+       (win32_create_inferior): Force usage of ansi CreateProcessA.
+       (win32_attach): Use GETPROCADDRESS.
+       (win32_detach): Likewise.
+
 2007-05-10  Pedro Alves  <pedro_alves@portugalmail.pt>
 
        * win32-low.c (win32_wait): Don't use WSTOPSIG.
index a0380ca1bac60bc4657bc8ee1340b060644527cd..680cafea182ff9da9a2f373a60a555a413642d4c 100644 (file)
 #define COUNTOF(STR) (sizeof (STR) / sizeof ((STR)[0]))
 #endif
 
+#ifdef _WIN32_WCE
+# define GETPROCADDRESS(DLL, PROC) \
+  ((winapi_ ## PROC) GetProcAddress (DLL, TEXT (#PROC)))
+#else
+# define GETPROCADDRESS(DLL, PROC) \
+  ((winapi_ ## PROC) GetProcAddress (DLL, #PROC))
+#endif
+
 int using_threads = 1;
 
 /* Globals.  */
@@ -70,8 +78,8 @@ static int debug_registers_used = 0;
 
 #define NUM_REGS (the_low_target.num_regs)
 
-typedef BOOL winapi_DebugActiveProcessStop (DWORD dwProcessId);
-typedef BOOL winapi_DebugSetProcessKillOnExit (BOOL KillOnExit);
+typedef BOOL WINAPI (*winapi_DebugActiveProcessStop) (DWORD dwProcessId);
+typedef BOOL WINAPI (*winapi_DebugSetProcessKillOnExit) (BOOL KillOnExit);
 
 #ifndef CONTEXT_EXTENDED_REGISTERS
 #define CONTEXT_EXTENDED_REGISTERS 0
@@ -462,7 +470,7 @@ win32_create_inferior (char *program, char **program_args)
   int argc;
   PROCESS_INFORMATION pi;
 #ifndef __MINGW32CE__
-  STARTUPINFO si = { sizeof (STARTUPINFO) };
+  STARTUPINFOA si = { sizeof (STARTUPINFOA) };
   char *winenv = NULL;
 #else
   wchar_t *wargs, *wprogram;
@@ -523,16 +531,16 @@ win32_create_inferior (char *program, char **program_args)
                         NULL,     /* start info, not supported */
                         &pi);     /* proc info */
 #else
-  ret = CreateProcess (program, /* image name */
-                      args,    /* command line */
-                      NULL,    /* security */
-                      NULL,    /* thread */
-                      TRUE,    /* inherit handles */
-                      flags,   /* start flags */
-                      winenv,  /* environment */
-                      NULL,    /* current directory */
-                      &si,     /* start info */
-                      &pi);    /* proc info */
+  ret = CreateProcessA (program,  /* image name */
+                       args,     /* command line */
+                       NULL,     /* security */
+                       NULL,     /* thread */
+                       TRUE,     /* inherit handles */
+                       flags,    /* start flags */
+                       winenv,   /* environment */
+                       NULL,     /* current directory */
+                       &si,      /* start info */
+                       &pi);     /* proc info */
 #endif
 
 #ifndef USE_WIN32API
@@ -573,18 +581,15 @@ static int
 win32_attach (unsigned long pid)
 {
   int res = 0;
-  winapi_DebugActiveProcessStop *DebugActiveProcessStop = NULL;
-
-  winapi_DebugSetProcessKillOnExit *DebugSetProcessKillOnExit = NULL;
+  winapi_DebugActiveProcessStop DebugActiveProcessStop = NULL;
+  winapi_DebugSetProcessKillOnExit DebugSetProcessKillOnExit = NULL;
 #ifdef _WIN32_WCE
   HMODULE dll = GetModuleHandle (_T("COREDLL.DLL"));
 #else
   HMODULE dll = GetModuleHandle (_T("KERNEL32.DLL"));
 #endif
-  DebugActiveProcessStop = (winapi_DebugActiveProcessStop *)
-    GetProcAddress (dll, _T("DebugActiveProcessStop"));
-  DebugSetProcessKillOnExit = (winapi_DebugSetProcessKillOnExit *)
-    GetProcAddress (dll, _T("DebugSetProcessKillOnExit"));
+  DebugActiveProcessStop = GETPROCADDRESS (dll, DebugActiveProcessStop);
+  DebugSetProcessKillOnExit = GETPROCADDRESS (dll, DebugSetProcessKillOnExit);
 
   res = DebugActiveProcess (pid) ? 1 : 0;
 
@@ -686,17 +691,15 @@ win32_kill (void)
 static void
 win32_detach (void)
 {
-  winapi_DebugActiveProcessStop *DebugActiveProcessStop = NULL;
-  winapi_DebugSetProcessKillOnExit *DebugSetProcessKillOnExit = NULL;
+  winapi_DebugActiveProcessStop DebugActiveProcessStop = NULL;
+  winapi_DebugSetProcessKillOnExit DebugSetProcessKillOnExit = NULL;
 #ifdef _WIN32_WCE
   HMODULE dll = GetModuleHandle (_T("COREDLL.DLL"));
 #else
   HMODULE dll = GetModuleHandle (_T("KERNEL32.DLL"));
 #endif
-  DebugActiveProcessStop = (winapi_DebugActiveProcessStop *)
-    GetProcAddress (dll, _T("DebugActiveProcessStop"));
-  DebugSetProcessKillOnExit = (winapi_DebugSetProcessKillOnExit *)
-    GetProcAddress (dll, _T("DebugSetProcessKillOnExit"));
+  DebugActiveProcessStop = GETPROCADDRESS (dll, DebugActiveProcessStop);
+  DebugSetProcessKillOnExit = GETPROCADDRESS (dll, DebugSetProcessKillOnExit);
 
   if (DebugSetProcessKillOnExit != NULL)
     DebugSetProcessKillOnExit (FALSE);