OpenTechEngine / OpenTechBFG

Engine based on (RB) Doom 3 BFG aiming to allow the creation of standalone games
Other
84 stars 11 forks source link

Crash Handler #62

Open kortemik opened 8 years ago

kortemik commented 8 years ago

Some day in future we should use something like https://code.google.com/p/google-breakpad/ for generating dumps from crashes. They can be examined by developers and the end users don't have to be involved too deeply into debugging process.

This will allow us to see into actual errors in the code, even though there are a lot of things on Coverity to clean up, but from static code analysis it's hard to say which programming errors cause problems in real life and how often.

BielBdeLuna commented 8 years ago

interesting, I've been experiencing a lot of crashes with OTE and some of them crashed the whole computer (when playing sounds from scripts and not caching them first) and having something like this would be very useful.

DanielGibson commented 8 years ago

If it crashes your whole computer it's an OS bug, that mustn't happen.

I guess most OTE crashes we've experienced so far were because of missing assets and similar.

Anyway, breakpad would be useful.

BielBdeLuna commented 8 years ago

I could restore the system with ctrl+alt+f1 and restart lightdm, but I don't know if doing this is good or bad.

DanielGibson commented 8 years ago

killall -9 OpenTechEngine was not enough? That's bad, but must be a problem in X11/window manager/GPU driver. An unprivileged userspace program mustn't be able to lock up or crash your system.

(Of course we should still try to avoid triggering that kind of bugs if possible)

ghost commented 8 years ago

What should I use for crash reports related to OTE on Windows? My system is upgrading to Win 10 soon. Usually OTE just closes, giving the Windows find a solution prompt.

BielBdeLuna commented 8 years ago

I will try next time Daniel, I didn't know about it.

I'm on Ubuntu with Intel Sandy Bridge GPU ( mesa )

kortemik commented 8 years ago

@Yetta1 I would think three times before upgrading to win10 https://narf-archive.com/pix/f5d49abe402d1a1bb8202ba6298455ab737c82ba.jpeg

ghost commented 8 years ago

@kortemik I know about some of those dodgy features, WIndows 8.1 already has some of it hidden, I just disabled those features through reg tweaks and admin tools. It was only until a few months ago that some options for security were able to seen through well hidden options screens which the average Joe would unlikely find after an update. Damn I//um|na7i with their nu wurld ord3r agenda. Paranoia ensues.

ghost commented 8 years ago

@kortemik Imagine the MS servers track certain keywords and use the system as some form of corporate espionage to gain new ideas and data for products. Some poor little dev team getting it in the rear without knowing that their ideas have been stolen and little chance to prove it and sue MS.

Luckily I haven't upgraded yet, plus I've got Linux on my other system now, so i'll do all the sensitive stuff on that instead, only really using Win for gaming.

