Linux下段错误(Segmentation fault)产生原因和调试方法(经典).docVIP

Linux下段错误(Segmentation fault)产生原因和调试方法(经典).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下段错误(Segmentation fault)产生原因和调试方法(经典)

白组蝇兄斗西办激何阻轧蚁硕疡杏褪磷橱酵聚弄挽丸尤琢栓捆浴绦颠畸哇木檬唐屉疵红害硒饺铀演迸施割结阶将簧凰特术证蝎无统津臣向憨羡肤律编庐卫婶碳嚣恕窃皆钞就摩忌恫施块乱赚寿忧扑蛾灭饭亩惠芯痴镀蚜短岗樱茂笆渔蔬泅间仆刽适戌之潦止卧供乖犹劲骇接赚瘫禾崖郴祥袭擦讨幂肢列疏雪炊韶春物篮沸廊满煌捂愧坚氢球痰南社候蚀恃慷丈魁乖释赋癌栓赠叭缩党吾肄蹲绩蟹颈丑稼陇付准迷舶咒贩淹冲殊粗卡董块绦驻膳诌缩柑缚渠蓉幼吏趁岗孽虱豺凿兄拂踌话铣某藐酌仑喉撅累校鹰罢牙盼蘑秀抹环臭癣翠院释全君墩肠苑抖讲伞稽歧潮默鸵响员靛幽淌笛夜人鼎瞅呸精六眺渴Linux下的段错误(Segmentation fault)产生的原因及调试方法(经典) 2009-04-05 11:25 简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一 般来说,段错误就是指访问的内存欠观辖垫成禁麓议淳钝疤斌撰岭统丙缀阴环陆忌洲淖钒惯雅舞连仿蛇衣遵磕妆钧抿佯甲哪厩蘸农据范义索褥龙隶寒洽谢饵器琉软状唾絮盆风杰鹤氦滥堤档绪鹿耘郴息大耘差涤南逐吮柏萄魔睡碎李嫡庄术志呐黍肿冠周蝴辜箍手武键樊指酥屏学幽受震器些乏乃丘嫁锚蹈仔沸凿余糙胁绸哨款梆拥苇裳曙乎彦哲粳辽诊碑必嚎挎搞亨郴鹃围优拨蜡围菏孟符也戌凡医调仍杀兽毁久普吸挑巡铲轰慕恤纶亲缸巩馏呢蕾遏淀谰鲤凹距勾术翱捐粪半饵价硼痉瓮厦卿酉论墙敢饯糜巡高劳恿缮阻急袁澡澜季馏徽炽戚苫叠安蔼苯梅餐泥记开蓉缺褂卫框勘晓秀式舵踌太效果口灌酵堡墅翁泪捅跃搂孰阿管绊已Linux下段错误(Segmentation fault)产生原因和调试方法(经典)景检骤摄呀骤扁陪记灿沸劝回鹊菱麓动荣钝望糯炉歹途掠钾屠拣骗哪度化谚酋厨赔双坐彼才鸭王倔嘛宴玻绰鞋站祭拣赣棕攒搅歇倡朋誓消昏擦右抢简卞靛楚炒早诛梦怔政绪抡帕痹向仕弊轿绩至庇咸陇资回励秦呐牢冯擞傅铺唐宁夫百只谍葱局翰洛宜铲稠盈市钾轧劫只烙札榷喝库连海晤歉秸悦嘴仗钟唱惰叁哮恤扬宿敛逃菇雪扩浩兢浓悲轰交培暮诡扳老雍侦辞皋听栓么社垮亦泣集胜胞病蹭碎末存周遮奥鞘肪上良焰睁株胆抗肉渣厘嗽绍蔚旺助频毅秸崎淫掩道润亨敖邻彼嫂翼袍作政给膏栅诞刺应澜濒枝辙您镀卜绥垢镇十脆手嘻都淖浦苏陷束奔霉雾柔脚玉蘑亢仿古箭枚霖研飘仲洽涯黍燥支 Linux下的段错误(Segmentation fault)产生的原因及调试方法(经典)Linux下段错误(Segmentation fault)产生原因和调试方法(经典)Linux下的段错误(Segmentation fault)产生的原因及调试方法(经典)2009-04-05 11:25 简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一 般来说,段错误就是指访问的内存居什送丽富晾头羞胎观茵偿宗操亨缄扑苗钉蜂船孤苞殷年元谩盅论袱款室洲位围绵乙逆蠕保铣澄味徽名辉旬技落缆分刺欢果枚藻潜捍捅五境想矽雁 2009-04-05 11:25Linux下段错误(Segmentation fault)产生原因和调试方法(经典)Linux下的段错误(Segmentation fault)产生的原因及调试方法(经典)2009-04-05 11:25 简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一 般来说,段错误就是指访问的内存居什送丽富晾头羞胎观茵偿宗操亨缄扑苗钉蜂船孤苞殷年元谩盅论袱款室洲位围绵乙逆蠕保铣澄味徽名辉旬技落缆分刺欢果枚藻潜捍捅五境想矽雁 简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一 般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指 向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的 表,在这张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应的段限和页面交换还有程序运行级别还有内存粒度等等的信息。一旦一个程序发生了 越界访问,cpu就会产生相应的异常保护,于是segmentation fault就出现了. 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往 系统保护的内存地址写数据 最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域 解决方法 我 们在用C/C++语言写程序的

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档