diff options
Diffstat (limited to 'libs/libc/print.c')
-rw-r--r-- | libs/libc/print.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libs/libc/print.c b/libs/libc/print.c index c4455eb..463fef6 100644 --- a/libs/libc/print.c +++ b/libs/libc/print.c @@ -241,6 +241,8 @@ void print_trace(u32 count) __asm__ volatile("movl %%ebp, %0;" : "=r"(stk)); print("EBP\tEIP\n"); for (u32 i = 0; stk && memory_readable(stk) && i < count; i++) { + if (!stk->ebp || !stk->eip) + break; printf("0x%x\t0x%x\n", stk->ebp, stk->eip); stk = stk->ebp; } |