Linux上的分段错误是什么?

时间:2010-07-08 03:39:28

标签: segmentation-fault

在Linux中:

什么是分段错误?我知道它会崩溃程序,但这是某种内存泄漏问题,还是完全不相关的东西?另外,你如何处理这些? 这通常是计算机设置或应用程序本身的问题吗?

此外,这种情况是否也发生在其他操作系统中?

2 个答案:

答案 0 :(得分:27)

分段错误是指程序尝试访问操作系统未分配的内存,或者不允许访问的内存。

“细分”是计算机上每个进程的概念,具有自己独特的虚拟地址空间。因此,当进程A读取内存位置0x877时,它会读取驻留在RAM中不同物理位置的信息,而不是进程B读取自己的0x877时的信息。

所有现代操作系统都支持和使用分段,因此所有操作系统都会产生分段错误。

要处理分段错误,请修复导致它的代码。它通常表示编程不佳,尤其是边界条件错误,错误的指针操作或关于共享库的无效假设。有时像任何问题一样,段错误可能是由错误的硬件引起的,但通常情况并非如此。

答案 1 :(得分:6)

'segfault'是指程序访问受保护或无效的内存;通常是由于糟糕的内存管理或错误的指针操作。

操作系统检测到无效的内存访问并使应用程序崩溃。