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] |
On 17/03/2019 18:44, Simon Marchi wrote:
On 2019-03-17 05:48, Владимир Мартьянов wrote:There are a wrong format strings in function display_selector() in file windows-nat.c. This leads to build error using Cygwin on Windows. LDT_ENTRY.HighWord is a DWORD, which is unsigned long int, so the format specification should be for long int, not simply int. gdb/ChangeLog: 2019-03-17 Vladimir Martyanov <vilgeforce@gmail.com> PR gdb/24351 * windows-nat.c (display_selector): Format specifications fixed Patch and changelog files are attachedThanks, this LGTM. I altavista'ed and it looks like this is the right thing to do to print DWORDs. It also builds fine with i686-w64-mingw32-gcc and x86_64-w64-mingw32-gcc on Linux.
Thanks for looking at this. But did you test this with x86_64-pc-cygwin? It fails to build for me:
../../gdb/windows-nat.c: In function ‘int display_selector(HANDLE, DWORD)’: ../../gdb/windows-nat.c:1099:65: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘unsigned int’ [-Werror=format=] printf_filtered ("Unknown type 0x%lx",info.HighWord.Bits.Type); ~~~~~~~~~~~~~~~~~~~~~~~^ ../../gdb/windows-nat.c:1106:74: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘unsigned int’ [-Werror=format=] printf_filtered ("Priviledge level = %ld. ", info.HighWord.Bits.Dpl);
I believe this is because, unfortunately, DWORD is not long on 64-bit Cygwin, because that is LP64 (See [1]).
I think the only portable way to write this (short of introducing inttypes.h PRI_-style macros) is to explicitly cast DWORD type values to unsigned long or unsigned int, and use the appropriate format (e.g. see [2] for a similar patch I wrote for xserver)
Patch attached. [1] https://cygwin.com/faq.html#faq.programming.64bitporting[2] https://cgit.freedesktop.org/xorg/xserver/commit/?id=aa83c61f510121da20b56e8f7de700193f7d16b5
Attachment:
0001-Fix-format-specification-in-display_selector-again.patch
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |