As usual, the issue only occurs on VirtualBox, so it's probably some incredibly stupid mistake on my part,
Yet after 4 days, I've not been able to find it.
I've been looking at the info VirtualBox dumps after the crash, and as far as I can see, everything is in order;
Code: Select all
Guest CPUM (VCPU 0) state:
eax=2bad0010 ebx=0002bd20 ecx=0001e200 edx=0001e200 esi=0002be9f edi=0002bea0
eip=c0100050 esp=00067eb4 ebp=00067ec4 iopl=0 nv up di pl zr na pe nc
cs={0008 base=0000000040000000 limit=ffffffff flags=0000c09b} dr0=00000000 dr1=00000000
ds={0010 base=0000000040000000 limit=ffffffff flags=0000c093} dr2=00000000 dr3=00000000
es={0010 base=0000000040000000 limit=ffffffff flags=0000c093} dr4=00000000 dr5=00000000
fs={0010 base=0000000040000000 limit=ffffffff flags=0000c093} dr6=ffff0ff0 dr7=00000400
gs={0010 base=0000000040000000 limit=ffffffff flags=0000c093} cr0=00000011 cr2=00000000
ss={0010 base=0000000040000000 limit=ffffffff flags=0000c093} cr3=00000000 cr4=00000000
gdtr=000000000010002e:0017 idtr=0000000000000000:ffff eflags=00000002
I've checked the instruction pointer and that also is set correctly:
Code: Select all
c0100050 <higher_half>:
c0100050: bc 00 b0 10 c0 mov $0xc010b000,%esp
c0100055: e8 06 00 00 00 call c0100060 <kmain>
c010005a: eb fe jmp c010005a <higher_half+0xa>
c010005c: 00 00 add %al,(%eax)
VirtualBox isn't being very descriptive on what is actually causing the crash, so it's been a pain to pinpoint.
I'm just wondering if there's something blatantly obvious that I might've overlooked.
Cheers.