使用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
此信息在识别崩溃方面不是很有用。 有没有办法获得发生崩溃的应用程序代码的堆栈跟踪?
此外,我不确定警告信息是否相关或如何修复它。
我看过了,
这本书,“发展电子边缘”
但似乎缺乏有关调试电子崩溃报告的文档。
答案 0 :(得分:0)
您正在寻找代表其crashed
。
如果没有本地的所有调试符号,minidump_stackwalk
将不会给你任何非常有用的东西。看起来上面的堆栈跟踪根本没有被解码,所以即使你发现崩溃的线程,你可能只看到内存地址。
如果您可以在本地重现崩溃,获得解码堆栈跟踪的最快方法是使用backtrace.io打开试用帐户,并将电子崩溃报告器指向其服务器。他们已经拥有了所有的Electron符号,只需很少的努力即可获得解码后的堆栈。
从长远来看,最好将生产应用程序指向远程服务器,以便自动获得堆栈跟踪。我们最终使用Sentry.io,因为整个堆栈都是开源的,并且您在一个地方遇到本机和JavaScript崩溃。
答案 1 :(得分:0)
您上载了*dsym.zip
和*symobols.zip
是正确的,但是我会再次检查您是否获取了正确的版本(例如v1.8.7
,v2.0.0
);符号文件仅与为其指定的版本兼容。
我会尝试为每个操作系统上载每个符号文件,这似乎已经完成,但还要上载库本身;我发现某些图书馆没有symbols
或pdb
文件,因此我上载了图书馆本身并且可以正常工作(electron-releases就是这种情况,它是基于电子的,但差异很大,因此映射已关闭。