summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibCoredump
AgeCommit message (Collapse)Author
2022-03-10Libraries: Use default constructors/destructors in LibCoredumpLenny Maiorani
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules "The compiler is more likely to get the default semantics right and you cannot implement these functions better than the compiler."
2022-02-14LibCoredump: Respect coredump's LD_LIBRARY_PATH when searching librariesSviatoslav Peleshko
Previously, we would only resolve libraries from `/usr/lib`, which is not the only path from which the crashed process could've loaded the libraries from.
2022-02-04LibCoredump: Add stack frame entry even if there is no object infoMaciej
We know the object name and are able to include it. Function name and source position are still unknown and will just be displayed as "??? ()"
2022-02-04LibCoredump: Fix use-after-free in Backtrace::object_info_for_region()Maciej
The first line was creating a StringView object with region name. Then, if the path didn't start with '/', it had assigned a String made from a temporary LexicalPath join result. This fixes the bug that only main executable's frames were displayed.
2022-01-28LibCoredump: Copy out the FooInfo structs to an aligned addressAli Mohammad Pur
We were handing out unaligned pointers to these, which made UBSAN super mad, copy them out to avoid that.
2022-01-28LibDebug+LibCoredump: Replace remaining reinterpret_casts and C castsAli Mohammad Pur
You misused your toys and I'm now taking them away, reflect on what you did wrong for a bit.
2022-01-28LibDebug+LibCoredump: Use ByteReader to do unaligned readsAli Mohammad Pur
The previous solution of "lol whats a UB" was not nice and tripped over itself when it was run under UBSAN, fix this by doing explicit byte-by-byte reads where needed.
2022-01-28LibDebug+Everywhere: Avoid void* -> FlatPtr -> void* danceAli Mohammad Pur
And limit the `void*` to the functions that interface the system (i.e. ptrace wrappers). This generally makes the code less riddled with casts.
2022-01-24Everywhere: Convert ByteBuffer factory methods from Optional -> ErrorOrSam Atkins
Apologies for the enormous commit, but I don't see a way to split this up nicely. In the vast majority of cases it's a simple change. A few extra places can use TRY instead of manual error checking though. :^)
2021-11-23LibCore+AK: Move MappedFile from AK to LibCoreAndreas Kling
MappedFile is strictly a userspace thing, so it doesn't belong in AK (which is supposed to be user/kernel agnostic.)
2021-11-20LibCoredump: Add Coredump::InspectorItamar
The coredump Inspector implements the ProcessInspector interface for a coredump. It is implemented using Coredump::Reader.
2021-11-20LibCoredump: Add Reader::for_each_libraryItamar
2021-11-17AK: Make JSON parser return ErrorOr<JsonValue> (instead of Optional)Andreas Kling
Also add slightly richer parse errors now that we can include a string literal with returned errors. This will allow us to use TRY() when working with JSON data.
2021-11-11Everywhere: Pass AK::ReadonlyBytes by valueAndreas Kling
2021-11-10Everywhere: Move shared library checks into a common functionTim Schumacher
While we're at it, unify the various different conditions that are scattered accross the codebase.
2021-11-10LibCoredump: Restrict library name check when querying symbolsTim Schumacher
`object_name()` already returns the cleaned library name, and we currently don't have any libraries with suffixes in /usr/lib, so we can convert this to an `ends_with()` check.
2021-10-17LibCoredump: Show frames from Loader.so if the crash occurs in itDaniel Bertalan
Previously we rejected all entries from Loader.so even if the faulting address was located in it, i.e. the actual issue was with the dynamic loader. We no longer do that to make debugging Loader crashes easier.
2021-10-17LibCoredump: Accept dynamic libraries with versioned namesDaniel Bertalan
Our Clang toolchain uses versioned names for its shared libraries, meaning that our applications link against `libc++.so.1.0`, not simply `libc++.so`. Without this change, the LLVM runtime libraries are excluded from backtraces, which makes debugging toolchain issues harder.
2021-09-22LibCoredump: Don't copy uncompressed coredumps into a ByteBufferAndreas Kling
This was completely unnecessary and accounted for 6% of the total time spent when loading a WebContent coredump into CrashReporter.
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-21LibCoredump: Make Backtrace getters return const referencesAndreas Kling
2021-09-06Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safeAli Mohammad Pur
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.