kortemik commented 7 years ago
$ find symbols/ -type f -or -type l
symbols/libCEGUICoreWindowRendererSet.so/0D79C6EF1343CE5914E9C75B078C705E0/libCEGUICoreWindowRendererSet.so.sym
symbols/OpenTechEngine/BB9CD7290FCC4485AF589AE8DAB52F430/OpenTechEngine.sym
symbols/OpenTechEngine/BB9CD7290FCC4485AF589AE8DAB52F430/OpenTechEngine.stripped.sym
symbols/libCEGUIBase-0.so/7B6AAAF5C392287F7C63A9DAFA17FC440/libCEGUIBase-0.so.sym
symbols/libCEGUIBase-0.so/7B6AAAF5C392287F7C63A9DAFA17FC440/libCEGUIBase-0.so.2.4.2.sym
symbols/libCEGUICommonDialogs-0.so/A82E1C9A3E3250C5480BA9558D7FB1830/libCEGUICommonDialogs-0.so.sym
symbols/libpthread-2.22.so/F6084411C61E163005411425DB10F7020/libpthread-2.22.so.sym
symbols/libCEGUISTBImageCodec.so/008399F381620BFAFA924BEC3E13E0E90/libCEGUISTBImageCodec.so.sym
symbols/ld-2.22.so/327AC0A37DD4DB2D5C1EE81F4BD380FF0/ld-2.22.so.sym
symbols/libCEGUIOpenGLRenderer-0.so/AD917C610680AF138C2FEC2A7D18FEAA0/libCEGUIOpenGLRenderer-0.so.sym
symbols/OpenTechEngine.stripped
symbols/libCEGUIRapidXMLParser.so/301ACA9DA809E2B1E1C53291F2ED60E20/libCEGUIRapidXMLParser.so.sym
symbols/libstdc++.so.6.0.21/979D32155950481E966ECFD5DE68FBDB0/libstdc++.so.6.0.21.sym
symbols/libc-2.22.so/DC913A61D1EA4AF5DBD8EE6A4891A80B0/libc-2.22.so.sym
symbols/libCEGUIBase-0.so.2.4.2
$ file lib/libCEGUI*|grep strip|grep -v not
lib/libCEGUIBase-0.so.2.4.2:                ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=f5aa6a7b92c37f287c63a9dafa17fc444fc8697c, stripped
lib/libCEGUICommonDialogs-0.so.2.4.2:       ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=9a1c2ea8323ec550480ba9558d7fb183fc8dfe75, stripped
lib/libCEGUICoreWindowRendererSet.so:       ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=efc6790d431359ce14e9c75b078c705e24673b79, stripped
lib/libCEGUIOpenGLRenderer-0.so.2.4.2:      ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=617c91ad800613af8c2fec2a7d18feaa22040ef1, stripped
lib/libCEGUIRapidXMLParser.so:              ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=9dca1a3009a8b1e2e1c53291f2ed60e2394ddabf, stripped
lib/libCEGUISTBImageCodec.so:               ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=f39983006281fa0bfa924bec3e13e0e933f3caf9, stripped

$ file bin/OpenTechEngine.stripped 
bin/OpenTechEngine.stripped: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=29d79cbbcc0f8544af589ae8dab52f43aad04d26, stripped
$ ../libs/breakpad/minidump_stackwalk /tmp/41d2216b-61ef-9136-3167aa50-0100bede.dmp ./symbols 2>/dev/null > 41d2216b-61ef-9136-3167aa50-0100bede.txt

I would say it's working: 41d2216b-61ef-9136-3167aa50-0100bede.txt

We still have windows to support and all the other stuff around the crash upload but I'd say it's some good progress.

kortemik commented 7 years ago

Also this cut's down the binary size:

12M OpenTechEngine.stripped
6.8M    libCEGUIBase-0.so.2.4.2
200K    libCEGUICommonDialogs-0.so.2.4.2
652K    libCEGUICoreWindowRendererSet.so
936K    libCEGUIOpenGLRenderer-0.so.2.4.2
52K libCEGUIRapidXMLParser.so
80K libCEGUISTBImageCodec.so

57M OpenTechEngine
24M libCEGUIBase-0.so.2.4.2.orig
784K    libCEGUICommonDialogs-0.so.2.4.2.orig
3.1M    libCEGUICoreWindowRendererSet.so.orig
2.7M    libCEGUIOpenGLRenderer-0.so.2.4.2.orig
196K    libCEGUIRapidXMLParser.so.orig
236K    libCEGUISTBImageCodec.so.orig
BielBdeLuna commented 7 years ago

does it help with that OpenAL Issue?

kortemik commented 7 years ago

Yes but I already provided bt full out of gdb so we have this rich information available. The difference is that with this kind of method we can get the dump from anyone by just requesting "please send us the file in /tmp"

On Tue, Jul 19, 2016 at 7:53 PM, Biel Bestué de Luna < notifications@github.com> wrote:

does it help with that OpenAL Issue?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/OpenTechEngine/OpenTechBFG/issues/62#issuecomment-233696182, or mute the thread https://github.com/notifications/unsubscribe-auth/AA19OuxvXm-JilbaD3ZqBDFbWm6ymHoGks5qXQEGgaJpZM4Fimtz .

BielBdeLuna commented 7 years ago

great