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);