存储器区段错误
编辑在计算机中,当计算机程序试图访问受保护免受此类访问的资源(特别是内存)是或不应该可用时,就会发生分段错误或分段违规,或简称段错误。 在这里,内核向导致错误的进程发送信号,这通常会导致其终止。 现代操作系统的内存保护和单片机的内存保护单元都是对其他进程和操作系统的防范。
并非每个错误的内存访问都会触发存储区错误异常。 取决于一般系统状态,因此或多或少是随机的,一个和相同的程序错误可能会由于存储区错误而导致崩溃,导致算术错误的计算结果或其他不良的系统行为,甚至根本没有任何后果。
英文术语 segmentation fault 来自于内存区域被分段保护以防止未经授权的访问的时代。 今天使用了其他保护机制,特别是分页; 但是,术语分段错误保持不变。 不要将分段错误与页面错误(page error)混淆,后者只会中断程序,直到丢失的页面从辅助存储加载到主存储。
在 Unix 上,分段违规会引发 SIGSEGV 异常(异常十进制 11,十六进制 B,0x0B)。 对于 IA-32 或 x86 处理器,通过中断触发的内存访问冲突称为一般存储区错误(十进制 13 异常,十六进制 D,0x0D)。
例子
编辑存储区错误的大量出现表明操作系统、驱动程序、编程语言或程序在概念上存在缺陷。 错误信息“一般存储区错误in”后跟一个十六进制地址,早期Microsoft Windows版本下的程序经常崩溃(所谓的蓝屏死机)被广大观众记住。
频繁出现存储区错误的原因也可能是内存有问题或其他硬件有问题。 由于硬件错误(例如,更改地址的一位就足够了),会处理意外地址。 超频或错误编程的设备驱动程序也可能触发此类错误,而无需出现缺陷。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/366170/