- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《linux段错误
/panfeng412/archive/2011/11/06/2237857.html
Linux环境下段错误的产生原因及调试方法小结
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。
1. 段错误是什么
一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况。这里贴一个对于“段错误”的准确定义(参考A):
A segmentation fault (often shortened to segfault) is a particular error condition that can occur during the operation of computer software. In short, 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 (e.g., attempts to write to a read-only location, or to overwrite part of the operating system). Systems based on processors like the Motorola 68000 tend to refer to these events as Address or Bus errors.Segmentation is one approach to memory management and protection in the operating system. It has been superseded by paging for most purposes, but much of the terminology of segmentation is still used, segmentation fault being an example. Some operating systems still have segmentation at some logical level although paging is used as the main memory management policy.On Unix-like operating systems, a process that accesses invalid memory receives the SIGSEGV signal. On Microsoft Windows, a process that accesses invalid memory receives the STATUS_ACCESS_VIOLATION exception.
2. 段错误产生的原因
2.1 访问不存在的内存地址
#includestdio.h#includestdlib.hvoid main(){ int *ptr = NULL; *ptr = 0;}
2.2 访问系统保护的内存地址
#includestdio.h#includestdlib.hvoid main(){ int *ptr = (int *)0; *ptr = 100;}
2.3 访问只读的内存地址
#includestdio.h#includestdlib.h#includestring.hvoid main(){ char *ptr = test; strcpy(ptr, TEST);}
2.4 栈溢出
#includestdio.h#includestdlib.hvoid main(){ main();}
等等其他原因。
3. 段错误信息的获取
程序发生段错误时,提示信息很少,下面有几种查看段错误的发生信息的途径。
3.1 dmesg
dmesg可以在应用程序crash掉时,显示内核
您可能关注的文档
- 《iphone4破解教程.doc
- 《2016年上海市闸北区中考二模语文试题及答案.doc
- 《2016年上海松江区中考语文二模试题及答案.doc
- 《2016年专业技术人员创新与创业能力建设答案.doc
- 《2016年两学一做专题活动试题18.doc
- 《2016年两学一做专题活动试题24.doc
- 《2016年两学一做专题活动试题36.doc
- 《2016年两学一做专题活动试题5.doc
- 《2016年两学一做专题活动试题9.doc
- 《2016年两学一做学习教育考试题 29.doc
- 2025年旧衣物回收利用在社区的环保技术创新趋势报告.docx
- 中国银发经济白皮书:2025年老年护理服务行业研究报告.docx
- 2025年旧衣物回收处理中心在跨境电商领域的环保技术创新与产业升级.docx
- 2025年旧衣物回收再生利用产业链绿色物流与仓储管理研究报告.docx
- 2025年移动医疗应用用户需求趋势研究报告.docx
- 2025年细胞治疗项目伦理审查标准下的风险评估与应对策略报告.docx
- 2025年旧衣物回收处理:社区跨境环保处理中心市场趋势分析.docx
- 城市污水主管网治理及污水泵站扩容项目可行性研究报告.docx
- 2025年旧衣物回收处理行业跨境环保产业政策环境分析.docx
- 2025年线上职业技能认证跨境互认平台对教育行业的影响研究.docx
最近下载
- 《家庭路由器密码修改.doc VIP
- 光伏施工电站施工质量管理体系及保证措施.docx VIP
- 退换货应急服务措施及保障.docx VIP
- 医疗器械公司组织机构图和部门设置说明【模板范本】.docx
- 2020年最新小学数学教师编制考试新课标测试题及答案(三).docx VIP
- 拼多多法律顾问岗面试题库参考答案和答题要点.docx VIP
- 腾讯法律顾问岗面试题库参考答案和答题要点.docx VIP
- 小米法律顾问岗面试题库参考答案和答题要点.docx VIP
- 网易法律顾问岗面试题库参考答案和答题要点.docx VIP
- 惠普HP DeskJet Ink Advantage Ultra 4800 系列参考指南.pdf
文档评论(0)