This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PUSHED] Fix go32-nat.c build fallout from to_detach constification.
- From: Pedro Alves <palves at redhat dot com>
- To: Eli Zaretskii <eliz at gnu dot org>
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 15 Jan 2014 17:45:36 +0000
- Subject: Re: [PUSHED] Fix go32-nat.c build fallout from to_detach constification.
- Authentication-results: sourceware.org; auth=none
- References: <52D6B91C dot 2030402 at redhat dot com> <83d2jt418x dot fsf at gnu dot org>
On 01/15/2014 05:13 PM, Eli Zaretskii wrote:
> /* The DWP file version is stored in the hash table. Oh well. */
> if (dwp_file->cus->version != dwp_file->tus->version)
> {
> /* Technically speaking, we should try to limp along, but this is
> pretty bizarre. */
> error (_("Dwarf Error: DWP file CU version %d doesn't match" <<<<<<
> " TU version %d [in DWP file %s]"), <<<<<<<<<<<<<<<<<<<<<<
> dwp_file->cus->version, dwp_file->tus->version, dwp_name);
>
> So it really tries to format uint32_t values with %d.
Wait, we've been through this before.
See 21aa081e21da472e1e470d57770953c5e5c01477 (below).
So, that should be adjusted to do pulongest instead.
--------------
>From 21aa081e21da472e1e470d57770953c5e5c01477 Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Thu, 23 May 2013 18:31:29 +0000
Subject: [PATCH] dwarf2read.c: Don't assume uint32_t is unsigned int on all
hosts.
Building gdb on GNU/Linux, for --host=i586-pc-msdosdjgpp, I get:
../../src/gdb/dwarf2read.c: In function 'create_dwp_hash_table':
../../src/gdb/dwarf2read.c:8626:7: error: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'uint32_t' [-Werror=format]
../../src/gdb/dwarf2read.c:8632:7: error: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'uint32_t' [-Werror=format]
../../src/gdb/dwarf2read.c: In function 'create_dwo_in_dwp':
../../src/gdb/dwarf2read.c:8754:6: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'uint32_t' [-Werror=format]
../../src/gdb/dwarf2read.c: In function 'open_and_init_dwp_file':
../../src/gdb/dwarf2read.c:9248:6: error: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Werror=format]
../../src/gdb/dwarf2read.c:9248:6: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format]
And:
$ grep uint32_t /usr/i586-pc-msdosdjgpp/sys-include/*
/usr/i586-pc-msdosdjgpp/sys-include/stdint.h:typedef unsigned long uint32_t;
As decided on the discussion at
<http://sourceware.org/ml/gdb-patches/2013-05/msg00788.html>, use
pulongest rather than PRIu32.
Tested on F17. Also confirmed GDB still builds OK with
--host=i686-w64-mingw32.
gdb/
2013-05-23 Pedro Alves <palves@redhat.com>
* dwarf2read.c (create_dwp_hash_table, create_dwo_in_dwp)
(open_and_init_dwp_file): Use %s/pulongest instead of %u for
printing uint32_t variables.
---
gdb/ChangeLog | 6 ++++++
gdb/dwarf2read.c | 18 +++++++++---------
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5baaf27..194fb85 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2013-05-23 Pedro Alves <palves@redhat.com>
+ * dwarf2read.c (create_dwp_hash_table, create_dwo_in_dwp)
+ (open_and_init_dwp_file): Use %s/pulongest instead of %u for
+ printing uint32_t variables.
+
+2013-05-23 Pedro Alves <palves@redhat.com>
+
* NEWS: Mention GDBserver range stepping support.
2013-05-23 Yao Qi <yao@codesourcery.com>
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index b819d3c..092a801 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -8960,15 +8960,15 @@ create_dwp_hash_table (struct dwp_file *dwp_file, int is_debug_types)
if (version != 1)
{
- error (_("Dwarf Error: unsupported DWP file version (%u)"
+ error (_("Dwarf Error: unsupported DWP file version (%s)"
" [in module %s]"),
- version, dwp_file->name);
+ pulongest (version), dwp_file->name);
}
if (nr_slots != (nr_slots & -nr_slots))
{
- error (_("Dwarf Error: number of slots in DWP hash table (%u)"
+ error (_("Dwarf Error: number of slots in DWP hash table (%s)"
" is not power of 2 [in module %s]"),
- nr_slots, dwp_file->name);
+ pulongest (nr_slots), dwp_file->name);
}
htab = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct dwp_hash_table);
@@ -9087,9 +9087,9 @@ create_dwo_in_dwp (struct dwp_file *dwp_file,
if (dwarf2_read_debug)
{
- fprintf_unfiltered (gdb_stdlog, "Reading %s %u/%s in DWP file: %s\n",
+ fprintf_unfiltered (gdb_stdlog, "Reading %s %s/%s in DWP file: %s\n",
kind,
- section_index, hex_string (signature),
+ pulongest (section_index), hex_string (signature),
dwp_file->name);
}
@@ -9582,9 +9582,9 @@ open_and_init_dwp_file (void)
{
fprintf_unfiltered (gdb_stdlog, "DWP file found: %s\n", dwp_file->name);
fprintf_unfiltered (gdb_stdlog,
- " %u CUs, %u TUs\n",
- dwp_file->cus ? dwp_file->cus->nr_units : 0,
- dwp_file->tus ? dwp_file->tus->nr_units : 0);
+ " %s CUs, %s TUs\n",
+ pulongest (dwp_file->cus ? dwp_file->cus->nr_units : 0),
+ pulongest (dwp_file->tus ? dwp_file->tus->nr_units : 0));
}
return dwp_file;
--
1.7.11.7