OSDev.org
https://forum.osdev.org/

General protection fault after reloading CS
https://forum.osdev.org/viewtopic.php?f=1&t=56290
Page 1 of 1

Author:  LolzDEV [ Wed May 25, 2022 2:49 am ]
Post subject:  General protection fault after reloading CS

I'm following the GDT guide but according to gdb
Code:
jmp 0x08:reload_cs
is causing a "General Protection Fault" (0xd), according to the wiki this exception is thrown when a code segment is used improperly but as far as I understand if the GDT is not set segmentation is not enabled. What's going on? I cannot really understand
PS: I'm using GRUB2 as bootloader with Multiboot2 specification and I'm in protected mode

Author:  Octocontrabass [ Wed May 25, 2022 5:32 pm ]
Post subject:  Re: General protection fault after reloading CS

LolzDEV wrote:
as far as I understand if the GDT is not set segmentation is not enabled.

Segmentation is always enabled.

LolzDEV wrote:
What's going on?

The CPU is unable to use the segment descriptor corresponding to segment selector 8 as a code segment.

  • Maybe the selector is wrong, and your code segment needs a different selector.
  • Maybe you've made a mistake defining the descriptor and it's not a valid code segment.
  • Maybe you've made a mistake loading the GDTR and the CPU isn't reading your GDT.

It's hard to say for sure without more information. For example, post a link to your git repository, or provide a register dump using QEMU's "-d int" option.

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/