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]

Re: [PUSHED] Fix go32-nat.c build fallout from to_detach constification.


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]