summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibCoredump
AgeCommit message (Collapse)Author
2023-05-27LibCoredump: Avoid unnecessary conversion to DeprecatedStringBen Wiederhake
2023-04-23LibCoredump+CrashReporter: Make CrashReporter work on AArch64Daniel Bertalan
This commit implements printing out the AArch64 register file and generating backtraces. Tested to work on the sshd port.
2023-03-21Everywhere: Use `LibFileSystem` where trivialCameron Youell
2023-03-06Everywhere: Stop using NonnullOwnPtrVectorAndreas Kling
Same as NonnullRefPtrVector: weird semantics, questionable benefits.
2023-02-13LibCore: Rename `File` to `DeprecatedFile`Tim Schumacher
As usual, this removes many unused includes and moves used includes further down the chain.
2023-01-27AK: Remove StringBuilder::build() in favor of to_deprecated_string()Linus Groh
Having an alias function that only wraps another one is silly, and keeping the more obvious name should flush out more uses of deprecated strings. No behavior change.
2023-01-26LibCoreDump: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-01-22LibDebug: Propagate errors throughout DWARF parsingTim Schumacher
Splitting this into a separate commit was an afterthought, so this does not yet feature any fallible operations.
2023-01-21Kernel+LibC: Move LibC/signal_numbers.h to Kernel/API/POSIXAndrew Kaster
Make Userland and Tests users just include signal.h, and move Kernel users to the new API file.
2023-01-17AK+Everywhere: Rename JsonObject::get() to ::get_deprecated()Sam Atkins
This is a preparatory step to making `get()` return `ErrorOr`.
2022-12-28LibCoredump: Remove i686 supportLiav A
2022-12-10LibCompress: Port GzipDecompressor to `Core::Stream`Tim Schumacher
2022-12-06Everywhere: Rename to_{string => deprecated_string}() where applicableLinus Groh
This will make it easier to support both string types at the same time while we convert code, and tracking down remaining uses. One big exception is Value::to_string() in LibJS, where the name is dictated by the ToString AO.
2022-12-06AK+Everywhere: Rename String to DeprecatedStringLinus Groh
We have a new, improved string type coming up in AK (OOM aware, no null state), and while it's going to use UTF-8, the name UTF8String is a mouthful - so let's free up the String name by renaming the existing class. Making the old one have an annoying name will hopefully also help with quick adoption :^)
2022-11-01Everywhere: Mark dependencies of most targets as PRIVATETim Schumacher
Otherwise, we end up propagating those dependencies into targets that link against that library, which creates unnecessary link-time dependencies. Also included are changes to readd now missing dependencies to tools that actually need them.
2022-11-01Everywhere: Explicitly link all binaries against the LibC targetTim Schumacher
Even though the toolchain implicitly links against -lc, it does not know where it should get LibC from except for the sysroot. In the case of Clang this causes it to pick up the LibC stub instead, which might be slightly outdated and feature missing symbols. This is currently not an issue that manifests because we pass through the dependency on LibC and other libraries by accident, which causes CMake to link against the LibC target (instead of just the library), and thus points the linker at the build output directory. Since we are looking to fix that in the upcoming commits, let's make sure that everything will still be able to find the proper LibC first.
2022-10-14AK+Userland: Stub out code that isn't currently implemented on AARCH64Gunnar Beutner
Even though this almost certainly wouldn't run properly even if we had a working kernel for AARCH64 this at least lets us build all the userland binaries.
2022-07-27Everywhere: Make the codebase more architecture awareUndefine
2022-07-12Everywhere: Replace single-char StringView op. arguments with charssin-ack
This prevents us from needing a sv suffix, and potentially reduces the need to run generic code for a single character (as contains, starts_with, ends_with etc. for a char will be just a length and equality check). No functional changes.
2022-07-12Everywhere: Add sv suffix to strings relying on StringView(char const*)sin-ack
Each of these strings would previously rely on StringView's char const* constructor overload, which would call __builtin_strlen on the string. Since we now have operator ""sv, we can replace these with much simpler versions. This opens the door to being able to remove StringView(char const*). No functional changes.
2022-07-12Everywhere: Explicitly specify the size in StringView constructorssin-ack
This commit moves the length calculations out to be directly on the StringView users. This is an important step towards the goal of removing StringView(char const*), as it moves the responsibility of calculating the size of the string to the user of the StringView (which will prevent naive uses causing OOB access).
2022-07-03Everywhere: Fix two inconsistent serenity_lib() output namesLinus Groh
- No underscores between word boundaries, i.e. `languageserver` and not `language_server` for LibLanguageServer - All lowercase, i.e. `coredump` and not `Coredump` for LibCoredump
2022-04-01Everywhere: Run clang-formatIdan Horowitz
2022-03-13Libraries: Use default constructors/destructors in LibX86Lenny 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-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.