This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
PING Can someone please review this patch? (Win64 fails to build for a week.) On Mon, Jul 12, 2010 at 2:51 PM, Ozkan Sezer <sezeroz@gmail.com> wrote: > On Mon, Jul 12, 2010 at 1:14 PM, Ozkan Sezer <sezeroz@gmail.com> wrote: >> Hi: >> >> The current gdb cvs fails building for win64: >> >> cc1: warnings being treated as errors >> ../../gdb-cvs/gdb/target.c: In function >> 'debug_to_can_accel_watchpoint_condition': >> ../../gdb-cvs/gdb/target.c:3335: error: cast from pointer to integer >> of different size >> ../../gdb-cvs/gdb/target.c: In function 'debug_to_insert_watchpoint': >> ../../gdb-cvs/gdb/target.c:3424: error: cast from pointer to integer >> of different size >> ../../gdb-cvs/gdb/target.c: In function 'debug_to_remove_watchpoint': >> ../../gdb-cvs/gdb/target.c:3439: error: cast from pointer to integer >> of different size >> >> The warnings are due to the unsigned long casts in gdb/target.c >> with assumption of LP64 behavior which isn't true for wih64 (LLP64). >> There are even more unsigned long casts there which aren't >> causing warnings but still truncating the value. >> >> I thought that it would be best to solve this using inttypes.h macros. >> An initial patch is attached. Since gdb already uses gnulib for stdint, >> it can also use inttypes. >> >> In the patch, I also touched gdbserver/server.c in order to fix >> another format string issue with windows: >> >> ../../../gdb-cvs/gdb/gdbserver/server.c: In function 'handle_query': >> ../../../gdb-cvs/gdb/gdbserver/server.c:1542: warning: unknown >> conversion type character 'l' in format >> ../../../gdb-cvs/gdb/gdbserver/server.c:1542: warning: too many >> arguments for format >> ../../../gdb-cvs/gdb/gdbserver/server.c:1566: warning: unknown >> conversion type character 'l' in format >> ../../../gdb-cvs/gdb/gdbserver/server.c:1566: warning: too many >> arguments for format >> >> These warnings are due to the fact that M$ doesn't support %ll. >> Fixed by using %I64d with _WIN32 ifdefs. >> >> Patch was test by compiling gdb for x86_64-linux and for x86_64-w64-mingw32 >> where both targets already provide inttypes.h. >> >> ? ? ? ?* target.c: Include inttypes.h. >> ? ? ? ?(debug_to_insert_breakpoint): Remove unnecessary unsigned long casts >> ? ? ? ?from int type variables. For pointers, cast to uintptr_t instead of >> ? ? ? ?unsigned long and use the PRIuPTR macro from inttypes.h instead of %ld. >> ? ? ? ?(debug_to_remove_breakpoint): Likewise. >> ? ? ? ?(debug_to_can_use_hw_breakpoint): Likewise. >> ? ? ? ?(debug_to_region_ok_for_hw_watchpoint): Likewise. >> ? ? ? ?(debug_to_can_accel_watchpoint_condition): Likewise. >> ? ? ? ?(debug_to_stopped_by_watchpoint): Likewise. >> ? ? ? ?(debug_to_stopped_data_address): Likewise. >> ? ? ? ?(debug_to_watchpoint_addr_within_range): Likewise. >> ? ? ? ?(debug_to_insert_hw_breakpoint): Likewise. >> ? ? ? ?(debug_to_remove_hw_breakpoint): Likewise. >> ? ? ? ?(debug_to_insert_watchpoint): Likewise. >> ? ? ? ?(debug_to_remove_watchpoint): Likewise. >> >> ? ? ? ?gdbserver/server.c (handle_query): For windows, Use %I64d instead of >> ? ? ? ?%lld in the sprintf format string. >> >> Note: if this patch is OK'ed, someone with an experience with gnulib should >> import inttypes into gdb (I don't feel at home with gnulib.) >> >> Regards. >> >> -- >> Ozkan >> > > Just noticed that the patch had intptr_t (as a typo) instead of uintptr_t > in a few places. ?Fixed one attached. > > -- > Ozkan >
Attachment:
gdb_pformat.diff
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |