Octocontrabass wrote:As I mentioned in my previous post, that suggests a problem with your GDT. Use "info gdt" to check it.
Looks like I read it wrong, my bad! I thought you had said to run "info
IDT". Will update with results in a sec.
UPDATE: WOAAAH! That's all sorts of wrong:
Code: Select all
Global Descriptor Table (base=0xffffffffffe07120, limit=39):
GDT[0x0000]=??? descriptor hi=0x00000000, lo=0x00000000
GDT[0x0008]=Code segment, base=0x00000000, limit=0xffffffff, Execute/Read, Non-Conforming, 32-bit
GDT[0x0010]=Data segment, base=0x00000000, limit=0xffffffff, Read/Write, Accessed
GDT[0x0018]=Code segment, base=0x00000000, limit=0xffffffff, Execute/Read, Non-Conforming, 32-bit
GDT[0x0020]=Data segment, base=0x00000000, limit=0xffffffff, Read/Write
You can list individual entries with 'info gdt [NUM]' or groups with 'info gdt [NUM] [NUM]'
Can't really tell myself, but it looks like it's basically reading a bunch of 0x0s and 0xFs at random. Likely the GDT pointer is messed up? Either that or something went horribly wrong while creating it.