segmentation fault

翻译 2013年12月03日 10:24:59


Segmentation fault
段错误
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

A segmentation fault occurs when a program attempts to access a memory location that it is not allowed to access, or attempts to access a memory location in a way that is not allowed (for example, attempting to write to a read-only location, or to overwrite part of the operating system).
当程序试图访问不允许被访问的内存位置,或试图以未授权的方式访问内存位置时(例如,试图写只读内存位置,或试图修改操作系统部分),就会发生段错误。


Common causes
常见的原因
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

The following are some typical causes of a segmentation fault:
造成段错误的几种典型的原因:

Attempting to execute a program that does not compile correctly. Some compilers will output an executable file despite the presence of compile-time errors
试图执行未正确编译的程序。某些编译器会不顾编译时错误继续暑促可执行文件。

Dereferencing NULL pointers
解引用空指针

Attempting to access memory the program does not have rights to (such as kernel structures in process context)
试图访问程序无权访问的内存

Attempting to access a nonexistent memory address (outside process's address space)
试图访问不存在的内存地址

Attempting to write read-only memory (such as code segment)
试图写只读内存

A buffer overflow
缓冲区溢出

Using uninitialized pointers
使用未初始化的指针

Generally, segmentation faults occur because a pointer is NULL, or because it points to random memory (probably never initialized to anything), or because it points to memory that has been freed/deallocated/"deleted".
通常,段错误的原因为指针为空,或指向随机内存,或因为指向已释放已被解除分配、或已被删除的内存


pasted from wikipedia


socket segmentation fault

因为socket重用问题。解决方案详见 http://www.cnblogs.com/mydomain/archive/2011/08/23/2150567.html...
  • wonengxing
  • wonengxing
  • 2013年04月09日 18:52
  • 743

unix等系统出现断错误(Segmentation Fault)的总结

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fa...
  • q454684431
  • q454684431
  • 2015年12月25日 15:13
  • 7453

ARM-LINUX调试中segmentation fault 的解决参考

可恶的segmentation fault问题解决探索(转载) http://oss.lzu.edu.cn/blog/article.php?tid_700.html 背景   ...
  • mawentao0530
  • mawentao0530
  • 2011年10月19日 14:23
  • 2134

你的C/C++程序为什么无法运行?揭秘Segmentation fault (2)

什么让你对C/C++如此恐惧?本篇将继续上一篇来讨论段错误(Segmentation fault)。 上一篇: 你的C/C++程序为什么无法运行?揭秘Segmentation fault (cor...
  • gsky1986
  • gsky1986
  • 2015年04月29日 23:15
  • 8263

Segmentation fault:你是否曾经为这头疼??

Segmentation fault 也是我们常说的段错误,是编写代码过程中很容易遇到的事情。有时候你也许会感叹无法避免这种情况的发生,甚至常常为这位“熟客”感到头疼。 段错误,总结起来无非是两种情...
  • hbk320
  • hbk320
  • 2013年02月01日 14:12
  • 1750

caffe Segmentation fault (core dumped)

运行caffe的faster rcnn的./tools/demo.py 只报了一行的错 Segmentation fault (core dumped) 用print来debug 最后发现是im...
  • guotong1988
  • guotong1988
  • 2017年01月11日 14:24
  • 2728

segmentation fault定位与调试

1. 前言: 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变...
  • kevinguozuoyong
  • kevinguozuoyong
  • 2011年07月10日 19:32
  • 8016

Segmentation fault: 11(svn)

本人近来热衷于命令行,又听闻大神使用svn终端命令对代码进行提交检出异常方便,于是也想搞一个大神之终端技艺的学习,可是由于先前一直使用GUI软件,对命令知之甚少,前几天进行checkout时又出现一天...
  • jianin45
  • jianin45
  • 2015年05月21日 09:28
  • 3753

使用truss、strace或ltrace诊断"疑难杂症" Segmentation fault排查

进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试...
  • cws1214
  • cws1214
  • 2013年09月23日 16:24
  • 1381

printf出现Segmentation fault

printf出现seg fault的场景很多,大多数是参数错误导致的。 例如下面这个:int a = 1; printf("%s\n", a);或者: printf("%s\n"); // 没有参...
  • Joseph_1118
  • Joseph_1118
  • 2015年11月13日 16:09
  • 934
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:segmentation fault
举报原因:
原因补充:

(最多只允许输入30个字)