On Wed, 3 Jul 2013, Mark Kettenis wrote:
> > diff --git sys/arch/i386/i386/db_interface.c
> > sys/arch/i386/i386/db_interface.c
> > index 85c1ff5..c75fd89 100644
> > --- sys/arch/i386/i386/db_interface.c
> > +++ sys/arch/i386/i386/db_interface.c
> > @@ -197,11 +197,11 @@ db_sysregs_cmd(db_expr_t addr, int have_addr,
> > db_expr_t count, char *modif)
> > uint16_t ldtr, tr;
> >
> > __asm__ __volatile__("sidt %0" : "=m" (idtr));
> > - db_printf("idtr: 0x%08x/%04x\n",
> > + db_printf("idtr: 0x%08x/%04llx\n",
> > (unsigned int)(idtr >> 16), idtr & 0xffff);
> >
> > __asm__ __volatile__("sgdt %0" : "=m" (gdtr));
> > - db_printf("gdtr: 0x%08x/%04x\n",
> > + db_printf("gdtr: 0x%08x/%04llx\n",
> > (unsigned int)(gdtr >> 16), gdtr & 0xffff);
>
> This is a tad bit inconsistent. I'd either use %llx for both values
> and get rid of the cast, or use %x and use a cast in both cases.
Like this?
--- sys/arch/i386/i386/db_interface.c
+++ sys/arch/i386/i386/db_interface.c
@@ -197,12 +197,10 @@ db_sysregs_cmd(db_expr_t addr, int have_addr, db_expr_t
count, char *modif)
uint16_t ldtr, tr;
__asm__ __volatile__("sidt %0" : "=m" (idtr));
- db_printf("idtr: 0x%08x/%04x\n",
- (unsigned int)(idtr >> 16), idtr & 0xffff);
+ db_printf("idtr: 0x%08llx/%04llx\n", idtr >> 16, idtr & 0xffff);
__asm__ __volatile__("sgdt %0" : "=m" (gdtr));
- db_printf("gdtr: 0x%08x/%04x\n",
- (unsigned int)(gdtr >> 16), gdtr & 0xffff);
+ db_printf("gdtr: 0x%08llx/%04llx\n", gdtr >> 16, gdtr & 0xffff);
__asm__ __volatile__("sldt %0" : "=g" (ldtr));
db_printf("ldtr: 0x%04x\n", ldtr);