您有幾種選擇:
運行dump_syms(這是一種工具,加工PDBS到基於文本的 breakpad的.SYM格式,自帶Breakpad)在已經對所有的PDBS在 服務器和然後將它們上傳到你的breakpad服務器(有一個 夫婦的選擇,我們使用socorro)。您還需要繼續運行 它在您關心的構建的所有新符號上。從因爲它們是由stack_walker所需的服務器
請求符號時它正在處理傳入的崩潰(我們沒有這樣做)
定期尋找在崩潰的最後一個號碼遺漏符號,看他們是否在符號服務器上,通過dump_syms運行它們, 將.syms上傳到您的崩潰服務器,然後將崩潰發送到重新處理。
您將需要爲系統符號命中MS符號服務器,因此您將不得不實施以上選項之一。
我們已經與選項3一起用於系統符號,但是實現在很大程度上取決於所使用的崩潰服務器(我們使用的是socorro崩潰統計信息,而不是推薦的配置)。 MS符號服務器集成有多個python實現。從stack_walker您將知道符號的名稱和GUID,因此您可以忽略PE解析部分。
需要注意的一點是:在OSX上沒有符號服務器的概念,在那裏沒有使用breakpad崩潰轉儲。要從OSX崩潰重建堆棧跟蹤,您需要訪問源系統二進制文件(通過dump_syms運行它們)。這可能不總是可能的。您需要手動構建OSX符號的存儲庫,另請參閱:https://wiki.mozilla.org/Breakpad:Symbols
Catch#2:Windows使用不區分大小寫的FS(意外),有時生成的pdbs被鏈接器小寫,原因不明(PE使用它的二進制文件仍然參考適當的情況)。如果您的崩潰服務器在* nix機器上運行,這會產生麻煩。考慮從PE二進制本身提取符號名稱,而不是在這種情況下依賴於pdb文件名。第3步:您仍然需要運行符號服務器來調試由breakpad上傳的轉儲文件(如果堆棧跟蹤不夠,並且您想在Visual Studio中打開轉儲)。 BP 使用符號服務器,不會取代它。