Google Breakpad: 實戰crash .
http://blog.csdn.net/zm_21/article/details/24795205
C/C++程序最棘手的時候就是一個字“掛”,總是經常和不經常的掛掉,尤其是那些線上的不經常掛的情況,光看日志定位問題真的很難。
為解決C掛掛的問題,有必要提供一個跨平台的crash處理系統,目前已知的支持平台有windows 、Linux、 OS X 、Android、等待。
下面就來看看Google自己用的系統:Breakpad
最好的介紹莫過於谷歌自己的:
谷歌的介紹:http://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad
谷歌翻譯-》本人修改版:(不一定准確)minidump-》小型轉儲
介紹
Breakpad是一個庫和工具套件可以讓你發布的應用程序(把編譯器提供的調試信息剝離掉的)給用戶,記錄了崩潰緊湊的“dump”文件,發送回您的服務器,並從這些minidump產生C和C++堆棧蹤跡。Breakpad可以根據請求使沒有崩潰的程序也可以寫出minidump。
目前使用Breakpad的有谷歌瀏覽器,火狐,谷歌的Picasa,卡米諾,谷歌地球,和其他項目。
Breakpad有三個主要組件:
- 客戶端是一個庫,包含在您的應用程序中。 它可以獲取當前線程的狀態和當前加載的可執行文件和共享庫的ID寫轉儲文件。您可以配置客戶端發生了崩潰時寫入一個minidump時,或明確要求時。
- 符號卸載器是一個程序,讀取由編譯器產生的調試信息,並生成一個使用Breakpad格式的符號文件 。
- 該處理器(minidump processor)是一個程序,讀取一個minidump文件,找到相應的版本的符號文件的(可執行文件和共享庫的轉儲提到的),並產生了一個人可讀的C / C + +堆棧跟蹤。