Don't use sprintf_vma for CORE_ADDR
authorTom Tromey <tom@tromey.com>
Thu, 12 Mar 2020 19:32:15 +0000 (13:32 -0600)
committerTom Tromey <tromey@adacore.com>
Thu, 12 Mar 2020 19:32:15 +0000 (13:32 -0600)
A few spots in gdb use sprintf_vma to print a CORE_ADDR.  This will
fail on a 32-bit build once CORE_ADDR is always a 64-bit type.

This patch replaces these calls with phex instead.

gdb/ChangeLog
2020-03-12  Tom Tromey  <tom@tromey.com>

* remote.c (remote_target::download_tracepoint)
(remote_target::enable_tracepoint)
(remote_target::disable_tracepoint): Use phex, not sprintf_vma.
* breakpoint.c (print_recreate_masked_watchpoint): Use phex, not
sprintf_vma.

gdb/ChangeLog
gdb/breakpoint.c
gdb/remote.c

index 3416b414329277c8c863f4982c181103b87d30ae..8c4487eef96080e475c8bfbd4af71e3a1d4f883d 100644 (file)
@@ -1,3 +1,11 @@
+2020-03-12  Tom Tromey  <tom@tromey.com>
+
+       * remote.c (remote_target::download_tracepoint)
+       (remote_target::enable_tracepoint)
+       (remote_target::disable_tracepoint): Use phex, not sprintf_vma.
+       * breakpoint.c (print_recreate_masked_watchpoint): Use phex, not
+       sprintf_vma.
+
 2020-03-12  Tom Tromey  <tom@tromey.com>
 
        * symfile-mem.c: Update CORE_ADDR size assert.
index 5a9352c26fef592e293e4d5155780665e2c20151..e49025461babed20dfa43e60554c799ae9814b6e 100644 (file)
@@ -10400,7 +10400,6 @@ static void
 print_recreate_masked_watchpoint (struct breakpoint *b, struct ui_file *fp)
 {
   struct watchpoint *w = (struct watchpoint *) b;
-  char tmp[40];
 
   switch (b->type)
     {
@@ -10418,8 +10417,8 @@ print_recreate_masked_watchpoint (struct breakpoint *b, struct ui_file *fp)
                      _("Invalid hardware watchpoint type."));
     }
 
-  sprintf_vma (tmp, w->hw_wp_mask);
-  fprintf_unfiltered (fp, " %s mask 0x%s", w->exp_string, tmp);
+  fprintf_unfiltered (fp, " %s mask 0x%s", w->exp_string,
+                     phex (w->hw_wp_mask, sizeof (CORE_ADDR)));
   print_recreate_thread (b, fp);
 }
 
index 9b73faf9a3459ef28dbc6789e552dc5abf54dae1..0f78b1be1b50e5a5b548481d35b15abad8a41cbb 100644 (file)
@@ -12835,7 +12835,7 @@ remote_target::download_tracepoint (struct bp_location *loc)
   encode_actions_rsp (loc, &tdp_actions, &stepping_actions);
 
   tpaddr = loc->address;
-  sprintf_vma (addrbuf, tpaddr);
+  strcpy (addrbuf, phex (tpaddr, sizeof (CORE_ADDR)));
   ret = snprintf (buf.data (), buf.size (), "QTDP:%x:%s:%c:%lx:%x",
                  b->number, addrbuf, /* address */
                  (b->enable_state == bp_enabled ? 'E' : 'D'),
@@ -13097,11 +13097,10 @@ void
 remote_target::enable_tracepoint (struct bp_location *location)
 {
   struct remote_state *rs = get_remote_state ();
-  char addr_buf[40];
 
-  sprintf_vma (addr_buf, location->address);
   xsnprintf (rs->buf.data (), get_remote_packet_size (), "QTEnable:%x:%s",
-            location->owner->number, addr_buf);
+            location->owner->number,
+            phex (location->address, sizeof (CORE_ADDR)));
   putpkt (rs->buf);
   remote_get_noisy_reply ();
   if (rs->buf[0] == '\0')
@@ -13114,11 +13113,10 @@ void
 remote_target::disable_tracepoint (struct bp_location *location)
 {
   struct remote_state *rs = get_remote_state ();
-  char addr_buf[40];
 
-  sprintf_vma (addr_buf, location->address);
   xsnprintf (rs->buf.data (), get_remote_packet_size (), "QTDisable:%x:%s",
-            location->owner->number, addr_buf);
+            location->owner->number,
+            phex (location->address, sizeof (CORE_ADDR)));
   putpkt (rs->buf);
   remote_get_noisy_reply ();
   if (rs->buf[0] == '\0')