summaryrefslogtreecommitdiff
path: root/Userland/Applications/CrashReporter
AgeCommit message (Collapse)Author
2021-11-24CrashReporter: Don't visualize whitespace in memory regions text editorMaciej
This was visible for memory regions with empty name.
2021-11-21CrashReporter: Show the available memory region informationTim Schumacher
2021-11-20CrashReporter: Add "Inspect in Hack Studio" buttonItamar
This allows the user to open the crash coredump in Hack Studio and inspect it in the Debug tab.
2021-11-20CrashReporter: Unlink coredump file on exitItamar
Previously, when the --unlink flag was passed to CrashReporter, it unlinked the coredump file immediately after reading it. This change makes it so the coredump file is deleted when CrashReporter exits.
2021-10-03CrashReporter: Don't crash when "Generating..." Window gets closedsw1tchbl4d3
2021-09-21CrashReporter: Show coredump loading progress in the Taskbar :^)Andreas Kling
2021-09-21CrashReporter+LibCoredump: Show progress window while loading coredumpAndreas Kling
Some coredumps take a long time to symbolicate, so let's show a simple window with a progress bar while they are loading. I'm not super happy with the factoring of this feature, but it's an absolutely kickass feature that makes crashing feel 100% more responsive than before, since you now get GUI feedback almost immediately after a crash occurs. :^)
2021-09-21CrashDaemon+CrashReporter: Streamline crash reporting a little bitAndreas Kling
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. :^)
2021-09-19CrashReporter: Add some margin around the backtrace & register viewsAndreas Kling
2021-08-23Everywhere: Core dump => CoredumpAndreas Kling
We all know what a coredump is, and it feels more natural to refer to it as a coredump (most code already does), so let's be consistent.
2021-08-18Userland+LibGUI: Add shorthand versions of the Margins constructorsin-ack
This allows for typing [8] instead of [8, 8, 8, 8] to specify the same margin on all edges, for example. The constructors follow CSS' style of specifying margins. The added constructors are: - Margins(int all): Sets the same margin on all edges. - Margins(int vertical, int horizontal): Sets the first argument to top and bottom margins, and the second argument to left and right margins. - Margins(int top, int vertical, int bottom): Sets the first argument to the top margin, the second argument to the left and right margins, and the third argument to the bottom margin.
2021-07-22Everywhere: Prefix hexadecimal numbers with 0xGunnar Beutner
Depending on the values it might be difficult to figure out whether a value is decimal or hexadecimal. So let's make this more obvious. Also this allows copying and pasting those numbers into GNOME calculator and probably also other apps which auto-detect the base.
2021-07-08Everywhere: Remove unused local variables and lambda capturesDaniel Bertalan
2021-07-01CrashReporter: Fix bogus register alignment on x86_64Andreas Kling
2021-06-30AK+Everywhere: Add and use static APIs for LexicalPathMax Wipfli
The LexicalPath instance methods dirname(), basename(), title() and extension() will be changed to return StringView const& in a further commit. Due to this, users creating temporary LexicalPath objects just to call one of those getters will recieve a StringView const& pointing to a possible freed buffer. To avoid this, static methods for those APIs have been added, which will return a String by value to avoid those problems. All cases where temporary LexicalPath objects have been used as described above haven been changed to use the static APIs.
2021-06-27Kernel+Userland: Add x86_64 registers to RegisterState/PtraceRegistersGunnar Beutner
2021-06-17Everywhere: Add component declarationsGunnar Beutner
This adds component declarations so that users can select to not build certain parts of the OS.
2021-05-13Userland: Tighten a *lot* of pledges! :^)Andreas Kling
Since applications using Core::EventLoop no longer need to create a socket in /tmp/rpc/, and also don't need to listen for incoming connections on this socket, we can remove a whole bunch of pledges!
2021-04-22Everywhere: Use linusg@serenityos.org for my copyright headersLinus Groh
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-04Kernel+CrashReporter: Add metadata about page faults to crash reportsAndreas Kling
Crash reports for page faults now tell you what kind of memory access failed and where. :^)
2021-04-04CrashReporter: Only create coredump metadata hash map onceAndreas Kling
We were rebuilding the metadata map a bunch of times on startup.
2021-03-29Everywhere: Remove empty {} from GML objectsEdgar Araújo
2021-03-28LibCoreDump+CrashDaemon: Compress coredumpsIdan Horowitz
Most coredumps contain large amounts of consecutive null bytes and as such are a prime candidate for compression. This commit makes CrashDaemon compress files once the kernel finishes emitting them, as well as adds the functionality needed in LibCoreDump to then parse them.
2021-03-12Everywhere: Remove klog(), dbg() and purge all LogStream usage :^)Andreas Kling
Good-bye LogStream. Long live AK::Format!
2021-03-07Applications: Open folder with pre-selected file where appropriate :^)speles
2021-02-23AK+Kernel+Userland: Enable some more compiletime format string checksAnotherTest
This enables format string checks for three more functions: - String::formatted() - Builder::appendff() - KBufferBuilder::appendff()
2021-02-19CrashReporter: Fix showing assertion info in backtraceLinus Groh
This was needlessly expecting the first backtrace entry function name to start with '__assertion_failed', which is no longer the case - it's now something from libsystem.so. Let's just check whether we have an 'assertion' key in the coredump's metadata, just like we do for pledge violations.
2021-01-20CrashReporter: Show pledge violation in backtraceLinus Groh
2021-01-16Everywhere: Drop "shared_buffer" in most GUI programs, pledge "recvfd"Andreas Kling
Now that WindowServer broadcasts the system theme using an anonymous file, we need clients to pledge "recvfd" so they can receive it. Some programs keep the "shared_buffer" pledge since it's still used for a handful of things.
2021-01-15CrashReporter: Show CPU register state for all threadsLinus Groh
Closes #4777 .
2021-01-15CrashReporter: Show arguments and environmentLinus Groh
Arguments as a simple label, environment in a new tab. :^) Closes #4779.
2021-01-15LibCoreDump+Crash{Daemon,Reporter}: Make backtraces thread-specificLinus Groh
We want to show an individual backtrace for each thread, not one containing backtrace entries from all threads. Fixes #4778.
2021-01-15CrashReporter: Put backtrace TextEditor in a TabWidgetLinus Groh
Since CrashReporter will be showing more info from coredumps soon, we need tabs to put those things somewhere! :^)
2021-01-15Kernel+LibELF+LibCoreDump+CrashReporter: Use JSON for ProcessInfoLinus Groh
This is in preparation of adding (much) more process information to coredumps. As we can only have one null-terminated char[] of arbitrary length in each struct it's now a single JSON blob, which is a great fit: easily extensible in the future and allows for key/value pairs and even nested objects, which will be used e.g. for the process environment, for example.
2021-01-15Everywhere: Pledge "sendfd" in WindowServer client programsAndreas Kling
This is needed for the new way we transfer window backing stores.
2021-01-12Applications: Move to Userland/Applications/Andreas Kling