From 53807e9f3d83bc0f67b9b9471cc60fb37182e5ab Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 12 Mar 2020 13:32:15 -0600 Subject: [PATCH] Don't use sprintf_vma for CORE_ADDR 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 * 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 | 8 ++++++++ gdb/breakpoint.c | 5 ++--- gdb/remote.c | 12 +++++------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3416b414329..8c4487eef96 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2020-03-12 Tom Tromey + + * 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 * symfile-mem.c: Update CORE_ADDR size assert. diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 5a9352c26fe..e49025461ba 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -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); } diff --git a/gdb/remote.c b/gdb/remote.c index 9b73faf9a34..0f78b1be1b5 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -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') -- 2.30.2