mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
4f224b15ed
Before this patch, this is what would happen after something crashed: 1. CrashDaemon finds a new coredump in /tmp 2. CrashDaemon compresses the new coredump (gzip) 3. CrashDaemon parses the uncompressed coredump and prints a backtrace 4. CrashDaemon launches CrashReporter 5. CrashReporter parses the uncompressed coredump (again) 6. CrashReporter unlinks the uncompressed coredump 7. CrashReporter displays a GUI This was taking quite a long time when dealing with large programs crashing (like Browser's WebContent processes.) The new flow: 1. CrashDaemon finds a new coredump in /tmp 2. CrashDaemon mmap()'s the (uncompressed) coredump 3. CrashDaemon launches CrashReporter 4. CrashDaemon goes to sleep for 3 seconds (hack alert!) 5. CrashReporter parses the (uncompressed) coredump 6. CrashReporter unlinks the (uncompressed) coredump 7. CrashReporter displays a GUI 8. CrashDaemon wakes up (after step 4) 9. CrashDaemon compresses the coredump (gzip) TL;DR: we no longer parse the coredumps twice, and we also prioritize launching the CrashReporter GUI immediately when a new coredump shows up, instead of compressing and parsing it in CrashDaemon first. The net effect of this is that you get a backtrace on screen much sooner. That's pretty nice. :^) |
||
---|---|---|
.. | ||
AudioServer | ||
ChessEngine | ||
Clipboard | ||
ConfigServer | ||
CrashDaemon | ||
DHCPClient | ||
EchoServer | ||
FileOperation | ||
FileSystemAccessServer | ||
ImageDecoder | ||
InspectorServer | ||
KeyboardPreferenceLoader | ||
LaunchServer | ||
LookupServer | ||
NotificationServer | ||
RequestServer | ||
SpiceAgent | ||
SQLServer | ||
SystemServer | ||
Taskbar | ||
TelnetServer | ||
WebContent | ||
WebServer | ||
WebSocket | ||
WindowServer | ||
CMakeLists.txt |