aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/win32-low.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2007-05-10 20:39:18 +0000
committerPedro Alves <palves@redhat.com>2007-05-10 20:39:18 +0000
commitbf9148316030a9f3f9b476d9049421864b6551cf (patch)
treebdacdfb7011253c19436504c7edc28503c8405b0 /gdb/gdbserver/win32-low.c
parent24d456905cb3363f926e2df764c590f86a008a18 (diff)
downloadgdb-bf9148316030a9f3f9b476d9049421864b6551cf.zip
gdb-bf9148316030a9f3f9b476d9049421864b6551cf.tar.gz
gdb-bf9148316030a9f3f9b476d9049421864b6551cf.tar.bz2
* 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.
Diffstat (limited to 'gdb/gdbserver/win32-low.c')
-rw-r--r--gdb/gdbserver/win32-low.c55
1 files changed, 29 insertions, 26 deletions
diff --git a/gdb/gdbserver/win32-low.c b/gdb/gdbserver/win32-low.c
index a0380ca..680cafe 100644
--- a/gdb/gdbserver/win32-low.c
+++ b/gdb/gdbserver/win32-low.c
@@ -55,6 +55,14 @@
#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);