2014-09-24 115 views
1

我正在学习os内核开发,并且仍然处于初级阶段。我已经为80386处理器编写了一些代码,并使用gdb作为调试器(远程调试)在qemu上测试它。为什么在内核中出现分段错误?

现在,奇怪的错误即将到来: - 当我在qemu中运行代码时,它运行良好,但是当我运行它并将它连接到gdb时。 gdb在一行中显示分段错误。

我的问题是,当我在真实模式下运行时甚至没有使用内存保护,分段错误如何进入os内核。此外,如果存在产生分段错误的机制,为什么内核在qemu中运行良好。

回答

0

Seg错误是由硬件而不是OS引发的。所以是的,你仍然可以得到段错误,但段错误是一些更容易修复的错误。

+0

硬件能否在真实模式下抛出seg故障?它不是由内核来实现吗? – 2014-09-24 17:21:58

+0

我还没有实现与内存管理相关的。 – 2014-09-24 17:24:19

+0

我不知道这是为什么,但我在大学建立了一个操作系统,并且不得不在我的代码中调试几个段错误,即使我从未编写任何代码来保护内存。 – Dan 2014-09-24 17:40:14

相关问题