Hi All:
During implementing lab2 for the memory management code
In the function i386_vm_init,
I have passed the check_boot_pgdir().
But then the bochs report
Bochs is exiting with the following message:
[CPU0 ] exception(): 3rd (13) exception with no resolution
after the lcr0(cr0).
Can you give me some suggestions about this issue? How can this happen
and what will cause such panic?
Thanks
Gu, Zhongshu
I think you may have loaded CR3 incorrectly, or did not setup your page directory properly. Then when you enabled paging, there was a page fault, and since the IDT also wasn't initialized, you got another page fault/access violation, which again caused a fault. Since it was the 3rd fault, bochs gave up.
You should step through the assembly of your kernel, to manually see which instruction is causing this triple fault when trying to access memory location X (say). Then, manually try to walk through the paging steps, examining the PDEs and PTEs in memory to see if your page tables have been indeed setup properly. Make use of bochs' debugging features.
Mayank