什么是分割错误?(a segmentation fault?)

分段错误是当程序试图以无效方式访问内存区域时发生的计算机错误。这些错误可以是读取错误(试图读取未正确初始化的数据),也可以是写入错误(程序试图将数据写入内存中的错误位置)。用计算机术语来说,这个术语通常被缩短为segfault。由于SEGFULT可以发生在数据读取和写入中,因此它们可以发生在各种上下文中,并且具有不同的特定名称,包括总线错误、缓冲区溢出、页面错误和存储冲突。...

分段错误是当程序试图以无效方式访问内存区域时发生的计算机错误。这些错误可以是读取错误(试图读取未正确初始化的数据),也可以是写入错误(程序试图将数据写入内存中的错误位置)。用计算机术语来说,这个术语通常被缩短为segfault。由于SEGFULT可以发生在数据读取和写入中,因此它们可以发生在各种上下文中,并且具有不同的特定名称,包括总线错误、缓冲区溢出、页面错误和存储冲突。

Computer languages that allow a programmer to explicitly handle memory, such as C++, allow the user to introduce unintentional segfaults relatively easily with poor programming.

虽然在某些计算机语言中比在其他语言中更容易创建分段错误,但分段错误本身并不是计算机语言的一部分。理论上,任何计算机语言都可能导致数据写入错误,从而产生segfault。允许程序员显式地处理存储器(如C++)的计算机语言允许用户在编程不易的情况下容易地引入无意的分段。不允许显式内存管理的语言,如Java,可以在不受程序员干扰的情况下处理大多数内存问题,因此可以通过使程序员无法有目的地访问分配内存以外的区域来最小化分段错误。

程序员创建分段错误的方式各不相同,这取决于数据的使用方式。某些构造更容易创建此错误。segfault的一个常见罪魁祸首是数组溢出错误,其中特定数据包含在特定内存位置的插槽中,但程序员试图访问不存在的插槽。这些情况产生的断层通常很难追踪。某些计算机语言具有边界检查功能,它可以预测此类错误,并且不会让用户尝试访问无效插槽。

当两种计算机语言使用代理在彼此之间传递数据时,会出现一种生成SEGFULTS的不太常见的方法。在这种情况下,分段故障尤其难以诊断,因为并不总是清楚错误来自哪种语言或编程代码层。即使一个层具有隐式边界检查,并且在99.9%的上下文中不允许segfaults,确定错误的来源也是一项非常耗时和繁琐的工作。

避免分段错误的最佳方法是对内存管理非常谨慎。大多数好的编程实践都建议用户显式释放程序中手动分配的每个字节的内存。这通常是很难做到的,但正确地执行会增加程序员创建健壮、无错误程序的机会。

  • 发表于 2021-12-12 11:25
  • 阅读 ( 152 )
  • 分类:互联网

你可能感兴趣的文章

蠕动(peristalsis)和分割(segmentation)的区别

...,所以食物和其他分泌物的混合程度很低。 什么是分割(segmentation)? 分割是胃肠道的一种肌肉运动,帮助食糜与胃分泌物混合并分解成小部分以便于消化。当胃肠道的圆形肌肉收缩时,就会发生分割。主要发生在小肠和大肠。 ...

  • 发布于 2020-10-18 23:27
  • 阅读 ( 527 )

精神病学(psychographic)和行为分割(behavioral segmentation)的区别

...行为分割的表格形式 6. 摘要 什么是心理分割(psychographic segmentation)? 心理细分是指根据消费者的个性特征、价值观、态度、兴趣和生活方式进行市场细分。此外,识别心理细分将使企业能够根据客户的精确需求和期望开发和营...

  • 发布于 2020-10-23 18:22
  • 阅读 ( 735 )

为什么x86 CPU只使用四个“环”中的两个?

...otection, the granularity of protection offered thereby is only at the per-segment level. That is, each segment can be set to a specific ring (privilege level) along with other protecti*** like write-disabled. But there are not that many segment descriptors available. Most operating systems would li...

  • 发布于 2021-04-09 17:38
  • 阅读 ( 223 )

过错(fault)和失败(failure)的区别

...会的规范或期望,任何偏离这些规范的行为都可能被贴上错误、错误或可能导致失败的错误的标签。 “错误”是错误和错误的同义词,尽管这些词在上下文中因应用方式不同而有所不同。错误可能是由于判断失误、粗心大意和...

  • 发布于 2021-06-23 15:04
  • 阅读 ( 168 )

寻呼(paging)和分割(segmentation)的区别

...。同时,在frame表中输入写入每页的帧数。 什么是分割(segmentation)? 用户程序和相关数据可以划分为若干段。所有程序的段不必具有相同的大小,尽管有一个最大段长度。与分页一样,使用分段的逻辑地址由两部分组成,在本例...

  • 发布于 2021-06-25 04:10
  • 阅读 ( 589 )

碎片(fragmentation)和分割(segmentation)的区别

...ragmentation, Internal Fragmentation, Memory Management, Operating System, Segmentation 什么是碎片(fragmentation)? 当执行一个进程时,它被加载到内存中。完成执行后,它将从内存中删除。进程加载和删除在内存中创建可用空间。这些空间很小,不...

  • 发布于 2021-07-01 01:52
  • 阅读 ( 991 )

蠕动(peristalsis)和分割(segmentation)的区别

...会出现二次蠕动波。因此,它迫使丸下来。 什么是分割(segmentation)? 分割是胃肠道环形肌肉局部收缩的一种。一般来说,主要发生在小肠。然而,这些局部的收缩是食物来回运动的原因。它允许连续细分、分解和混合内容。因...

  • 发布于 2021-07-02 02:15
  • 阅读 ( 448 )

正断层(normal fault)和逆断层(reverse fault)的区别

...逆断层是倾滑断层的两种主要类型。 覆盖的关键领域 1.什么是正断层-定义、特征、形成2。什么是反向断层-定义、特征、形成3。正断层和逆断层的区别是什么?主要区别的比较 关键术语 Fault, Normal Fault, Reverse Fault 什么是正断层...

  • 发布于 2021-07-02 14:16
  • 阅读 ( 539 )

人口统计学(demographic)和地理分割(geographic segmentation)的区别

...键术语 人口分类,地理分类 什么是人口细分(demographic segmentation)? 人口细分通过关注某些特征(如性别、年龄、收入、种族、职业和家庭状况)将客户分组。此外,这也是最流行的市场细分方法之一。我们在人口分类中考虑的...

  • 发布于 2021-07-02 23:36
  • 阅读 ( 1232 )

行为(behavioral)和心理图像分割(psychographic segmentation)的区别

...理细分,心理细分,行为细分 什么是行为细分(behavioral segmentation)? 行为细分是一种关注消费者如何与产品和品牌互动和互动的细分。它不是指人们的行为,而是指消费者在市场上可测量的行为。因此,在这种细分中,可以根...

  • 发布于 2021-07-02 23:41
  • 阅读 ( 1249 )
JIU454904008
JIU454904008

0 篇文章

相关推荐