diff --git a/Kernel/Makefile b/Kernel/Makefile index 1b0e2fd3f6..6bee3dd545 100644 --- a/Kernel/Makefile +++ b/Kernel/Makefile @@ -119,11 +119,11 @@ KERNEL = 1 PROGRAM = kernel SUBPROJECT_CXXFLAGS += -pie -fPIE -ffreestanding -mno-80387 -mno-mmx -mno-sse -mno-sse2 -fno-asynchronous-unwind-tables -SUBPROJECT_CXXFLAGS += -nostdlib -nostdinc -nostdinc++ +SUBPROJECT_CXXFLAGS += -nostdlib -nostdinc -nostdinc++ -g3 SUBPROJECT_CXXFLAGS += -I../Toolchain/Local/i686-pc-serenity/include/c++/9.2.0/ SUBPROJECT_CXXFLAGS += -I../Toolchain/Local/i686-pc-serenity/include/c++/9.2.0/i686-pc-serenity/ -LDFLAGS += -Ttext 0x100000 -Wl,-T linker.ld -nostdlib -lgcc -lstdc++ +LDFLAGS += -Ttext 0x100000 -Wl,-T linker.ld -nostdlib -lgcc -lstdc++ -g3 all: $(PROGRAM) $(MODULE_OBJS) kernel.map diff --git a/Kernel/debug-kernel b/Kernel/debug-kernel new file mode 100755 index 0000000000..c7cd462759 --- /dev/null +++ b/Kernel/debug-kernel @@ -0,0 +1,14 @@ +#!/bin/sh + +# Set this environment variable to override the default debugger. +# +[ -z "$SERENITY_KERNEL_DEBUGGER" ] && SERENITY_KERNEL_DEBUGGER="gdb" + +# The QEMU -s option (enabled by default in ./run) sets up a debugger +# remote on localhost:1234. So point our debugger there, and inform +# the debugger which binary to load symbols, etc from. +# +$SERENITY_KERNEL_DEBUGGER \ + -ex "file $(pwd)/kernel" \ + -ex 'set arch i386:intel' \ + -ex 'target remote localhost:1234'