From: "Dr. David Alan Gilbert" <dgilb...@redhat.com> Joe Perches pointed out on lkml [1] that the format special %# (which adds 0x) is included in the character count, i.e.:
printf("0: %#08x\n0: %#08x\n", 0xabcdef01,1); gives: 0: 0xabcdef01 0: 0x000001 rather than padding to the expected 8 data characters. Replace all the '%#08' cases by '0x%08' and also handle a '%#02'; there are some other cases mostly in testing and a few that look like the authors have thought about the size, that I've ignored for now. (Note I've not managed to test most of these) Signed-off-by: Dr. David Alan Gilbert <dgilb...@redhat.com> [1] https://lore.kernel.org/lkml/9499203f1e993872b384aabdec59ac223a8ab931.ca...@perches.com/ Fixup %# --- chardev/baum.c | 2 +- disas/alpha.c | 2 +- disas/sparc.c | 2 +- hw/arm/omap1.c | 2 +- hw/timer/a9gtimer.c | 4 ++-- include/hw/arm/omap.h | 5 +++-- softmmu/device_tree.c | 2 +- target/openrisc/disas.c | 2 +- 8 files changed, 11 insertions(+), 10 deletions(-) diff --git a/chardev/baum.c b/chardev/baum.c index 79d618e350..9a842c2bbb 100644 --- a/chardev/baum.c +++ b/chardev/baum.c @@ -366,7 +366,7 @@ static int baum_eat_packet(BaumChardev *baum, const uint8_t *buf, int len) if (!len--) \ return 0; \ if (*cur++ != ESC) { \ - DPRINTF("Broken packet %#2x, tossing\n", req); \ + DPRINTF("Broken packet 0x%02x, tossing\n", req); \ if (timer_pending(baum->cellCount_timer)) { \ timer_del(baum->cellCount_timer); \ baum_cellCount_timer_cb(baum); \ diff --git a/disas/alpha.c b/disas/alpha.c index 3db90fa665..f218bf023a 100644 --- a/disas/alpha.c +++ b/disas/alpha.c @@ -1851,7 +1851,7 @@ print_insn_alpha (bfd_vma memaddr, struct disassemble_info *info) } /* No instruction found */ - (*info->fprintf_func) (info->stream, ".long %#08x", insn); + (*info->fprintf_func) (info->stream, ".long 0x%08x", insn); return 4; diff --git a/disas/sparc.c b/disas/sparc.c index 5689533ce1..adc8438aa2 100644 --- a/disas/sparc.c +++ b/disas/sparc.c @@ -3231,6 +3231,6 @@ print_insn_sparc (bfd_vma memaddr, disassemble_info *info) } info->insn_type = dis_noninsn; /* Mark as non-valid instruction. */ - (*info->fprintf_func) (stream, ".long %#08lx", insn); + (*info->fprintf_func) (stream, ".long 0x%08lx", insn); return sizeof (buffer); } diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c index 9852c2a07e..c9e0ae87b1 100644 --- a/hw/arm/omap1.c +++ b/hw/arm/omap1.c @@ -42,7 +42,7 @@ static inline void omap_log_badwidth(const char *funcname, hwaddr addr, int sz) { - qemu_log_mask(LOG_GUEST_ERROR, "%s: %d-bit register %#08" HWADDR_PRIx "\n", + qemu_log_mask(LOG_GUEST_ERROR, "%s: %d-bit register 0x%08" HWADDR_PRIx "\n", funcname, 8 * sz, addr); } diff --git a/hw/timer/a9gtimer.c b/hw/timer/a9gtimer.c index 7233068a37..2ea51a137e 100644 --- a/hw/timer/a9gtimer.c +++ b/hw/timer/a9gtimer.c @@ -169,7 +169,7 @@ static uint64_t a9_gtimer_read(void *opaque, hwaddr addr, unsigned size) return 0; } - DB_PRINT("addr:%#x data:%#08" PRIx64 "\n", (unsigned)addr, ret); + DB_PRINT("addr:0x%x data:0x%08" PRIx64 "\n", (unsigned)addr, ret); return ret; } @@ -180,7 +180,7 @@ static void a9_gtimer_write(void *opaque, hwaddr addr, uint64_t value, A9GTimerState *s = gtb->parent; int shift = 0; - DB_PRINT("addr:%#x data:%#08" PRIx64 "\n", (unsigned)addr, value); + DB_PRINT("addr:0x%x data:0x%08" PRIx64 "\n", (unsigned)addr, value); switch (addr) { case R_COUNTER_HI: diff --git a/include/hw/arm/omap.h b/include/hw/arm/omap.h index ff6a173f8a..8b1c2365d5 100644 --- a/include/hw/arm/omap.h +++ b/include/hw/arm/omap.h @@ -1003,10 +1003,11 @@ void omap_badwidth_write32(void *opaque, hwaddr addr, void omap_mpu_wakeup(void *opaque, int irq, int req); # define OMAP_BAD_REG(paddr) \ - qemu_log_mask(LOG_GUEST_ERROR, "%s: Bad register %#08"HWADDR_PRIx"\n", \ + qemu_log_mask(LOG_GUEST_ERROR, \ + "%s: Bad register 0x%08"HWADDR_PRIx"\n", \ __func__, paddr) # define OMAP_RO_REG(paddr) \ - qemu_log_mask(LOG_GUEST_ERROR, "%s: Read-only register %#08" \ + qemu_log_mask(LOG_GUEST_ERROR, "%s: Read-only register 0x%08" \ HWADDR_PRIx "\n", \ __func__, paddr) diff --git a/softmmu/device_tree.c b/softmmu/device_tree.c index 6ca3fad285..338e1c03fd 100644 --- a/softmmu/device_tree.c +++ b/softmmu/device_tree.c @@ -369,7 +369,7 @@ int qemu_fdt_setprop_cell(void *fdt, const char *node_path, r = fdt_setprop_cell(fdt, findnode_nofail(fdt, node_path), property, val); if (r < 0) { - error_report("%s: Couldn't set %s/%s = %#08x: %s", __func__, + error_report("%s: Couldn't set %s/%s = 0x%08x: %s", __func__, node_path, property, val, fdt_strerror(r)); exit(1); } diff --git a/target/openrisc/disas.c b/target/openrisc/disas.c index dc025bd64d..72f1476a13 100644 --- a/target/openrisc/disas.c +++ b/target/openrisc/disas.c @@ -45,7 +45,7 @@ int print_insn_or1k(bfd_vma addr, disassemble_info *info) insn = bfd_getb32(buffer); if (!decode(info, insn)) { - output(".long", "%#08x", insn); + output(".long", "0x%08x", insn); } return 4; } -- 2.34.1