91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

segmentationfault產生的可能情況是什么

發布時間:2021-09-22 13:37:30 來源:億速云 閱讀:104 作者:小新 欄目:開發技術

小編給大家分享一下segmentationfault產生的可能情況是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

  所謂的段錯誤就是指訪問的內存超出了系統所給這個程序的內存空間,通常這個值是由gdtr來保存的,他是一個48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相應于gdt的下標,最后3位包括了程序是否在內存中以及程序的在cpu中的運行級別,指向的gdt是由以64位為一個單位的表,在這張表中就保存著程序運行的代碼段以及數據段的起始地址以及與此相應的段限和頁面交換還有程序運行級別還有內存粒度等等的信息。一旦一個程序發生了越界訪問,cpu就會產生相應的異常保護,于是segmentationfault就出現了。

  什么是“SegmentationfaultinLinux”

  即“當程序試圖訪問不被允許訪問的內存區域(比如,嘗試寫一塊屬于操作系統的內存),或以錯誤的類型訪問內存區域(比如,嘗試寫一塊只讀內存)。這個描述是準確的。為了加深理解,我們再更加詳細的概括一下SIGSEGV。段錯誤應該就是訪問了不可訪問的內存,這個內存區要么是不存在的,要么是受到系統保護的。

  ?SIGSEGV是在訪問內存時發生的錯誤,它屬于內存管理的范疇

  ?SIGSEGV是一個用戶態的概念,是操作系統在用戶態程序錯誤訪問內存時所做出的處理。

  ?當用戶態程序訪問(訪問表示讀、寫或執行)不允許訪問的內存時,產生SIGSEGV。

  ?當用戶態程序以錯誤的方式訪問允許訪問的內存時,產生SIGSEGV。

  用戶態程序地址空間,特指程序可以訪問的地址空間范圍。如果廣義的說,一個進程的地址空間應該包括內核空間部分,只是它不能訪問而已

  segmentationfault產生的可能情況

  指針越界和SIGSEGV是最常出現的情況,經常看到有帖子把兩者混淆,而這兩者的關系也確實微妙。在此,我們把指針運算(加減)引起的越界、野指針、空指針都歸為指針越界。SIGSEGV在很多時候是由于指針越界引起的,但并不是所有的指針越界都會引發SIGSEGV。一個越界的指針,如果不解引用它,是不會引起SIGSEGV的。而即使解引用了一個越界的指針,也不一定會引起SIGSEGV。這聽上去讓人發瘋,而實際情況確實如此。SIGSEGV涉及到操作系統、C庫、編譯器、鏈接器各方面的內容,我們以一些具體的例子來說明。

以上是“segmentationfault產生的可能情況是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

井冈山市| 旬阳县| 嵊泗县| 唐海县| 三明市| 曲阜市| 仁化县| 东平县| 安新县| 普兰县| 云梦县| 廊坊市| 扶风县| 石狮市| 昌吉市| 博兴县| 塔城市| 三门峡市| 景德镇市| 葫芦岛市| 淄博市| 内丘县| 安吉县| 章丘市| 随州市| 南阳市| 永州市| 谷城县| 嘉定区| 西乌珠穆沁旗| 阳春市| 舞钢市| 武强县| 澄城县| 化州市| 绩溪县| 夏河县| 安阳县| 临漳县| 成武县| 彭阳县|