簡體   English   中英

從 Mac 調試 Chrome Crashpad 崩潰報告

[英]Debugging Chrome Crashpad crash report from Mac

我的應用程序以某種方式設法使客戶在 Mac 上的 Chrome 瀏覽器崩潰。 我要求客戶啟用崩潰報告,並在下次發生故障時將轉儲文件發送給我。 我有一個Crashpad.zip文件,其中包含一堆 .dmp 文件。 我想每個文件都代表一個 Chrome 標簽的進程。 嘗試使用 Visual Studio 或 WinDbg 打開這些轉儲不起作用。 請注意,轉儲文件是在 Mac 上捕獲的,我正在使用 Windows。

當嘗試使用~k查看調用堆棧時,我得到輸出:

0:000> ~k
 # Child-SP          RetAddr               Call Site
00 00000001`6ee35960 00000000`00000000     Google_Chrome_Framework+0x4486b50

當嘗試從 Chromium 符號服務器加載符號時,我得到:

0:000> .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com
Symbol search path is: srv*;https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com
Expanded Symbol search path is: cache*;SRV*https://msdl.microsoft.com/download/symbols;https://chromium-browser-symsrv.commondatastorage.googleapis.com;srv\*c:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com

************* Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*
Deferred                                       https://chromium-browser-symsrv.commondatastorage.googleapis.com
Deferred                                       SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com
*** WARNING: Unable to verify timestamp for Google Chrome Framework
0:000> .reload
................................................................
................................................................
................................................................
................................................
Unable to load image /Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/Versions/101.0.4951.54/Google Chrome Framework, Win32 error 0n2
*** WARNING: Unable to verify timestamp for Google Chrome Framework

************* Symbol Loading Error Summary **************
Module name            Error
Google Chrome Framewor The system cannot find the file specified

我的問題是如何獲取故障轉儲的符號並對其進行調試?

Crashpad 以一種有效的 Windows minidump 格式寫入其轉儲。 Microsoft 商店中當前的 WinDbg Preview (1.2205.18001.0) 確實可以從 Windows 以外的平台(包括 Linux 和 Mac OS)打開和調試crashpad 轉儲。 它理解並支持 MachO 中包含的 MachO 圖像、MachO 符號和私有 DWARF 符號。

也就是說——為了有用——目標進程中加載​​的圖像和符號需要由調試器發現。 我在 Chromium 方面的經驗有限; 但是,據我所知,符號服務器只索引那里的 Windows 版本。

Linux ELF 和 Mac MachO 圖像確實可以在符號服務器上進行索引。 有關該內容和索引鍵格式的文檔可在https://github.com/dotnet/symstore/blob/main/docs/specs/SSQP_Key_Conventions.md獲得

如果您有直接下載某些東西的圖像/符號(例如:調試包等),您可以將它們放在本地路徑中,使用 .sympath 和 .reload 將調試器指向這樣的路徑。

我相信 Chromium 也有自己的一套工具來從 crashpad 轉儲中提取信息: https ://www.chromium.org/developers/decoding-crash-dumps/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM