summaryrefslogtreecommitdiff
path: root/gdb/gdbserver
diff options
context:
space:
mode:
authorPedro Alves <pedro@codesourcery.com>2007-05-10 20:39:18 +0000
committerPedro Alves <pedro@codesourcery.com>2007-05-10 20:39:18 +0000
commit8f17434ae5bad798a83dbe79d539cd86bc492412 (patch)
treed4888fe273ed1cb1c2b3a5e655309a6a4c00e1bc /gdb/gdbserver
parent6c5588bf4e0d1a155ea1911a81911ac8fdd4c73d (diff)
downloadgdb-8f17434ae5bad798a83dbe79d539cd86bc492412.tar.gz
* 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')
-rw-r--r--gdb/gdbserver/ChangeLog9
-rw-r--r--gdb/gdbserver/win32-low.c55
2 files changed, 38 insertions, 26 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index ef79d0e1353..b36dcfb1560 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,5 +1,14 @@
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.
2007-03-30 Pedro Alves <pedro_alves@portugalmail.pt>
diff --git a/gdb/gdbserver/win32-low.c b/gdb/gdbserver/win32-low.c
index a0380ca1bac..680cafea182 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);