git: e5c7aa5c703e - main - arm64: print '0x' before hex values
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 21 Jun 2023 15:48:43 UTC
The branch main has been updated by christos:
URL: https://cgit.FreeBSD.org/src/commit/?id=e5c7aa5c703e268a80331be3a587449995563770
commit e5c7aa5c703e268a80331be3a587449995563770
Author: Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2023-06-21 15:47:06 +0000
Commit: Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2023-06-21 15:47:06 +0000
arm64: print '0x' before hex values
Not making it explicit that we're printing values in hex can be
misleading when the number doesn't contain hex-only symbols (a-f). A
good example of this is print_gp_register(), where we print "(func +
offset)"; if the offset doesn't contain a-f symbols, it's not
immediately clear if that value is in decimal or hex. Using '%#' instead
of '0x%' also isn't a better option, it doesn't print '0x' if the value
is 0, and it also messes up column alignment.
Reviewed by: imp, markj
Approved by: markj (mentor)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D40583
---
sys/arm64/arm64/trap.c | 44 ++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c
index 9b1b73aeb55d..7b5c7bc61fd3 100644
--- a/sys/arm64/arm64/trap.c
+++ b/sys/arm64/arm64/trap.c
@@ -213,7 +213,7 @@ align_abort(struct thread *td, struct trapframe *frame, uint64_t esr,
if (!lower) {
print_registers(frame);
print_gp_register("far", far);
- printf(" esr: %16lx\n", esr);
+ printf(" esr: 0x%.16lx\n", esr);
panic("Misaligned access from kernel space!");
}
@@ -328,7 +328,7 @@ data_abort(struct thread *td, struct trapframe *frame, uint64_t esr,
if (td->td_md.md_spinlock_count != 0) {
print_registers(frame);
print_gp_register("far", far);
- printf(" esr: %.16lx\n", esr);
+ printf(" esr: 0x%.16lx\n", esr);
panic("data abort with spinlock held (spinlock count %d != 0)",
td->td_md.md_spinlock_count);
}
@@ -337,7 +337,7 @@ data_abort(struct thread *td, struct trapframe *frame, uint64_t esr,
WARN_GIANTOK, NULL, "Kernel page fault") != 0) {
print_registers(frame);
print_gp_register("far", far);
- printf(" esr: %16lx\n", esr);
+ printf(" esr: 0x%.16lx\n", esr);
panic("data abort in critical section or under mutex");
}
@@ -378,7 +378,7 @@ bad_far:
printf("Fatal data abort:\n");
print_registers(frame);
print_gp_register("far", far);
- printf(" esr: %16lx\n", esr);
+ printf(" esr: 0x%.16lx\n", esr);
#ifdef KDB
if (debugger_on_trap) {
@@ -390,7 +390,7 @@ bad_far:
return;
}
#endif
- panic("vm_fault failed: %lx error %d",
+ panic("vm_fault failed: 0x%lx error %d",
frame->tf_elr, error);
}
}
@@ -409,14 +409,14 @@ print_gp_register(const char *name, uint64_t value)
db_expr_t offset;
#endif
- printf(" %s: %16lx", name, value);
+ printf(" %s: 0x%.16lx", name, value);
#if defined(DDB)
/* If this looks like a kernel address try to find the symbol */
if (value >= VM_MIN_KERNEL_ADDRESS) {
sym = db_search_symbol(value, DB_STGY_ANY, &offset);
if (sym != C_DB_SYM_NULL) {
db_symbol_values(sym, &sym_name, &sym_value);
- printf(" (%s + %lx)", sym_name, offset);
+ printf(" (%s + 0x%lx)", sym_name, offset);
}
}
#endif
@@ -434,10 +434,10 @@ print_registers(struct trapframe *frame)
reg);
print_gp_register(name, frame->tf_x[reg]);
}
- printf(" sp: %16lx\n", frame->tf_sp);
+ printf(" sp: 0x%.16lx\n", frame->tf_sp);
print_gp_register(" lr", frame->tf_lr);
print_gp_register("elr", frame->tf_elr);
- printf("spsr: %16lx\n", frame->tf_spsr);
+ printf("spsr: 0x%.16lx\n", frame->tf_spsr);
}
#ifdef VFP
@@ -485,8 +485,8 @@ do_el1h_sync(struct thread *td, struct trapframe *frame)
#endif
CTR4(KTR_TRAP,
- "do_el1_sync: curthread: %p, esr %lx, elr: %lx, frame: %p", td,
- esr, frame->tf_elr, frame);
+ "do_el1_sync: curthread: %p, esr 0x%lx, elr: 0x%lx, frame: %p",
+ td, esr, frame->tf_elr, frame);
/*
* Enable debug exceptions if we aren't already handling one. They will
@@ -506,7 +506,7 @@ do_el1h_sync(struct thread *td, struct trapframe *frame)
#endif
{
print_registers(frame);
- printf(" esr: %16lx\n", esr);
+ printf(" esr: 0x%.16lx\n", esr);
panic("VFP exception in the kernel");
}
break;
@@ -519,8 +519,8 @@ do_el1h_sync(struct thread *td, struct trapframe *frame)
} else {
print_registers(frame);
print_gp_register("far", far);
- printf(" esr: %16lx\n", esr);
- panic("Unhandled EL1 %s abort: %x",
+ printf(" esr: 0x%.16lx\n", esr);
+ panic("Unhandled EL1 %s abort: 0x%x",
exception == EXCP_INSN_ABORT ? "instruction" :
"data", dfsc);
}
@@ -564,7 +564,7 @@ do_el1h_sync(struct thread *td, struct trapframe *frame)
default:
print_registers(frame);
print_gp_register("far", far);
- panic("Unknown kernel exception %x esr_el1 %lx", exception,
+ panic("Unknown kernel exception 0x%x esr_el1 0x%lx", exception,
esr);
}
}
@@ -579,7 +579,7 @@ do_el0_sync(struct thread *td, struct trapframe *frame)
/* Check we have a sane environment when entering from userland */
KASSERT((uintptr_t)get_pcpu() >= VM_MIN_KERNEL_ADDRESS,
- ("Invalid pcpu address from userland: %p (tpidr %lx)",
+ ("Invalid pcpu address from userland: %p (tpidr 0x%lx)",
get_pcpu(), READ_SPECIALREG(tpidr_el1)));
kasan_mark(frame, sizeof(*frame), sizeof(*frame), 0);
@@ -599,8 +599,8 @@ do_el0_sync(struct thread *td, struct trapframe *frame)
intr_enable();
CTR4(KTR_TRAP,
- "do_el0_sync: curthread: %p, esr %lx, elr: %lx, frame: %p", td, esr,
- frame->tf_elr, frame);
+ "do_el0_sync: curthread: %p, esr 0x%lx, elr: 0x%lx, frame: %p",
+ td, esr, frame->tf_elr, frame);
switch (exception) {
case EXCP_FP_SIMD:
@@ -637,8 +637,8 @@ do_el0_sync(struct thread *td, struct trapframe *frame)
else {
print_registers(frame);
print_gp_register("far", far);
- printf(" esr: %16lx\n", esr);
- panic("Unhandled EL0 %s abort: %x",
+ printf(" esr: 0x%.16lx\n", esr);
+ panic("Unhandled EL0 %s abort: 0x%x",
exception == EXCP_INSN_ABORT_L ? "instruction" :
"data", dfsc);
}
@@ -730,7 +730,7 @@ do_serror(struct trapframe *frame)
print_registers(frame);
print_gp_register("far", far);
- printf(" esr: %16lx\n", esr);
+ printf(" esr: 0x%.16lx\n", esr);
panic("Unhandled System Error");
}
@@ -745,6 +745,6 @@ unhandled_exception(struct trapframe *frame)
print_registers(frame);
print_gp_register("far", far);
- printf(" esr: %16lx\n", esr);
+ printf(" esr: 0x%.16lx\n", esr);
panic("Unhandled exception");
}