segmentation fault----在Linux下真是一个蛋疼的错误,总结一下出现这错误的经历
2012-10-25 11:55
363 查看
这真是一个蛋疼的错误!
笔者经历过几次这个错误,一直也没有注意,知道后来经常遇到这个错误,觉得应该总结出来,引以为戒,同时也为各位同仁们,增加错误库,提高解决问题的速度。
这个错误,查一下就知道是段错误,一般是指针出错,或者内容益处,反正就是一些不正常操作,系统无法执行下去了,就会产生这个错误。
废话,这谁都知道,但是要根据具体问题,具体分析,说的那么虚,谁知道到底为什么?
我遇到过几次这种错误,印象最深的就是两次:
1.在select的时候:
一般来说,在多线程的Linux中,select要被经常使用,如果你没有出错过,那你是幸运的,笔者有一次用select,查了很长时间(真的时间很长),才发现原来我监视的文件描述符没有初始化,是个负数!于是就段错误了。
2.在memset的时候:
让我们看下代码,就知道了,纠结了我一个上午,因为昨天测试的时候是好的,后来改动了一下,就出了问题
编程要心细,如果有一个可以完美运行的版本一定要存下来,否则当你出错的时候,真的会急死人的,好了,去吃饭了~~~
笔者经历过几次这个错误,一直也没有注意,知道后来经常遇到这个错误,觉得应该总结出来,引以为戒,同时也为各位同仁们,增加错误库,提高解决问题的速度。
这个错误,查一下就知道是段错误,一般是指针出错,或者内容益处,反正就是一些不正常操作,系统无法执行下去了,就会产生这个错误。
废话,这谁都知道,但是要根据具体问题,具体分析,说的那么虚,谁知道到底为什么?
我遇到过几次这种错误,印象最深的就是两次:
1.在select的时候:
一般来说,在多线程的Linux中,select要被经常使用,如果你没有出错过,那你是幸运的,笔者有一次用select,查了很长时间(真的时间很长),才发现原来我监视的文件描述符没有初始化,是个负数!于是就段错误了。
2.在memset的时候:
让我们看下代码,就知道了,纠结了我一个上午,因为昨天测试的时候是好的,后来改动了一下,就出了问题
char buf[128]; if ((numlen > 20) || (len > 140)) { return FALSE; } memset(buf,0,256);也许你看出来了,我定义了一个128个字节大小的数组,却把256个字节的东西都清零了,我根本不知道后面的128的数据是什么,就这样被我清零了。。。
编程要心细,如果有一个可以完美运行的版本一定要存下来,否则当你出错的时候,真的会急死人的,好了,去吃饭了~~~
相关文章推荐
- mysql Access denied for user \'root\'@\'localhost\'”解决办法总结,下面我们对常见的出现的一些错误代码进行分析并给出解决办法,有需要的朋友可参考一下。
- 在Linux系统中安装LNMP出现的错误总结
- linux开机出现一下错误Give root password for maintenance (or type Control-D to continue):
- PHP对大小写敏感问题的处理比较乱,写代码时可能偶尔出问题,所以这里总结一下。以便用到的出现错误
- Linux环境下段错误的产生原因及调试方法小结 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是
- 一个windows10系统中linux子系统的编译出现“undefine reference to”错误的解决方法
- linux开机出现一下错误Give root password for maintenance (or type Control-D to continue):
- JSF部署tomcat出现的一个错误,求各位大虾赞助一下
- javascript 倒计时5秒并跳转到index.jsp页面 博客分类: CSS|Javascript javascripthtmljspweb 今天总结一下之前做的系统中,系统如果出现错误后,
- 在Linux系统中安装LAMP出现的错误总结
- 一个linux启动Eclipse不成功出现的错误
- 1:初学hadoop遇到各种错误,这里贴一下,方便以后脑补吧,报错如下: 主要是在window环境下面搞hadoop,而hadoop部署在linux操作系统上面;出现这个错误是权限的问题,操作had
- 首次发现linux+lamp环境下安装drupal7出现的一个错误。
- 一个js Tree 的问题,当id为整数时,可以获得值,当id为“ff100”的数字字母混合是就出现错误,请高手指点一下
- 在Linux源码采用make menuconfig 出现的一个错误以及解决办法的记录
- linux开机出现一下错误Give root password for maintenance (or type Control-D to continue):
- C和C++里面常见错误和异常出现怎么解决总结(不断更新)
- 今天写HQL出现了一个低级错误,将from 写错成form了 出现java.lang.IllegalArgumentException: node to traverse cannot be null!
- 用sqlyog远程连接LINUX系统的MYSQL出现了以下错误 出现1130错误
- 出现( linker command failed with exit code 1)错误总结