ladybird/Kernel
Brian Gianforcaro 46c60fd451 Debugging: Add kernel debugging support
Introduce the 'debug-kernel' script to allow developers to
quickly attach a debugger to the QEMU debug remote. The
setting (-s) is already enabled by ./run today when using
QEMU for virtualisation.

If the system is running under QEMU, the debugger
will break in when the script is run. If you add
the -S option to QEMU it will wait for the debugger
to connect before booting the kernel. This allows
you to debug the init/boot process.

Personally I use cgdb instead of gdb, so I opted
to make the debugger used by the script customizable
via an environment variable.

This change also adds -g3 to the kernel build so that
rich debug symbols are available in the kernel binary.
2020-01-13 11:06:42 +01:00
..
ACPI Kernel: Create a basic SMBIOS Decoder 2020-01-02 00:50:09 +01:00
Arch/i386 Kernel: Rename {ss,esp}_if_crossRing to userspace_{ss,esp} 2020-01-09 18:02:01 +01:00
Devices Kernel: Add "video" pledge for accessing framebuffer devices 2020-01-12 02:18:30 +01:00
FileSystem Kernel: read() and write() should EOVERFLOW if (offset+size) overflows 2020-01-12 20:20:17 +01:00
Heap Kernel: Demangle userspace ELF symbols in backtraces 2019-11-27 14:06:24 +01:00
Net IPv4: Require "inet" promise for ioctl() on an IPv4Socket 2020-01-12 13:28:07 +01:00
PCI Kernel: Fixing PCI MMIO access mechanism 2020-01-02 21:45:04 +01:00
TTY Kernel: Require "tty" for ioctl() on TTY and MasterPTY 2020-01-12 13:29:51 +01:00
VM Kernel: Copy Region's "is_mmap" flag when cloning regions for fork() 2020-01-10 19:24:01 +01:00
.bochsrc Meta: Make Serenity run on Bochs once again 2019-08-06 21:09:24 +02:00
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Assertions.h Kernel: Move i386.{cpp,h} => Arch/i386/CPU.{cpp,h} 2019-06-07 20:02:01 +02:00
build-gpt-image-grub.sh Build: Fix more bugs in the POSIX sh-ification of scripts 2019-11-03 13:11:43 +01:00
build-image-grub.sh Build: Bump the default disk image size from 500MB to 600MB 2019-11-26 12:54:33 +01:00
build-image-qemu.sh Build: add support for building on OpenBSD 2020-01-02 21:03:53 +01:00
build-root-filesystem.sh Base: Let's make home directories 700 to keep things private :^) 2020-01-09 21:57:52 +01:00
CMOS.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
CMOS.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Console.cpp Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
Console.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
debug-kernel Debugging: Add kernel debugging support 2020-01-13 11:06:42 +01:00
DoubleBuffer.cpp Revert "Kernel: Make DoubleBuffer use a KBuffer instead of kmalloc()ing" 2019-10-18 15:58:06 +02:00
DoubleBuffer.h Revert "Kernel: Make DoubleBuffer use a KBuffer instead of kmalloc()ing" 2019-10-18 15:58:06 +02:00
FB.h Kernel: Add framebuffer ioctls; wrap raw ioctls with a C API 2019-08-18 07:40:02 +02:00
grub.cfg Kernel: Embrace the SerenityOS name 2019-12-29 19:08:02 +01:00
grub_gpt.cfg Kernel: Embrace the SerenityOS name 2019-12-29 19:08:02 +01:00
init.cpp Kernel: Add a basic chroot() syscall :^) 2020-01-10 23:14:04 +01:00
IO.h Kernel: First cut of a sb16 driver 2019-07-13 08:00:24 +02:00
IRQHandler.cpp Kernel: Move PIC.cpp into Arch/i386/ 2019-07-09 15:04:43 +02:00
IRQHandler.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KBuffer.h Kernel: Make kernel memory regions be non-executable by default 2019-12-25 22:41:34 +01:00
KBufferBuilder.cpp Kernel: Make kernel memory regions be non-executable by default 2019-12-25 22:41:34 +01:00
KBufferBuilder.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
KernelInfoPage.h Kernel+LibC: Publish a "kernel info page" and use it for gettimeofday() 2019-12-15 21:29:26 +01:00
KeyCode.h Kernel: Implement AltGr key support 2019-12-31 19:31:42 +01:00
KParams.cpp AK: Make HashMap::get(Key) return an Optional<Value>. 2019-07-24 10:25:43 +02:00
KParams.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
kprintf.cpp Kernel: Demangle userspace ELF symbols in backtraces 2019-11-27 14:06:24 +01:00
KResult.h Kernel: Add KResult::error() to make it look symmetrical with KResultOr 2020-01-06 12:08:27 +01:00
kstdio.h Build: Get rid of the USERLAND define 2019-12-20 22:59:11 +01:00
KSyms.cpp Kernel: Start implementing x86 SMAP support 2020-01-05 18:14:51 +01:00
KSyms.h Kernel: Allow modules to link against anything in kernel.map :^) 2019-11-28 21:30:20 +01:00
linker.ld Kernel: Harden memory mapping of the kernel image 2020-01-06 13:55:39 +01:00
Lock.cpp Kernel: Fix Lock racing to the WaitQueue 2020-01-12 19:04:16 +01:00
Lock.h Kernel: Add Lock::is_locked() 2019-12-26 11:43:23 +01:00
makeall.sh Build: Add fast build mode that does not clean everything or run tests 2020-01-09 18:07:21 +01:00
Makefile Debugging: Add kernel debugging support 2020-01-13 11:06:42 +01:00
mkmap.sh Kernel: Allow modules to link against anything in kernel.map :^) 2019-11-28 21:30:20 +01:00
Module.h Kernel: Implement basic module unloading :^) 2019-11-28 21:07:22 +01:00
MousePacket.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Multiboot.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Process.cpp Kernel: Fix SMAP violation in sys$getrandom() 2020-01-12 20:10:53 +01:00
Process.h Kernel: Don't forget to copy & destroy root_directory_for_procfs 2020-01-12 20:02:11 +01:00
ProcessTracer.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ProcessTracer.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
Profiling.cpp Kernel: Separate out the symbol offsets in profile output 2019-12-12 21:59:47 +01:00
Profiling.h Kernel: Separate out the symbol offsets in profile output 2019-12-12 21:59:47 +01:00
Random.cpp Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
Random.h Kernel: Add a more expressive API for getting random bytes 2020-01-03 12:43:07 +01:00
RTC.cpp Kernel: Fix BIOS date/time on hardware 2019-09-28 13:59:49 +02:00
RTC.h Add clang-format file 2019-05-28 17:31:20 +02:00
run Kernel: Fixing PCI MMIO access mechanism 2020-01-02 21:45:04 +01:00
Scheduler.cpp Kernel: Dispatch pending signals when returning from a syscall 2020-01-12 15:04:33 +01:00
Scheduler.h Kernel: Switch to eagerly restoring x86 FPU state on context switch 2020-01-01 16:54:21 +01:00
SharedBuffer.cpp Kernel: Rename vmo => vmobject everywhere 2019-12-19 19:15:27 +01:00
SharedBuffer.h Kernel+LibC: Make all SharedBuffers purgeable (default: non-volatile) 2019-12-09 20:06:47 +01:00
StdLib.cpp Kernel: Randomize the stack canary on startup 2020-01-06 13:05:40 +01:00
StdLib.h Kernel: Pass a parameter struct to mknod() 2020-01-11 10:27:37 +01:00
sync.sh Meta: Allow sync.sh to be run from any directory 2020-01-06 10:43:00 +01:00
Syscall.cpp Kernel: Dispatch pending signals when returning from a syscall 2020-01-12 15:04:33 +01:00
Syscall.h ping: Use pledge() 2020-01-11 20:48:43 +01:00
TestModule.cpp Kernel: Have modules export their name in a "module_name" string 2019-11-29 21:31:17 +01:00
Thread.cpp Kernel: Fix Lock racing to the WaitQueue 2020-01-12 19:04:16 +01:00
Thread.h Kernel: Fix Lock racing to the WaitQueue 2020-01-12 19:04:16 +01:00
TimerQueue.cpp Kernel: Add kernel-level timer queue (heavily based on @juliusf's work) 2019-12-27 02:15:45 +01:00
TimerQueue.h Kernel: Add kernel-level timer queue (heavily based on @juliusf's work) 2019-12-27 02:15:45 +01:00
UnixTypes.h Kernel: Add a mode flag to sys$purge and allow purging clean inodes 2019-12-29 13:16:53 +01:00
WaitQueue.cpp Kernel: Fix Lock racing to the WaitQueue 2020-01-12 19:04:16 +01:00
WaitQueue.h Kernel: Fix Lock racing to the WaitQueue 2020-01-12 19:04:16 +01:00