/* Copyright (C) 2021,2022 fef . All rights reserved. */ #include #include #include #include void print_regs(const struct i386_trap_frame *ctx) { u32 esp; if (ctx->hw_frame->cs == X86_32_USER_CS) esp = ctx->hw_frame->user_esp; else esp = ctx->esp - 3 * 4; /* eip, cs, eflags */ kprintf("EIP = %#x:%#08x\n", ctx->hw_frame->cs, ctx->hw_frame->eip); kprintf("EFLAGS = %#08x\n", ctx->hw_frame->eflags); kprintf("EAX = %#08x EDI = %#08x\n", ctx->eax, ctx->edi); kprintf("EBX = %#08x ESI = %#08x\n", ctx->ebx, ctx->esi); kprintf("ECX = %#08x ESP = %#08x\n", ctx->ecx, esp); kprintf("EDX = %#08x EBP = %#08x\n", ctx->edx, ctx->ebp); }