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