全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详谈Linux开发中常见段错误问题的原因及分析

1    使用非法的内存地址(指针),包括使用未经初始化及已经释放的指针、不存在的地址、受系统保护的地址,只读的地址等,这一类也是最常见和最好解决的段错误问题,使用GDB print一下即可知道原因。

2    内存读/写越界。包括数组访问越界,或在使用一些写内存的函数时,长度指定不正确或者这些函数本身不能指定长度,典型的函数有strcpy(strncpy),sprintf(snprint)等等。

3    对于C++对象,应该通过相应类的接口来去内存进行操作,禁止通过其返回的指针对内存进行写操作,典型的如string类的c_str()接口,如果你强制往其返回的指针进行写操作肯定会段错误的,因为其返回的地址是只读的。

4    函数不要返回其中局部对象的引用或地址,当函数返回时,函数栈弹出,局部对象的地址将失效,改写或读这些地址都会造成未知的后果。

5    避免在栈中定义过大的数组,否则可能导致进程的栈空间不足,此时也会出现段错误,同样的,在创建进程/线程时如果不知道此线程/进程最大需要多少栈空间时最好不要在代码中指定栈大小,应该使用系统默认的,这样问题比较好查,ulimit一下即可知道。这类问题也是为什么我的程序在其他平台跑得好好的,为什么一移植到这个平台就段错误了。

6    操作系统的相关限制,如:进程可以分配的最大内存,进程可以打开的最大文件描述符个数等,在Linux下这些需要通过ulimit、setrlimit、sysctl等来解除相关的限制,这类段错误问题在系统移植中也经常发现,以前我们移植Linux的程序到VxWorks下时经常遇到(VxWorks要改内核配置来解决)。

7    多线程的程序,涉及到多个线程同时操作一块内存时必须进行互斥,否则内存中的内容将不可预料。

8    在多线程环境下使用非线程安全的函数调用,例如 strerror 函数等。

9    在有信号的环境中,使用不可重入函数调用,而这些函数内部会读或写某片内存区,当信号中断时,内存写操作将被打断,而下次进入时将无法避免地出错。

10    跨进程传递某个地址,传递的都是经过映射的虚拟地址,对另外一个进程是不通用的。

11   某些有特殊要求的系统调用,例如epool_wait,正常情况下使用close关闭一个套接字后,epool会不再返回这个socket上的事件,但是如果你使用dup或dup2操作,将导致epool无法进行移除操作,此时再进行读写操作肯定是段错误的。

以上这篇详谈Linux开发中常见段错误问题的原因及分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# linux常见段错误  # Linux下MySQL5.7.18二进制包安装教程(无默认配置文件my_default.cnf)  # Linux环境下段错误的产生原因及调试方法小结  # Linux平台Segmentation fault(段错误)调试过程  # 如果你  # 这类  # 给大家  # 多线程  # 都是  # 也会  # 多个  # 希望能  # 弹出  # 不存在  # 比较好  # 将被  # 好好的  # 为其  # 另外一个  # 中也  # 这篇  # 涉及到  # 过大  # 不正确 


相关文章: 香港服务器网站卡顿?如何解决网络延迟与负载问题?  建站主机选购指南:核心配置与性价比推荐解析  如何在景安服务器上快速搭建个人网站?  如何用狗爹虚拟主机快速搭建网站?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何在新浪SAE免费搭建个人博客?  如何快速搭建高效香港服务器网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何在万网ECS上快速搭建专属网站?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  javascript基本数据类型及类型检测常用方法小结  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  网站制作员失业,怎样查看自己网站的注册者?  已有域名如何快速搭建专属网站?  h5网站制作工具有哪些,h5页面制作工具有哪些?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  C#怎么使用委托和事件 C# delegate与event编程方法  高防服务器租用首荐平台,企业级优惠套餐快速部署  如何用好域名打造高点击率的自主建站?  建站之星代理如何优化在线客服效率?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  郑州企业网站制作公司,郑州招聘网站有哪些?  如何在局域网内绑定自建网站域名?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  如何快速完成中国万网建站详细流程?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  红河网站制作公司,红河事业单位身份证如何上传?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何用PHP快速搭建CMS系统?  建站org新手必看:2024最新搭建流程与模板选择技巧  建站与域名管理如何高效结合?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  建站之家VIP精选网站模板与SEO优化教程整合指南  营销式网站制作方案,销售哪个网站招聘效果最好?  建站主机选哪种环境更利于SEO优化?  ,怎么用自己头像做动态表情包?  建站之星伪静态规则如何设置?  实现虚拟支付需哪些建站技术支撑?  建站之星后台密码如何安全设置与找回?  如何通过FTP服务器快速搭建网站?  如何有效防御Web建站篡改攻击?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  javascript中对象的定义、使用以及对象和原型链操作小结  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Java解压缩zip - 解压缩多个文件或文件夹实例  javascript中的try catch异常捕获机制用法分析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。