<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      X86 Linux 下 SIGBUS 總結(jié)

      SIGBUS 在 x86 Linux 上并不多見,但一旦出現(xiàn),其調(diào)用堆棧常常讓人摸不著頭腦,加之信號問題各平臺系統(tǒng)間差異較大,更讓人難以理清,這里稍微總結(jié)一下 x86 Linux 上大概有哪些情形會(huì)觸發(fā) BUS ERROR.

      文件映射訪問異常##

      這是 SIGBUS 在用戶態(tài)最為常見的場景,也最容易觸發(fā),通常來說根本原因都是進(jìn)程 mmap 了一個(gè)文件后,另外的進(jìn)程把這個(gè)文件截?cái)嗔耍瑢?dǎo)致 mmap 出來的某些內(nèi)存頁超出文件的實(shí)際大小,訪問那些超出的內(nèi)存頁就會(huì)觸發(fā) SIGBUS,具體來說有以下幾種場景:
      1、進(jìn)程 mmap 一個(gè)文件后,其它進(jìn)程 truncate 該文件到更小。
      2、動(dòng)態(tài)庫更新,直接 cp 覆蓋。
      3、可執(zhí)行文件更新,直接 cp 覆蓋。

      系統(tǒng)讀取磁盤文件通常是按頁映射到內(nèi)存,出于效率考慮常常使用 copy on write 機(jī)制,所以文件映射之后,如果對應(yīng)的文件 page 不存在了(truncated),也不見得會(huì)馬上出問題,只有到訪問時(shí)才會(huì)出錯(cuò),因此有一定滯后期。

      訪問不對齊的內(nèi)存##

      X86 平臺上訪問不對齊的內(nèi)存時(shí),默認(rèn)不會(huì)有問題,但用戶可以手動(dòng)設(shè)置 EFLAGS 把 CPU 設(shè)置為不允許非對齊的內(nèi)存訪問,此時(shí)如果出現(xiàn)不對齊的內(nèi)存訪問,SIGBUS 就會(huì)拋出,具體例子參看【3】。

      Stack fault exception

      這種場景非常罕見,通常是 OS 或者內(nèi)存硬件問題,從 intel 的開發(fā)者文件來看,這種異常屬于 trap,并不是我們用戶態(tài)常說的 exception,這種異常有三種起因【4】:
      1、canonical address violation.
      Canonical address 指的是 64 位模式下,地址的高 48 ~ 64 不是全部是 0 或 1 的地址。
      如果通過棧指針 rbp 或 rsp 訪問了非 canonical address 內(nèi)核就會(huì)發(fā) stack fault trap,示例代碼如下:

      需要注意的是只有棧指針操作才會(huì) SIGBUS,非棧指針引發(fā)的這類異常,只會(huì)拋 SIGSEG。
      2、棧指針操作引用了超出棧大小的地址。
      這類操作我還沒法重現(xiàn),只是文檔說了可以觸發(fā)。
      3、棧操作引用了不存在的 stack segment。
      這類操作通常是內(nèi)核或編譯器的 bug。

      綜上可知,stack fault 必然是與 rsp/rbp 這樣的棧指針操作相關(guān),通常用戶態(tài)不大可能觸發(fā),如果不是 mmap 相關(guān)的異常,大多可能是內(nèi)核或硬件問題(這里有些絕對),這類異常通常會(huì)導(dǎo)致內(nèi)核在 /var/log/messages 下輸出如下一條消息:

      引用##

      [1] https://stackoverflow.com/questions/2089167/debugging-sigbus-on-x86-linux
      [2] http://orchistro.tistory.com/206
      [3] https://sourceware.org/bugzilla/show_bug.cgi?id=11357
      [4] https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf

      posted on 2019-06-05 07:59  twoon  閱讀(8519)  評論(0)    收藏  舉報(bào)

      主站蜘蛛池模板: 欧美自拍另类欧美综合图片区| 色九月亚洲综合网| 欧美在线人视频在线观看| 国产av中文字幕精品| 美日韩精品一区二区三区| √天堂中文www官网在线| 亚洲av无码精品蜜桃| 国产精品无码不卡在线播放| 在线看免费无码av天堂| 撩起胸让我的?蹭来蹭去| 国产一区二区日韩在线| 亚洲欧美偷国产日韩| 午夜性刺激在线观看| 久久一夜天堂av一区二区 | 亚洲精品午夜精品| 亚洲深深色噜噜狠狠网站| 爱性久久久久久久久| 国产白嫩护士被弄高潮| 国产中文一区卡二区不卡| 国产成人人综合亚洲欧美丁香花| 深夜av在线免费观看| 国产一区二区亚洲精品| 欧美日韩另类国产| 正在播放肥臀熟妇在线视频| 曰韩无码av一区二区免费| 国产激情精品一区二区三区| 福利一区二区在线观看| 四虎成人精品永久网站| 亚洲夂夂婷婷色拍ww47| 亚洲AV无码东方伊甸园| 无码人妻久久一区二区三区app| 台中市| 国产精品99区一区二区三| 久久毛片少妇高潮| 国产福利姬喷水福利在线观看| 91老肥熟女九色老女人| 99久久精品免费看国产电影| 插入中文字幕在线一区二区三区| 中年国产丰满熟女乱子正在播放| 亚洲人成小说网站色在线| 国产一区二区三区不卡视频|