General protection fault Exceptions in Linux/IA32 Systems

Posted rsapaper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了General protection fault Exceptions in Linux/IA32 Systems相关的知识,希望对你有一定的参考价值。

 Computer Systems A Programmer‘s Perspective Second Edition

 

Exception number Description Exception class
0 Divide error Fault
13 General protection fault Fault
14 Page fault Fault
18 Machine check Abort
32–127 OS-de?ned exceptions Interrupt or trap
128 (0x80) System call Trap
129–255 OS-de?ned exceptions Interrupt or trap
Figure 8.9 Examples of exceptions in IA32 systems.

 

Linux/IA32 Faults and Aborts
Divide error. A divide error (exception 0) occurs when an application attempts to
divide by zero, or when the result of a divide instruction is too big for the destina-
tion operand. Unix does not attempt to recover from divide errors, opting instead
to abort the program. Linux shells typically report divide errors as “Floating ex-
ceptions.”
General protection fault. The infamous general protection fault (exception 13)
occurs for many reasons, usually because a program references an unde?ned area
of virtual memory, or because the program attempts to write to a read-only text
segment. Linux does not attempt to recover from this fault. Linux shells typically
report general protection faults as “Segmentation faults.”
Page fault. A page fault (exception 14) is an example of an exception where
the faulting instruction is restarted. The handler maps the appropriate page of
physical memory on disk into a page of virtual memory, and then restarts the
faulting instruction. We will see how page faults work in detail in Chapter 9.
Machine check. A machine check (exception 18) occurs as a result of a fatal
hardware error that is detected during the execution of the faulting instruction.
Machine check handlers never return control to the application program.

 


























以上是关于General protection fault Exceptions in Linux/IA32 Systems的主要内容,如果未能解决你的问题,请参考以下文章

为啥我进新荣誉勋章的时候 出现 general protection fault 下面一行是 history GEvent:tryacquireCancel

荣誉勋章玩不了 General protection fault History GEvent try acquire cancel address=0x7a0385 怎么回事

使用strace排查Segmentation fault错误

../gems/json-1.8.0/lib/json/common.rb:67: [BUG] Segmentation fault

如何查看MySQL执行的每条SQL

ATPG中test coverage和fault coverage的区别