<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## Java崩潰監測 ~~~ ?Thread.setDefaultUncaughtExceptionHandler(new?MyUncaughtExceptionHandler()); ~~~ ## Native崩潰監測 ![](https://img.kancloud.cn/3c/39/3c392a611a8a1048fb833f31d0506e9f_558x246.png) google的breakpad太大,有合規和性能和擴展問題,bugly也是,另外通過runtime process的execute打印logcat,啟動新進程進行處理,進程也不穩定,因此實現高效輕量級的框架,基于信號處理函數和dump子線程: ![](https://img.kancloud.cn/03/e8/03e81dedaf1bd810a9993900abf90e85_640x226.png) ![](https://img.kancloud.cn/03/e8/03e81dedaf1bd810a9993900abf90e85_640x226.png) 主要思想都是捕捉cpu的異常中斷,處理linux的sigaction信號量,主要都是通過設置回調: ①設置sigaction的信號處理函數sigaction\_handler ②啟動dump子線程,等待被喚起 ③觸發異常,信號處理函數sigaction\_handler觸發的時候,利用libunwind去解堆棧并且緩存起來到stack上下文 ④通過互斥量的Lock和Unlock,喚起dump子線程,去dump堆棧到str,并且反調java堆棧補充信息,回調給java注冊的監聽,上層去打log、發后臺日志、寫文件等 概括:信號處理函數,注冊信號量、libunwind解堆棧;子線程,dump merge 回調; 與其他方案的對比優化是,發現預加載的子線程,能夠比直接回調和子進程回調,更好地回調到java層,很穩定;另外,這里還涉及了溢出棧開辟空間/互斥量保證線程安全/存量處理函數的恢復等考慮點 # 參考資料 [Android 平臺 Native 代碼的崩潰捕獲機制及實現](https://mp.weixin.qq.com/s/g-WzYF3wWAljok1XjPoo7w)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看