Skip to content

Commit 2b4d2ee

Browse files
committed
refactor(debug): force print for abort messages
1 parent 3bffb46 commit 2b4d2ee

3 files changed

Lines changed: 25 additions & 23 deletions

File tree

src/hosted/Debug.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ static __attribute__((noreturn)) void kabort() { abort(); }
3030

3131
template <typename... Args>
3232
__attribute__((noreturn)) void kabort(Args&&... args) {
33-
kprintf(std::forward<Args>(args)...); // NOLINT
33+
kprintf_force(std::forward<Args>(args)...); // NOLINT
3434
kabort();
3535
}
3636

src/native/Idt.cc

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -114,26 +114,28 @@ extern "C" __attribute__((noreturn)) void ebbrt::idt::EventInterrupt(int num) {
114114

115115
namespace {
116116
void PrintExceptionFrame(ebbrt::idt::ExceptionFrame* ef) {
117-
ebbrt::kprintf("SS: %#018" PRIx64 " RSP: %#018" PRIx64 "\n", ef->ss, ef->rsp);
118-
ebbrt::kprintf("FLAGS: %#018" PRIx64 "\n",
119-
ef->rflags); // TODO(Dschatz): print out actual meaning
120-
ebbrt::kprintf("CS: %#018" PRIx64 " RIP: %#018" PRIx64 "\n", ef->cs, ef->rip);
121-
ebbrt::kprintf("Error Code: %" PRIx64 "\n", ef->error_code);
122-
ebbrt::kprintf("RAX: %#018" PRIx64 " RBX: %#018" PRIx64 "\n", ef->rax,
123-
ef->rbx);
124-
ebbrt::kprintf("RCX: %#018" PRIx64 " RDX: %#018" PRIx64 "\n", ef->rcx,
125-
ef->rdx);
126-
ebbrt::kprintf("RSI: %#018" PRIx64 " RDI: %#018" PRIx64 "\n", ef->rsi,
127-
ef->rdi);
128-
ebbrt::kprintf("RBP: %#018" PRIx64 " R8: %#018" PRIx64 "\n", ef->rbp,
129-
ef->r8);
130-
ebbrt::kprintf("R9: %#018" PRIx64 " R10: %#018" PRIx64 "\n", ef->r9,
131-
ef->r10);
132-
ebbrt::kprintf("R11: %#018" PRIx64 " R12: %#018" PRIx64 "\n", ef->r11,
133-
ef->r12);
134-
ebbrt::kprintf("R13: %#018" PRIx64 " R14: %#018" PRIx64 "\n", ef->r13,
135-
ef->r14);
136-
ebbrt::kprintf("R15: %#018" PRIx64 "\n", ef->r15);
117+
ebbrt::kprintf_force("SS: %#018" PRIx64 " RSP: %#018" PRIx64 "\n", ef->ss,
118+
ef->rsp);
119+
ebbrt::kprintf_force("FLAGS: %#018" PRIx64 "\n",
120+
ef->rflags); // TODO(Dschatz): print out actual meaning
121+
ebbrt::kprintf_force("CS: %#018" PRIx64 " RIP: %#018" PRIx64 "\n", ef->cs,
122+
ef->rip);
123+
ebbrt::kprintf_force("Error Code: %" PRIx64 "\n", ef->error_code);
124+
ebbrt::kprintf_force("RAX: %#018" PRIx64 " RBX: %#018" PRIx64 "\n", ef->rax,
125+
ef->rbx);
126+
ebbrt::kprintf_force("RCX: %#018" PRIx64 " RDX: %#018" PRIx64 "\n", ef->rcx,
127+
ef->rdx);
128+
ebbrt::kprintf_force("RSI: %#018" PRIx64 " RDI: %#018" PRIx64 "\n", ef->rsi,
129+
ef->rdi);
130+
ebbrt::kprintf_force("RBP: %#018" PRIx64 " R8: %#018" PRIx64 "\n", ef->rbp,
131+
ef->r8);
132+
ebbrt::kprintf_force("R9: %#018" PRIx64 " R10: %#018" PRIx64 "\n", ef->r9,
133+
ef->r10);
134+
ebbrt::kprintf_force("R11: %#018" PRIx64 " R12: %#018" PRIx64 "\n", ef->r11,
135+
ef->r12);
136+
ebbrt::kprintf_force("R13: %#018" PRIx64 " R14: %#018" PRIx64 "\n", ef->r13,
137+
ef->r14);
138+
ebbrt::kprintf_force("R15: %#018" PRIx64 "\n", ef->r15);
137139

138140
// TODO(dschatz): FPU
139141
}
@@ -143,7 +145,7 @@ extern "C" void ebbrt::idt::NmiInterrupt(ExceptionFrame* ef) { kabort(); }
143145

144146
#define UNHANDLED_INTERRUPT(name) \
145147
extern "C" void ebbrt::idt::name(ExceptionFrame* ef) { \
146-
kprintf("%s\n", __PRETTY_FUNCTION__); \
148+
kprintf_force("%s\n", __PRETTY_FUNCTION__); \
147149
PrintExceptionFrame(ef); \
148150
kabort(); \
149151
}

src/native/Newlib.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ extern "C" int ebbrt_newlib_write(int file, char* ptr, int len) {
103103
EBBRT_UNIMPLEMENTED();
104104
return 0;
105105
}
106-
ebbrt::kprintf("%*.*s", len, len, ptr);
106+
ebbrt::kprintf_force("%*.*s", len, len, ptr);
107107
return len;
108108
}
109109

0 commit comments

Comments
 (0)