Why cause the triple fault in loading BootInformation?
Closed this issue · 7 comments
Hey, I'm using BootInformation::load to load the boot information. But seems it causes the restart.
I uses GDB to debug, but i found that it even did't show ANYTHING about panic, just quit.
This is a part of GDB output:
(gdb) n
30 let boot_info = unsafe { BootInformation::load(mbi_ptr).expect("Failed to load BootInformation") };
(gdb)
0x00000000ffffffff in ?? ()
(gdb)Note that I'm very sure that the arguments are correct, all from EAX and EBX.
Thanks for reaching out! Please share more about your environment and setup; it seems that the environment is not properly setup, e.g., the bootloader didn't properly load all LOAD segments into memory. Also share please how you build your kernel
Well, I forgot to say that i disabled ALL features, so is it effect the issue?
no, this is independent
Any update? @zhangxuan2011
Any update? @zhangxuan2011
I'm sorry that I'm too busy because I'm just a 14-year-old student😂 I found that it can be get information correctly in Long mode, without broken.
I don't know what strange problem causes it, but I hope that you can used it.
By the way, I think that uses x86_64-unknown-none to build a kernel and run it in 32-bit-mode is not good, so I think I have something wrong.
Oops, seems I forgot to say, I build ot with target x86_64-unknown-none and call it in 32-bit-mode
It seems that there is a problem with the environment in the VM you're setting up, not my library. I tested my code in the past in 32-bit and 64-bit mode and it works fine.
Please re-open again if you find a bug in my library with a reproducer.
I'm just a 14-year-old student😂
That's cool :) I also started programming when I was 14. Don't give up and keep going!