From ae52d9c2d265f3244819608791d96a57b5da3a79 Mon Sep 17 00:00:00 2001 From: fslongjin Date: Wed, 26 Jan 2022 22:26:24 +0800 Subject: [PATCH] =?UTF-8?q?:wrench:=20=E4=BF=AE=E6=AD=A3=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/common/printk.c | 2 +- kernel/exception/trap.c | 40 ++++++++++++++++++++-------------------- kernel/main.c | 6 +++--- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/kernel/common/printk.c b/kernel/common/printk.c index 4531a2de..d6daa42b 100644 --- a/kernel/common/printk.c +++ b/kernel/common/printk.c @@ -315,7 +315,7 @@ static int vsprintf(char *buf, const char *fmt, va_list args) case 'x': flags |= SMALL; case 'X': - flags |= SPECIAL; + //flags |= SPECIAL; if (qualifier == 'l') str = write_num(str, va_arg(args, long long), 16, field_width, precision, flags); else diff --git a/kernel/exception/trap.c b/kernel/exception/trap.c index 8fa3631f..978c22ac 100644 --- a/kernel/exception/trap.c +++ b/kernel/exception/trap.c @@ -35,7 +35,7 @@ void do_divide_error(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_divide_error(0),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_divide_error(0),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -47,7 +47,7 @@ void do_debug(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR / TRAP"); - printk(" ] do_debug(1),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_debug(1),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -59,7 +59,7 @@ void do_nmi(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(BLUE, BLACK, "INT"); - printk(" ] do_nmi(2),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_nmi(2),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -71,7 +71,7 @@ void do_int3(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(YELLOW, BLACK, "TRAP"); - printk(" ] do_int3(3),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_int3(3),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -83,7 +83,7 @@ void do_overflow(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(YELLOW, BLACK, "TRAP"); - printk(" ] do_overflow(4),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_overflow(4),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -95,7 +95,7 @@ void do_bounds(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_bounds(5),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_bounds(5),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -107,7 +107,7 @@ void do_undefined_opcode(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_undefined_opcode(6),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_undefined_opcode(6),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -119,7 +119,7 @@ void do_dev_not_avaliable(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_dev_not_avaliable(7),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_dev_not_avaliable(7),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -131,7 +131,7 @@ void do_double_fault(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "Terminate"); - printk(" ] do_double_fault(8),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_double_fault(8),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -143,7 +143,7 @@ void do_coprocessor_segment_overrun(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_coprocessor_segment_overrun(9),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_coprocessor_segment_overrun(9),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -155,7 +155,7 @@ void do_invalid_TSS(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("["); printk_color(RED, BLACK, "ERROR"); - printk("] do_invalid_TSS(10),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk("] do_invalid_TSS(10),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); printk_color(YELLOW, BLACK, "Information:\n"); // 解析错误码 @@ -186,7 +186,7 @@ void do_segment_not_exists(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_segment_not_exists(11),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_segment_not_exists(11),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -198,7 +198,7 @@ void do_stack_segment_fault(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_stack_segment_fault(12),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_stack_segment_fault(12),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -210,7 +210,7 @@ void do_general_protection(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_general_protection(13),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_general_protection(13),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -228,7 +228,7 @@ void do_page_fault(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_page_fault(14),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\tCR2:%18lx\n", error_code, rsp, *rip, cr2); + printk(" ] do_page_fault(14),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\tCR2:%#18lx\n", error_code, rsp, *rip, cr2); printk_color(YELLOW, BLACK, "Information:\n"); if (!(error_code & 0x01)) @@ -262,7 +262,7 @@ void do_x87_FPU_error(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_x87_FPU_error(16),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_x87_FPU_error(16),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -274,7 +274,7 @@ void do_alignment_check(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_alignment_check(17),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_alignment_check(17),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -286,7 +286,7 @@ void do_machine_check(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_machine_check(18),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_machine_check(18),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -298,7 +298,7 @@ void do_SIMD_exception(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_SIMD_exception(19),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_SIMD_exception(19),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; @@ -310,7 +310,7 @@ void do_virtualization_exception(unsigned long rsp, unsigned long error_code) unsigned long *rip = (unsigned long *)(rsp + 0x98); printk("[ "); printk_color(RED, BLACK, "ERROR"); - printk(" ] do_virtualization_exception(20),\tError Code:%18lx,\tRSP:%18lx,\tRIP:%18lx\n", error_code, rsp, *rip); + printk(" ] do_virtualization_exception(20),\tError Code:%#18lx,\tRSP:%#18lx,\tRIP:%#18lx\n", error_code, rsp, *rip); while (1) ; diff --git a/kernel/main.c b/kernel/main.c index edd7dcfd..cc34a007 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -50,11 +50,11 @@ void test_printk() printk("2022-01-01\tJohn\t95\n"); //测试输出八进制 - printk("\nTest base 8 : %d --> %o\n", 255, 255); + printk("\nTest base 8 : %d --> %#o\n", 255, 255); //测试输出十六进制 - printk("\nTest base 16 : %d --> %x\n", 255, 255); - printk("\nTest base 16 : %d --> %X\n", 255, 255); + printk("\nTest base 16 : %d --> %#x\n", 255, 255); + printk("\nTest base 16 : %d --> %#X\n", 255, 255); } void init()