分析电子崩溃转储

时间:2018-03-07 09:59:22

标签: electron crash-dumps electron-packager google-breakpad

使用electronic-packager打包的电子应用程序正在崩溃并生成转储文件。

我能够使用breakpad,minidump_stackwalk来查看转储文件的一部分。这是输出的快照,

7  0x7fff6026ec5d
rbp = 0x0000700005badf78   rsp = 0x0000700005badf60
rip = 0x00007fff6026ec5d
Found by: previous frame's frame pointer
8  Electron Framework + 0x2608a0
rsp = 0x0000700005bae028   rip = 0x000000010d94a8a0
Found by: stack scanning

Thread 18
 0  0x7fff60134562
rax = 0x0000000002000170   rdx = 0x0000000000000000
rcx = 0x0000700001a0fee8   rbx = 0x0000700001a10000
rsi = 0x0000000000000000   rdi = 0x0000000000000004
rbp = 0x0000700001a0ff50   rsp = 0x0000700001a0fee8
 r8 = 0x0000000000000fff    r9 = 0x00007fbc4b654000
r10 = 0x0000000000000000   r11 = 0x0000000000000246
r12 = 0x0000000000000001   r13 = 0x0000000000250015
r14 = 0x0000000000000000   r15 = 0x0000000000000004
rip = 0x00007fff60134562
Found by: given as instruction pointer in context
1  0x7fff6026ec4d
rbp = 0x0000700001a0ff78   rsp = 0x0000700001a0ff60
rip = 0x00007fff6026ec4d
  Found by: previous frame's frame pointer

Loaded modules:
0x10d6e7000 - 0x10d6e7fff  Electron Helper  0.0.0.0  (main)  (WARNING: No symbols, Electron Helper, 26BF611B7ACC305A9FC5C535A513256F0)
0x10d6ea000 - 0x11164ffff  Electron Framework  0.0.0.0
0x111ba5000 - 0x111bbffff  Squirrel  1.0.0.0
0x111be1000 - 0x111c44fff  ReactiveCocoa  1.0.0.0
0x111cb6000 - 0x111ccafff  Mantle  1.0.0.0
0x111cdc000 - 0x112beefff  libnode.dylib  0.0.0.0
0x112e7f000 - 0x1130e3fff  libffmpeg.dylib  0.0.0.0
0x116972000 - 0x1169bcfff  dyld  0.0.0.0

此信息在识别崩溃方面不是很有用。 有没有办法获得发生崩溃的应用程序代码的堆栈跟踪?

此外,我不确定警告信息是否相关或如何修复它。

我看过了,

但似乎缺乏有关调试电子崩溃报告的文档。

2 个答案:

答案 0 :(得分:0)

您正在寻找代表其crashed

的主题

如果没有本地的所有调试符号,minidump_stackwalk将不会给你任何非常有用的东西。看起来上面的堆栈跟踪根本没有被解码,所以即使你发现崩溃的线程,你可能只看到内存地址。

如果您可以在本地重现崩溃,获得解码堆栈跟踪的最快方法是使用backtrace.io打开试用帐户,并将电子崩溃报告器指向其服务器。他们已经拥有了所有的Electron符号,只需很少的努力即可获得解码后的堆栈。

从长远来看,最好将生产应用程序指向远程服务器,以便自动获得堆栈跟踪。我们最终使用Sentry.io,因为整个堆栈都是开源的,并且您在一个地方遇到本机和JavaScript崩溃。

答案 1 :(得分:0)

您上载了*dsym.zip*symobols.zip是正确的,但是我会再次检查您是否获取了正确的版本(例如v1.8.7v2.0.0);符号文件仅与为其指定的版本兼容。

我会尝试为每个操作系统上载每个符号文件,这似乎已经完成,但还要上载库本身;我发现某些图书馆没有symbolspdb文件,因此我上载了图书馆本身并且可以正常工作(electron-releases就是这种情况,它是基于电子的,但差异很大,因此映射已关闭。