我的内核在执行第一个页面错误时崩溃。我的页面错误处理程序如下所示:
asm_page_error_wrapper:
PUSHA
movl %esp, %esi
pushl 48(%esi)/*esp,pusha has already been calculated*/
pushl 32(%esi)/*error*/
CALL page_error_interrupt
popl %ecx
popl %ecx
POPA
addl $4, %esp
IRET
在 gdb 中,它在“”处崩溃pushl 48(%esi)
。
这是bochs日志所说的:
我不知道原因。