* [RFA] [1/4] Mingw64 gdbserver support
@ 2010-04-19 22:55 Pierre Muller
2010-04-19 23:14 ` Pedro Alves
0 siblings, 1 reply; 4+ messages in thread
From: Pierre Muller @ 2010-04-19 22:55 UTC (permalink / raw)
To: gdb-patches; +Cc: 'Pedro Alves'
It would be nice if someone could check that this
patch works for mingwce targets, I cannot do this myself.
All changes are done to allow compilation both for 32-bit and 64-bit
without warnings.
Pierre Muller
Pascal language support maintainer for GDB
gdbserver ChangeLog entry:
2010-04-19 Pierre Muller <muller@ics.u-strasbg.fr>
* win32-low.c: Adapt to support also 64-bit architecture.
(child_xfer_memory): Use uintptr_t type for local variable `addr'.
(get_image_name): Use SIZE_T type for local variable `done'.
(psapi_get_dll_name): Use uintptr_t type for parameter
`BaseAddress'.
(toolhelp_get_dll_name): Idem.
(handle_load_dll): Use uintptr_t type for local variable
`load_addr'.
(handle_unload_dll): Use unitptr_t typecast to avoid warning.
(handle_exception): Use phex_nz to avoid warning.
(win32_wait): Remove unused local variable `process'.
Index: gdbserver/win32-low.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbserver/win32-low.c,v
retrieving revision 1.46
diff -u -p -r1.46 win32-low.c
--- gdbserver/win32-low.c 16 Apr 2010 07:49:37 -0000 1.46
+++ gdbserver/win32-low.c 17 Apr 2010 22:08:36 -0000
@@ -280,7 +280,7 @@ child_xfer_memory (CORE_ADDR memaddr, ch
int write, struct target_ops *target)
{
SIZE_T done;
- long addr = (long) memaddr;
+ uintptr_t addr = (uintptr_t) memaddr;
if (write)
{
@@ -941,7 +941,7 @@ get_image_name (HANDLE h, void *address,
char *address_ptr;
int len = 0;
char b[2];
- DWORD done;
+ SIZE_T done;
/* Attempt to read the name of the dll that was detected.
This is documented to work only when actively debugging
@@ -1019,7 +1019,7 @@ load_psapi (void)
}
static int
-psapi_get_dll_name (DWORD BaseAddress, char *dll_name_ret)
+psapi_get_dll_name (uintptr_t BaseAddress, char *dll_name_ret)
{
DWORD len;
MODULEINFO mi;
@@ -1064,7 +1064,7 @@ psapi_get_dll_name (DWORD BaseAddress, c
(int) err, strwinerror (err));
}
- if ((DWORD) (mi.lpBaseOfDll) == BaseAddress)
+ if ((uintptr_t) (mi.lpBaseOfDll) == BaseAddress)
{
len = (*win32_GetModuleFileNameExA) (current_process_handle,
DllHandle[i],
@@ -1134,7 +1134,7 @@ load_toolhelp (void)
}
static int
-toolhelp_get_dll_name (DWORD BaseAddress, char *dll_name_ret)
+toolhelp_get_dll_name (uintptr_t BaseAddress, char *dll_name_ret)
{
HANDLE snapshot_module;
MODULEENTRY32 modEntry = { sizeof (MODULEENTRY32) };
@@ -1151,7 +1151,7 @@ toolhelp_get_dll_name (DWORD BaseAddress
/* Ignore the first module, which is the exe. */
if (win32_Module32First (snapshot_module, &modEntry))
while (win32_Module32Next (snapshot_module, &modEntry))
- if ((DWORD) modEntry.modBaseAddr == BaseAddress)
+ if ((uintptr_t) modEntry.modBaseAddr == BaseAddress)
{
#ifdef UNICODE
wcstombs (dll_name_ret, modEntry.szExePath, MAX_PATH + 1);
@@ -1176,21 +1176,21 @@ handle_load_dll (void)
LOAD_DLL_DEBUG_INFO *event = ¤t_event.u.LoadDll;
char dll_buf[MAX_PATH + 1];
char *dll_name = NULL;
- DWORD load_addr;
+ uintptr_t load_addr;
dll_buf[0] = dll_buf[sizeof (dll_buf) - 1] = '\0';
/* Windows does not report the image name of the dlls in the debug
event on attaches. We resort to iterating over the list of
loaded dlls looking for a match by image base. */
- if (!psapi_get_dll_name ((DWORD) event->lpBaseOfDll, dll_buf))
+ if (!psapi_get_dll_name ((uintptr_t) event->lpBaseOfDll, dll_buf))
{
if (!server_waiting)
/* On some versions of Windows and Windows CE, we can't create
toolhelp snapshots while the inferior is stopped in a
LOAD_DLL_DEBUG_EVENT due to a dll load, but we can while
Windows is reporting the already loaded dlls. */
- toolhelp_get_dll_name ((DWORD) event->lpBaseOfDll, dll_buf);
+ toolhelp_get_dll_name ((uintptr_t) event->lpBaseOfDll, dll_buf);
}
dll_name = dll_buf;
@@ -1205,7 +1205,7 @@ handle_load_dll (void)
the offset from 0 of the first byte in an image - because
of the file header and the section alignment. */
- load_addr = (DWORD) event->lpBaseOfDll + 0x1000;
+ load_addr = (uintptr_t) event->lpBaseOfDll + 0x1000;
win32_add_one_solib (dll_name, load_addr);
}
@@ -1213,7 +1213,7 @@ static void
handle_unload_dll (void)
{
CORE_ADDR load_addr =
- (CORE_ADDR) (DWORD) current_event.u.UnloadDll.lpBaseOfDll;
+ (CORE_ADDR) (uintptr_t) current_event.u.UnloadDll.lpBaseOfDll;
load_addr += 0x1000;
unloaded_dll (NULL, load_addr);
}
@@ -1314,10 +1314,10 @@ handle_exception (struct target_waitstat
ourstatus->kind = TARGET_WAITKIND_SPURIOUS;
return;
}
- OUTMSG2 (("gdbserver: unknown target exception 0x%08lx at 0x%08lx",
+ OUTMSG2 (("gdbserver: unknown target exception 0x%08lx at 0x%s",
current_event.u.Exception.ExceptionRecord.ExceptionCode,
- (DWORD) current_event.u.Exception.ExceptionRecord.
- ExceptionAddress));
+ phex_nz ((uintptr_t)
current_event.u.Exception.ExceptionRecord.
+ ExceptionAddress, sizeof(uintptr_t))));
ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN;
break;
}
@@ -1577,7 +1577,6 @@ get_child_debug_event (struct target_wai
static ptid_t
win32_wait (ptid_t ptid, struct target_waitstatus *ourstatus, int options)
{
- struct process_info *process;
struct regcache *regcache;
while (1)
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [RFA] [1/4] Mingw64 gdbserver support 2010-04-19 22:55 [RFA] [1/4] Mingw64 gdbserver support Pierre Muller @ 2010-04-19 23:14 ` Pedro Alves 2010-04-19 23:46 ` Pierre Muller 0 siblings, 1 reply; 4+ messages in thread From: Pedro Alves @ 2010-04-19 23:14 UTC (permalink / raw) To: Pierre Muller; +Cc: gdb-patches On Monday 19 April 2010 23:55:57, Pierre Muller wrote: > It would be nice if someone could check that this > patch works for mingwce targets, I cannot do this myself. Don't worry about it. I'll do that after the patch is applied, if noone beats me to it. It may take me a while, but I'll surely test on CE before the next release. > gdbserver ChangeLog entry: > > 2010-04-19 Pierre Muller <muller@ics.u-strasbg.fr> > > * win32-low.c: Adapt to support also 64-bit architecture. > (child_xfer_memory): Use uintptr_t type for local variable `addr'. > (get_image_name): Use SIZE_T type for local variable `done'. > (psapi_get_dll_name): Use uintptr_t type for parameter > `BaseAddress'. > (toolhelp_get_dll_name): Idem. > (handle_load_dll): Use uintptr_t type for local variable > `load_addr'. > (handle_unload_dll): Use unitptr_t typecast to avoid warning. Typo: unitptr_t. > (handle_exception): Use phex_nz to avoid warning. > (win32_wait): Remove unused local variable `process'. > > Index: gdbserver/win32-low.c > =================================================================== > RCS file: /cvs/src/src/gdb/gdbserver/win32-low.c,v > retrieving revision 1.46 > diff -u -p -r1.46 win32-low.c > --- gdbserver/win32-low.c 16 Apr 2010 07:49:37 -0000 1.46 > +++ gdbserver/win32-low.c 17 Apr 2010 22:08:36 -0000 > @@ -280,7 +280,7 @@ child_xfer_memory (CORE_ADDR memaddr, ch > int write, struct target_ops *target) > { > SIZE_T done; > - long addr = (long) memaddr; > + uintptr_t addr = (uintptr_t) memaddr; > > if (write) > { > @@ -941,7 +941,7 @@ get_image_name (HANDLE h, void *address, > char *address_ptr; > int len = 0; > char b[2]; > - DWORD done; > + SIZE_T done; > > /* Attempt to read the name of the dll that was detected. > This is documented to work only when actively debugging > @@ -1019,7 +1019,7 @@ load_psapi (void) > } > > static int > -psapi_get_dll_name (DWORD BaseAddress, char *dll_name_ret) > +psapi_get_dll_name (uintptr_t BaseAddress, char *dll_name_ret) Make this one above, > @@ -1134,7 +1134,7 @@ load_toolhelp (void) > } > > static int > -toolhelp_get_dll_name (DWORD BaseAddress, char *dll_name_ret) > +toolhelp_get_dll_name (uintptr_t BaseAddress, char *dll_name_ret) and this one, take an LPVOID/void* instead, like the equivalent gdb/windows-nat.c code, and most of the casts disappear. Again, please remember that gdb/windows-nat.c has all these problems fixed already. Remember to take a look there.. > { > HANDLE snapshot_module; > MODULEENTRY32 modEntry = { sizeof (MODULEENTRY32) }; > @@ -1151,7 +1151,7 @@ toolhelp_get_dll_name (DWORD BaseAddress > /* Ignore the first module, which is the exe. */ > if (win32_Module32First (snapshot_module, &modEntry)) > while (win32_Module32Next (snapshot_module, &modEntry)) > - if ((DWORD) modEntry.modBaseAddr == BaseAddress) > + if ((uintptr_t) modEntry.modBaseAddr == BaseAddress) ... like this one... > { > #ifdef UNICODE > wcstombs (dll_name_ret, modEntry.szExePath, MAX_PATH + 1); > @@ -1176,21 +1176,21 @@ handle_load_dll (void) > LOAD_DLL_DEBUG_INFO *event = ¤t_event.u.LoadDll; > char dll_buf[MAX_PATH + 1]; > char *dll_name = NULL; > - DWORD load_addr; > + uintptr_t load_addr; > > dll_buf[0] = dll_buf[sizeof (dll_buf) - 1] = '\0'; > > /* Windows does not report the image name of the dlls in the debug > event on attaches. We resort to iterating over the list of > loaded dlls looking for a match by image base. */ > - if (!psapi_get_dll_name ((DWORD) event->lpBaseOfDll, dll_buf)) > + if (!psapi_get_dll_name ((uintptr_t) event->lpBaseOfDll, dll_buf)) and this one... > { > if (!server_waiting) > /* On some versions of Windows and Windows CE, we can't create > toolhelp snapshots while the inferior is stopped in a > LOAD_DLL_DEBUG_EVENT due to a dll load, but we can while > Windows is reporting the already loaded dlls. */ > - toolhelp_get_dll_name ((DWORD) event->lpBaseOfDll, dll_buf); > + toolhelp_get_dll_name ((uintptr_t) event->lpBaseOfDll, dll_buf); and this one. > } > > dll_name = dll_buf; > @@ -1205,7 +1205,7 @@ handle_load_dll (void) > the offset from 0 of the first byte in an image - because > of the file header and the section alignment. */ > > - load_addr = (DWORD) event->lpBaseOfDll + 0x1000; > + load_addr = (uintptr_t) event->lpBaseOfDll + 0x1000; > win32_add_one_solib (dll_name, load_addr); > } > > @@ -1213,7 +1213,7 @@ static void > handle_unload_dll (void) > { > CORE_ADDR load_addr = > - (CORE_ADDR) (DWORD) current_event.u.UnloadDll.lpBaseOfDll; > + (CORE_ADDR) (uintptr_t) current_event.u.UnloadDll.lpBaseOfDll; > load_addr += 0x1000; > unloaded_dll (NULL, load_addr); > } > @@ -1314,10 +1314,10 @@ handle_exception (struct target_waitstat > ourstatus->kind = TARGET_WAITKIND_SPURIOUS; > return; > } > - OUTMSG2 (("gdbserver: unknown target exception 0x%08lx at 0x%08lx", > + OUTMSG2 (("gdbserver: unknown target exception 0x%08lx at 0x%s", > current_event.u.Exception.ExceptionRecord.ExceptionCode, > - (DWORD) current_event.u.Exception.ExceptionRecord. > - ExceptionAddress)); > + phex_nz ((uintptr_t) > current_event.u.Exception.ExceptionRecord. > + ExceptionAddress, sizeof(uintptr_t)))); Missing space before parens. > ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN; > break; > } > @@ -1577,7 +1577,6 @@ get_child_debug_event (struct target_wai > static ptid_t > win32_wait (ptid_t ptid, struct target_waitstatus *ourstatus, int options) > { > - struct process_info *process; > struct regcache *regcache; > > while (1) > -- Pedro Alves ^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [RFA] [1/4] Mingw64 gdbserver support 2010-04-19 23:14 ` Pedro Alves @ 2010-04-19 23:46 ` Pierre Muller 2010-04-19 23:57 ` Pedro Alves 0 siblings, 1 reply; 4+ messages in thread From: Pierre Muller @ 2010-04-19 23:46 UTC (permalink / raw) To: 'Pedro Alves'; +Cc: gdb-patches > -----Message d'origine----- > De : Pedro Alves [mailto:pedro@codesourcery.com] > Envoyé : Tuesday, April 20, 2010 1:14 AM > À : Pierre Muller > Cc : gdb-patches@sourceware.org > Objet : Re: [RFA] [1/4] Mingw64 gdbserver support > > On Monday 19 April 2010 23:55:57, Pierre Muller wrote: > > It would be nice if someone could check that this > > patch works for mingwce targets, I cannot do this myself. > > Don't worry about it. I'll do that after the patch is applied, if > noone beats me to it. It may take me a while, but I'll surely test > on CE before the next release. OK, great! > > gdbserver ChangeLog entry: > > > > 2010-04-19 Pierre Muller <muller@ics.u-strasbg.fr> > > > > * win32-low.c: Adapt to support also 64-bit architecture. > > (child_xfer_memory): Use uintptr_t type for local variable > `addr'. > > (get_image_name): Use SIZE_T type for local variable `done'. > > (psapi_get_dll_name): Use uintptr_t type for parameter > > `BaseAddress'. > > (toolhelp_get_dll_name): Idem. > > (handle_load_dll): Use uintptr_t type for local variable > > `load_addr'. > > (handle_unload_dll): Use unitptr_t typecast to avoid warning. > > Typo: unitptr_t. Fixed. > > (handle_exception): Use phex_nz to avoid warning. > > (win32_wait): Remove unused local variable `process'. > > > > Index: gdbserver/win32-low.c > > =================================================================== > > RCS file: /cvs/src/src/gdb/gdbserver/win32-low.c,v > > retrieving revision 1.46 > > diff -u -p -r1.46 win32-low.c > > --- gdbserver/win32-low.c 16 Apr 2010 07:49:37 -0000 1.46 > > +++ gdbserver/win32-low.c 17 Apr 2010 22:08:36 -0000 > > @@ -280,7 +280,7 @@ child_xfer_memory (CORE_ADDR memaddr, ch > > int write, struct target_ops *target) > > { > > SIZE_T done; > > - long addr = (long) memaddr; > > + uintptr_t addr = (uintptr_t) memaddr; > > > > if (write) > > { > > @@ -941,7 +941,7 @@ get_image_name (HANDLE h, void *address, > > char *address_ptr; > > int len = 0; > > char b[2]; > > - DWORD done; > > + SIZE_T done; > > > > /* Attempt to read the name of the dll that was detected. > > This is documented to work only when actively debugging > > @@ -1019,7 +1019,7 @@ load_psapi (void) > > } > > > > static int > > -psapi_get_dll_name (DWORD BaseAddress, char *dll_name_ret) > > +psapi_get_dll_name (uintptr_t BaseAddress, char *dll_name_ret) > > Make this one above, > > > @@ -1134,7 +1134,7 @@ load_toolhelp (void) > > } > > > > static int > > -toolhelp_get_dll_name (DWORD BaseAddress, char *dll_name_ret) > > +toolhelp_get_dll_name (uintptr_t BaseAddress, char *dll_name_ret) > > and this one, take an LPVOID/void* instead, like the > equivalent gdb/windows-nat.c code, and most of the casts > disappear. Again, please remember that gdb/windows-nat.c has all > these problems fixed already. Remember to take a look there.. I used LPVOID as you suggested. > > { > > HANDLE snapshot_module; > > MODULEENTRY32 modEntry = { sizeof (MODULEENTRY32) }; > > @@ -1151,7 +1151,7 @@ toolhelp_get_dll_name (DWORD BaseAddress > > /* Ignore the first module, which is the exe. */ > > if (win32_Module32First (snapshot_module, &modEntry)) > > while (win32_Module32Next (snapshot_module, &modEntry)) > > - if ((DWORD) modEntry.modBaseAddr == BaseAddress) > > + if ((uintptr_t) modEntry.modBaseAddr == BaseAddress) > > ... like this one... > > > { > > #ifdef UNICODE > > wcstombs (dll_name_ret, modEntry.szExePath, MAX_PATH + 1); > > @@ -1176,21 +1176,21 @@ handle_load_dll (void) > > LOAD_DLL_DEBUG_INFO *event = ¤t_event.u.LoadDll; > > char dll_buf[MAX_PATH + 1]; > > char *dll_name = NULL; > > - DWORD load_addr; > > + uintptr_t load_addr; > > > > dll_buf[0] = dll_buf[sizeof (dll_buf) - 1] = '\0'; > > > > /* Windows does not report the image name of the dlls in the debug > > event on attaches. We resort to iterating over the list of > > loaded dlls looking for a match by image base. */ > > - if (!psapi_get_dll_name ((DWORD) event->lpBaseOfDll, dll_buf)) > > + if (!psapi_get_dll_name ((uintptr_t) event->lpBaseOfDll, dll_buf)) > > and this one... > > > { > > if (!server_waiting) > > /* On some versions of Windows and Windows CE, we can't > create > > toolhelp snapshots while the inferior is stopped in a > > LOAD_DLL_DEBUG_EVENT due to a dll load, but we can while > > Windows is reporting the already loaded dlls. */ > > - toolhelp_get_dll_name ((DWORD) event->lpBaseOfDll, dll_buf); > > + toolhelp_get_dll_name ((uintptr_t) event->lpBaseOfDll, > dll_buf); > > and this one. > > > } > > > > dll_name = dll_buf; > > @@ -1205,7 +1205,7 @@ handle_load_dll (void) > > the offset from 0 of the first byte in an image - because > > of the file header and the section alignment. */ > > > > - load_addr = (DWORD) event->lpBaseOfDll + 0x1000; > > + load_addr = (uintptr_t) event->lpBaseOfDll + 0x1000; > > win32_add_one_solib (dll_name, load_addr); > > } > > > > @@ -1213,7 +1213,7 @@ static void > > handle_unload_dll (void) > > { > > CORE_ADDR load_addr = > > - (CORE_ADDR) (DWORD) current_event.u.UnloadDll.lpBaseOfDll; > > + (CORE_ADDR) (uintptr_t) > current_event.u.UnloadDll.lpBaseOfDll; > > load_addr += 0x1000; > > unloaded_dll (NULL, load_addr); > > } > > @@ -1314,10 +1314,10 @@ handle_exception (struct target_waitstat > > ourstatus->kind = TARGET_WAITKIND_SPURIOUS; > > return; > > } > > - OUTMSG2 (("gdbserver: unknown target exception 0x%08lx at > 0x%08lx", > > + OUTMSG2 (("gdbserver: unknown target exception 0x%08lx at > 0x%s", > > > current_event.u.Exception.ExceptionRecord.ExceptionCode, > > - (DWORD) current_event.u.Exception.ExceptionRecord. > > - ExceptionAddress)); > > + phex_nz ((uintptr_t) > > current_event.u.Exception.ExceptionRecord. > > + ExceptionAddress, sizeof(uintptr_t)))); > > Missing space before parens. Fixed. > > ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN; > > break; > > } > > @@ -1577,7 +1577,6 @@ get_child_debug_event (struct target_wai > > static ptid_t > > win32_wait (ptid_t ptid, struct target_waitstatus *ourstatus, int > options) > > { > > - struct process_info *process; > > struct regcache *regcache; > > > > while (1) > > New version below. Pierre gdbserver ChangeLog entry: 2010-04-19 Pierre Muller <muller@ics.u-strasbg.fr> * win32-low.c: Adapt to support also 64-bit architecture. (child_xfer_memory): Use uintptr_t type for local variable `addr'. (get_image_name): Use SIZE_T type for local variable `done'. (psapi_get_dll_name): Use LPVOID type for parameter `BaseAddress'. (toolhelp_get_dll_name): Idem. (handle_load_dll): Use CORE_ADDR type for local variable `load_addr'. Use uintptr_t typecast to avoid warning. (handle_unload_dll): Use uintptr_t typecast to avoid warning. (handle_exception): Use phex_nz to avoid warning. (win32_wait): Remove unused local variable `process'. Index: gdbserver/win32-low.c =================================================================== RCS file: /cvs/src/src/gdb/gdbserver/win32-low.c,v retrieving revision 1.46 diff -u -p -r1.46 win32-low.c --- gdbserver/win32-low.c 16 Apr 2010 07:49:37 -0000 1.46 +++ gdbserver/win32-low.c 19 Apr 2010 23:30:05 -0000 @@ -280,7 +280,7 @@ child_xfer_memory (CORE_ADDR memaddr, ch int write, struct target_ops *target) { SIZE_T done; - long addr = (long) memaddr; + uintptr_t addr = (uintptr_t) memaddr; if (write) { @@ -941,7 +941,7 @@ get_image_name (HANDLE h, void *address, char *address_ptr; int len = 0; char b[2]; - DWORD done; + SIZE_T done; /* Attempt to read the name of the dll that was detected. This is documented to work only when actively debugging @@ -1019,7 +1019,7 @@ load_psapi (void) } static int -psapi_get_dll_name (DWORD BaseAddress, char *dll_name_ret) +psapi_get_dll_name (LPVOID BaseAddress, char *dll_name_ret) { DWORD len; MODULEINFO mi; @@ -1064,7 +1064,7 @@ psapi_get_dll_name (DWORD BaseAddress, c (int) err, strwinerror (err)); } - if ((DWORD) (mi.lpBaseOfDll) == BaseAddress) + if (mi.lpBaseOfDll == BaseAddress) { len = (*win32_GetModuleFileNameExA) (current_process_handle, DllHandle[i], @@ -1134,7 +1134,7 @@ load_toolhelp (void) } static int -toolhelp_get_dll_name (DWORD BaseAddress, char *dll_name_ret) +toolhelp_get_dll_name (LPVOID BaseAddress, char *dll_name_ret) { HANDLE snapshot_module; MODULEENTRY32 modEntry = { sizeof (MODULEENTRY32) }; @@ -1151,7 +1151,7 @@ toolhelp_get_dll_name (DWORD BaseAddress /* Ignore the first module, which is the exe. */ if (win32_Module32First (snapshot_module, &modEntry)) while (win32_Module32Next (snapshot_module, &modEntry)) - if ((DWORD) modEntry.modBaseAddr == BaseAddress) + if (modEntry.modBaseAddr == BaseAddress) { #ifdef UNICODE wcstombs (dll_name_ret, modEntry.szExePath, MAX_PATH + 1); @@ -1176,21 +1176,21 @@ handle_load_dll (void) LOAD_DLL_DEBUG_INFO *event = ¤t_event.u.LoadDll; char dll_buf[MAX_PATH + 1]; char *dll_name = NULL; - DWORD load_addr; + CORE_ADDR load_addr; dll_buf[0] = dll_buf[sizeof (dll_buf) - 1] = '\0'; /* Windows does not report the image name of the dlls in the debug event on attaches. We resort to iterating over the list of loaded dlls looking for a match by image base. */ - if (!psapi_get_dll_name ((DWORD) event->lpBaseOfDll, dll_buf)) + if (!psapi_get_dll_name (event->lpBaseOfDll, dll_buf)) { if (!server_waiting) /* On some versions of Windows and Windows CE, we can't create toolhelp snapshots while the inferior is stopped in a LOAD_DLL_DEBUG_EVENT due to a dll load, but we can while Windows is reporting the already loaded dlls. */ - toolhelp_get_dll_name ((DWORD) event->lpBaseOfDll, dll_buf); + toolhelp_get_dll_name (event->lpBaseOfDll, dll_buf); } dll_name = dll_buf; @@ -1205,7 +1205,7 @@ handle_load_dll (void) the offset from 0 of the first byte in an image - because of the file header and the section alignment. */ - load_addr = (DWORD) event->lpBaseOfDll + 0x1000; + load_addr = (CORE_ADDR) (uintptr_t) event->lpBaseOfDll + 0x1000; win32_add_one_solib (dll_name, load_addr); } @@ -1213,7 +1213,7 @@ static void handle_unload_dll (void) { CORE_ADDR load_addr = - (CORE_ADDR) (DWORD) current_event.u.UnloadDll.lpBaseOfDll; + (CORE_ADDR) (uintptr_t) current_event.u.UnloadDll.lpBaseOfDll; load_addr += 0x1000; unloaded_dll (NULL, load_addr); } @@ -1314,10 +1314,10 @@ handle_exception (struct target_waitstat ourstatus->kind = TARGET_WAITKIND_SPURIOUS; return; } - OUTMSG2 (("gdbserver: unknown target exception 0x%08lx at 0x%08lx", + OUTMSG2 (("gdbserver: unknown target exception 0x%08lx at 0x%s", current_event.u.Exception.ExceptionRecord.ExceptionCode, - (DWORD) current_event.u.Exception.ExceptionRecord. - ExceptionAddress)); + phex_nz ((uintptr_t) current_event.u.Exception.ExceptionRecord. + ExceptionAddress, sizeof (uintptr_t)))); ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN; break; } @@ -1577,7 +1577,6 @@ get_child_debug_event (struct target_wai static ptid_t win32_wait (ptid_t ptid, struct target_waitstatus *ourstatus, int options) { - struct process_info *process; struct regcache *regcache; while (1) ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [RFA] [1/4] Mingw64 gdbserver support 2010-04-19 23:46 ` Pierre Muller @ 2010-04-19 23:57 ` Pedro Alves 0 siblings, 0 replies; 4+ messages in thread From: Pedro Alves @ 2010-04-19 23:57 UTC (permalink / raw) To: Pierre Muller; +Cc: gdb-patches On Tuesday 20 April 2010 00:46:18, Pierre Muller wrote: > 2010-04-19 Pierre Muller <muller@ics.u-strasbg.fr> > > * win32-low.c: Adapt to support also 64-bit architecture. > (child_xfer_memory): Use uintptr_t type for local variable `addr'. > (get_image_name): Use SIZE_T type for local variable `done'. > (psapi_get_dll_name): Use LPVOID type for parameter `BaseAddress'. > (toolhelp_get_dll_name): Idem. > (handle_load_dll): Use CORE_ADDR type for local variable > `load_addr'. > Use uintptr_t typecast to avoid warning. > (handle_unload_dll): Use uintptr_t typecast to avoid warning. > (handle_exception): Use phex_nz to avoid warning. > (win32_wait): Remove unused local variable `process'. Okay. -- Pedro Alves ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-04-19 23:57 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2010-04-19 22:55 [RFA] [1/4] Mingw64 gdbserver support Pierre Muller 2010-04-19 23:14 ` Pedro Alves 2010-04-19 23:46 ` Pierre Muller 2010-04-19 23:57 ` Pedro Alves
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox