Re: Crash on Virtual Box; Higherhalf with GDT
Posted: Thu Apr 25, 2013 2:27 am
This looks very much like it's a VirtualBox bug (specifically, it seems like it's leaving some garbage in its TLB, pointing you at ridiculous places; this would explain why the other thread from a couple of weeks ago mentioned "this works fine if I enable paging first"), rather than something you're doing wrong. I'll spend part of tomorrow seeing if I can track down what would cause this; I kind of want to get some sleep tonight.
Combuster: Nah, it's a side effect of how VirtualBox works if you're using either a 64-bit host or guest. All of the addresses get worked on as if they're in 64-bit space, but if the guest is 32-bit, it'll just crop off the first 32 bits. The addend=(....)06567000 bit is more problematic, as that's the "garbage in the TLB" bit I'm talking about. (Specifically, it uses the value in addend as a virtual base of its own, so it's getting added to the addr_code value. I at least managed to track down that particular part of the VirtualBox source.)
Combuster: Nah, it's a side effect of how VirtualBox works if you're using either a 64-bit host or guest. All of the addresses get worked on as if they're in 64-bit space, but if the guest is 32-bit, it'll just crop off the first 32 bits. The addend=(....)06567000 bit is more problematic, as that's the "garbage in the TLB" bit I'm talking about. (Specifically, it uses the value in addend as a virtual base of its own, so it's getting added to the addr_code value. I at least managed to track down that particular part of the VirtualBox source.)