rust-osdev/multiboot2

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!