崩潰轉儲(rust)

2021-08-17 21:33:04 字數 1173 閱讀 5767

# 崩潰轉儲

## google breakpad

### 使用

breakpad不需要安裝,使用方式為侵入式的,需要引入額外**,可以作為外部庫引入,也可以直接使用原始碼。breakpad 對程序(作業系統程序)有效,一次引入所有模組均有效。breakpad使用時需要提供庫(或可執行檔案)對應的 text-format symbol files(windows下為 .pdb檔案,linux下為.sym檔案),版本需要嚴格一致。breakpad 可用於類c語言(c/c++/rust等)的程式或跨語言的呼叫的程式。

windows平台[使用]( breakpad。windows平台可以使用vs和windebug等工具分析。

vs dump[分析](比較簡單,將pdb和dump檔案置於同一目錄,直接開啟、執行,跟蹤堆疊資訊。windebug就是更專業的工具了,可以做一些複製的問題排查(比如多執行緒死鎖等),可以參考網上的一些文件。windows平台下需要同時提供依賴庫的pdb檔案。

linux平台[使用]( breakpad。分析過程中需要使用到breakpad的一些工具。linux平台下不需要提供依賴庫的sym檔案。centos 5.8 下驗證可用。

版本:支援rust的版本,[git路徑](ttps:

## thread::catch_panic

可以捕獲執行緒內部閉包崩潰,至於崩潰堆疊沒有進一步研究。

## backtrace

兩種做法: 在rust**裡面新增backtrace; 設定環境變數rust_backtrace=1,編譯和執行的時候在前面加上backtrace。backtrace對主動丟擲的panic起作用,對其他崩潰問題不起作用。

## coredump

### linux 下coredump的生成設定

[core dump檔案方法及設定](使用使用引數cargo rustc -- -g -o編譯rust原始檔,崩潰的時候會產生core* 檔案,用「gdb 程式名 core檔案」(程式名為對應可執行檔案或庫檔案) 開啟core檔案可以定位到rust的崩潰位置(具體到某一行),也可看到崩潰時候的堆疊資訊。如果需要特定程序生成coredump檔案,「ulimit -c size」 「ulimit size」(size為具體的值)這兩句加到當前會話;如果需要整個系統有效[參考](

### windows下coredump的生成設定 

詳見[參考文件1](參考文件2](

Linux核心崩潰轉儲機制

當 系統出現panic的時候,kdump 核心崩潰轉儲機制 會通過呼叫kexec來快速的啟動預先準備好的dump capture kernel.該啟動方式與快速啟動機制類似,不會經過bios,屬於熱啟動。dump capture kernel 啟動後,前乙個核心執行時的記憶體映象會被儲存到 proc...

如何確保系統崩潰時能夠生成記憶體轉儲檔案?

為了成功得到系統自動生成的記憶體轉儲檔案,或者您需要選擇生成的轉儲檔案的型別,請務必確保系統中 啟動和故障恢復 的相關配置如下 1 寫入小記憶體轉儲,如下圖所示 2 寫入核心記憶體轉儲,如下圖所示 啟動和故障恢復 對話方塊可以通過以下方式開啟 1 單擊 開始 選單,在搜尋框內鍵入 sysdm.cpl...

WM630 107 轉儲申請建立轉儲訂單

tr自動建立to spro 後勤執行 倉庫管理 介面 庫存管理 定義移動型別 a im建立物料憑證的時候,後台自動建立to x im建立物料憑證的時候,自動調整到建立to介面 後台處理,當建立報錯時message訊息報錯給誰,可以是當前登入賬號,也可以指定接收人 例如後台呼叫,報錯訊息指定給運維人員...