Re: [问卦] 庆祝程式写爆要吃什么当早餐?

楼主: KILLE (啃)   2017-08-21 04:57:08
※ 引述《NTHUCS5566 (清大资工56)》之铭言:
: 各位乡民早安
: 刚刚compile完执行跑出segmentation fault
: 推测是上游同学写炸了导致我存取容器失败致使发生错误
: 可是大家都在睡了 本肥很饿
: 有没有要吃什么当早餐的八卦啊?
一个够格的函式库 不论怎样乱输入 都该不会出现内存错误才是
会产生内存分段区故障 唯一可能就是内存越界
而导至越界的根本理由很多
常见是 a[len] = XXX;
其中len为很大的数字 好比-8 (= 2G - 8) 这类
会导至len 为负 原因可能是两个指针相减 而被减数为0
如 strstr() - pXX,而strstr找不到目标字串 回传0
试看看往这方向找
切回原题 原发文者 该要做严格的输入数简查
理论上乱丢引数进去 该会被挡 并回传错误给调用者才是
好比 丢进来的len是 
负, 指针为空, 长度不足 指针内容未清空 这类的
不是由操作系统来挡 
若由操作系统挡 就是显示"内存分段区故障"
然后砍掉这应用程式 没有别得可能
若是驱动层(作业系统延申部) 那更惨 没得挡
死机算最轻微了 惨是能用 但偶会出现怪事还不是永远出现
一个能用的函式库 检查引数值 是非常基本的
作者: maple0425 (漏接达人)   2016-08-21 04:57:00
ok
作者: minejel (梦幻泡影)   2016-08-21 04:57:00
所以咧?
作者: jatj   2017-08-21 05:00:00
内什么存
作者: alliao (半残流浪汉)   2017-08-21 05:06:00
感觉也是一个彻夜未眠的
作者: johnhmj (耗呆肥羊)   2017-08-21 05:06:00
好多中国用语
作者: bluebluelan (新阴流大目录免许皆传)   2017-08-21 05:14:00
需求128MB也不一定会把128MB全部塞进去亚
作者: a0930654321 (NO)   2017-08-21 05:15:00
这么好抓就好了啊 谁还要熬夜遇过只是complier参数不一样 就self fau了
作者: bluebluelan (新阴流大目录免许皆传)   2017-08-21 05:21:00
写什么东西都要预想人家会乱输入 留到seg. fault只是代表经验太浅而已弄到kernel panic算是我老本行了
作者: Gosssiping (抠吸品)   2017-08-21 05:24:00
指针 阵列引数不检查 留到segmentation fault 真的是很烂的习惯好险我不写系统层的东西
作者: lucifiel1618 (Lucifiel)   2017-08-21 05:42:00
讲得一嘴好debug,you can you up
作者: s09173120901 (关你屁事)   2017-08-21 06:33:00
前面不挡 怪谁
作者: hcwang1126 (王小胖)   2017-08-21 06:35:00
其实是因为他用AMD

Links booklink

Contact Us: admin [ a t ] ucptt.com