从Mac调试Chrome崩溃报告



我的应用程序在Mac上设法使客户的Chrome浏览器崩溃。我要求客户启用崩溃报告,并在下次发生这种情况时将转储文件发给我。我得到了一个crash。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格式写入转储文件。微软商店中当前的WinDbg预览版(1.2205.18001.0)确实可以打开并调试crashpad从Windows以外的平台(包括Linux和Mac OS)转储。它理解并支持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也有自己的一套工具来从crash- pad转储中提取信息:https://www.chromium.org/developers/decoding-crash-dumps/

相关内容

  • 没有找到相关文章

最新更新