summaryrefslogtreecommitdiff
path: root/Kernel/KSyms.h
AgeCommit message (Collapse)Author
2022-10-01Kernel: Add ability to dump backtrace from provided frame pointerTimon Kruiper
When an exception happens it is sometimes hard to figure out where exactly the exception happened, so use the frame pointer of the trap frame to print a backtrace.
2022-04-01Everywhere: Run clang-formatIdan Horowitz
2021-11-11Everywhere: Pass AK::StringView by valueAndreas Kling
2021-08-04Kernel: Print panic backtrace to both the screen and serialLuke
Previously it would only print the backtrace to serial, which would be inaccessible if you don't have serial setup.
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-02-25Kernel: Take some baby steps towards x86_64Andreas Kling
Make more of the kernel compile in 64-bit mode, and make some things pointer-size-agnostic (by using FlatPtr.) There's a lot of work to do here before the kernel will even compile.
2020-04-08Kernel: Update cryptically-named functions related to symbolicationAndreas Kling
2020-02-16Kernel: Move all code into the Kernel namespaceAndreas Kling
2020-01-18Meta: Add license header to source filesAndreas Kling
As suggested by Joshua, this commit adds the 2-clause BSD license as a comment block to the top of every source file. For the first pass, I've just added myself for simplicity. I encourage everyone to add themselves as copyright holders of any file they've added or modified in some significant way. If I've added myself in error somewhere, feel free to replace it with the appropriate copyright holder instead. Going forward, all new source files should include a license header.
2020-01-16Kernel+LibELF: Don't blindly trust ELF symbol offsets in symbolicationAndreas Kling
It was possible to craft a custom ELF executable that when symbolicated would cause the kernel to read from user-controlled addresses anywhere in memory. You could then fetch this memory via /proc/PID/stack We fix this by making ELFImage hand out StringView rather than raw const char* for symbol names. In case a symbol offset is outside the ELF image, you get a null StringView. :^) Test: Kernel/elf-symbolication-kernel-read-exploit.cpp
2019-11-28Kernel: Allow modules to link against anything in kernel.map :^)Andreas Kling
We now use the symbols from kernel.map to link modules as they are loaded into the kernel. This is pretty fricken cool!
2019-11-06Kernel: Remove unnecessary init_ksyms() functionAndreas Kling
2019-09-06AK: Rename <AK/AKString.h> to <AK/String.h>Andreas Kling
This was a workaround to be able to build on case-insensitive file systems where it might get confused about <string.h> vs <String.h>. Let's just not support building that way, so String.h can have an objectively nicer name. :^)
2019-07-03AK: Rename the common integer typedefs to make it obvious what they are.Andreas Kling
These types can be picked up by including <AK/Types.h>: * u8, u16, u32, u64 (unsigned) * i8, i16, i32, i64 (signed)
2019-05-16Kernel: Simplify dump_backtrace() API for clients.Andreas Kling
It makes no sense that clients had to worry about whether or not KSyms were loaded.
2019-02-24Kernel: Make dump_backtrace() kinda sorta work.Andreas Kling
2019-02-15Use modern C++ attributes instead of __attribute__ voodoo.Andreas Kling
This is quite nice, although I wish [[gnu::always_inline]] implied inline. Also "gnu::" is kind of a wart, but whatcha gonna do.
2019-01-01Unbreak ksym loading and make reading /proc/PID/stack not crash.Andreas Kling
2018-12-24Move kernel symbolication code out of init.cpp and into its own KSym files.Andreas Kling
Also use a simple array of { dword, const char* } for the KSyms and put the whole shebang in kmalloc_eternal() memory. This was a fugly source of kmalloc perma-frag.