ladybird/Documentation
Patrick Meyer 83f88df757 Kernel: Add option to build with coverage instrumentation and KCOV
GCC and Clang allow us to inject a call to a function named
__sanitizer_cov_trace_pc on every edge. This function has to be defined
by us. By noting down the caller in that function we can trace the code
we have encountered during execution. Such information is used by
coverage guided fuzzers like AFL and LibFuzzer to determine if a new
input resulted in a new code path. This makes fuzzing much more
effective.

Additionally this adds a basic KCOV implementation. KCOV is an API that
allows user space to request the kernel to start collecting coverage
information for a given user space thread. Furthermore KCOV then exposes
the collected program counters to user space via a BlockDevice which can
be mmaped from user space.

This work is required to add effective support for fuzzing SerenityOS to
the Syzkaller syscall fuzzer. :^) :^)
2021-07-26 17:40:28 +02:00
..
Browser Documentation: Correct some typos in kernel and browser docs 2021-06-02 18:02:59 +02:00
Kernel Documentation: Correct some typos in kernel and browser docs 2021-06-02 18:02:59 +02:00
AdvancedBuildInstructions.md Kernel: Add option to build with coverage instrumentation and KCOV 2021-07-26 17:40:28 +02:00
BareMetalInstallation.md Documentation: Reorganize the build documentation 2021-07-10 23:24:45 +02:00
BuildInstructions.md Documentation: Remove '$' character from build instruction commands 2021-07-14 19:51:23 +02:00
BuildInstructionsMacOS.md Documentation: Reorganize the build documentation 2021-07-10 23:24:45 +02:00
BuildInstructionsOther.md Documentation: Remove '$' character from build instruction commands 2021-07-14 19:51:23 +02:00
BuildInstructionsWindows.md Documentation: Make sure Windows have QEMU tools in their WSL2 system 2021-07-13 12:57:21 +02:00
CLionConfiguration.md Documentation: Reorganize the build documentation 2021-07-10 23:24:45 +02:00
CodingStyle.md Documentation: Remove redundancy in CodingStyle.md 2021-06-06 00:18:02 +01:00
FAQ.md Documentation: Add a package manager section to the FAQ 2021-07-09 19:45:08 +01:00
HardwareCompatibility.md Kernel: Add driver for RTL8168 & RTL8111 NICs 2021-06-10 21:54:51 +02:00
HighDPI.md Everywhere: Fix typos 2021-01-22 18:41:29 +01:00
NetworkBoot.md Documentation: Add a note about enabling the console iPXE command 2021-05-14 13:25:19 +02:00
QEMU_Components.png Documentation: Suggest using x86_64 QEMU on Windows 2021-07-10 23:24:45 +02:00
RunningTests.md Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
SelfHostedRunners.md Documentation: Add git to the list of self-hosted runner requirements 2021-07-03 19:45:04 +01:00
SmartPointers.md Documentation: Document changes to creating smart pointers 2021-06-29 22:57:52 +04:30
Troubleshooting.md Documentation: Move the QEMU troubleshooting section 2021-07-10 23:24:45 +02:00
UsingQtCreator.md Meta+Documentation: Remove unused -DDEBUG from build 2021-07-12 12:26:52 +02:00
VirtualBox.md Documentation: Reorganize the build documentation 2021-07-10 23:24:45 +02:00
VirtualBox_Creation_Reference.png Documentation: Add an installation guide for VirtualBox 2020-08-05 10:52:48 +02:00
VMware.md Documentation: Reorganize the build documentation 2021-07-10 23:24:45 +02:00
WHPX_Feature.png Documentation: Add screenshot for WHPX 2021-07-10 23:24:45 +02:00