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