日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android native crash的处理机制

發布時間:2024/4/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android native crash的处理机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

攔截所有信號



Linux信號機制

1.程序奔潰在Unix-like系統中,所有的崩潰都是編程錯誤或者硬件錯誤相關的,系統遇到不可恢復的錯誤時會觸發崩潰機制讓程序退出,如除零、段地址錯誤等。異常發生時,CPU通過異常中斷的方式,觸發異常處理流程。不同的處理器,有不同的異常中斷類型和中斷處理方式。linux把這些中斷處理,統一為信號量,可以注冊信號量向量進行處理。信號機制是進程之間相互傳遞消息的一種方法,信號全稱為軟中斷信號。2.信號機制函數運行在用戶態,當遇到系統調用、中斷或是異常的情況時,程序會進入內核態。信號涉及到了這兩種狀態之間的轉換。(1) 信號的接收接收信號的任務是由內核代理的,當內核接收到信號后,會將其放到對應進程的信號隊列中,同時向進程發送一個中斷,使其陷入內核態。注意,此時信號還只是在隊列中,對進程來說暫時是不知道有信號到來的。(2) 信號的檢測進程陷入內核態后,有兩種場景會對信號進行檢測:進程從內核態返回到用戶態前進行信號檢測 進程在內核態中,從睡眠狀態被喚醒的時候進行信號檢測 當發現有新信號時,便會進入下一步,信號的處理。(3) 信號的處理信號處理函數是運行在用戶態的,調用處理函數前,內核會將當前內核棧的內容備份拷貝到用戶棧上,并且修改指令寄存器(eip)將其指向信號處理函數。接下來進程返回到用戶態中,執行相應的信號處理函數。信號處理函數執行完成后,還需要返回內核態,檢查是否還有其它信號未處理。如果所有信號都處理完成,就會將內核棧恢復(從用戶棧的備份拷貝回來),同時恢復指令寄存器(eip)將其指向中斷前的運行位置,最后回到用戶態繼續執行進程。至此,一個完整的信號處理流程便結束了,如果同時有多個信號到達,上面的處理流程會在第2步和第3步驟間重復進行。(4) 常見信號量類型

系統的默認處理






Android 平臺 Native 代碼的崩潰捕獲機制及實現

總結

以上是生活随笔為你收集整理的android native crash的处理机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。