程序異常--常見類型--linux系統--系統core

未使用合法內存

你的進程,要去寫一個空指針,也就是null,本質上就是0,線性地址空間的0頁,cpu 設計時實現了0頁故障,從而進入相應的內核處理例程

 

再一個:寫一個內存地址,如果這個地址,物理內存沒分配,並且不符合page fault的條件,內核就會報故障

 

數組越界,操作了不屬於你的變量的內存,在某些情況下,會導致數據錯誤,會死掉

 

內存使用規範類

還有 bus error,就是對齊錯誤,某種內存使用要求對齊

 

代碼錯誤

一個指針未初始化,就使用,野指針,也是指向某個不該指向的內存

這是因爲,如果代碼裏,誤修改了別的變量,如果那個變量的值,還在可取值正常範圍內,可能不會導致錯誤,

但是,如果修改後的值,在它應該發揮作用的某個代碼的地方,檢查失敗,或用它計算某個值失敗,可能就會報錯,

 

 

linux的C程序自身無程序異常處理機制,只能是系統捕捉到之後,進行處理,把內存狀態記錄下來

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章