From f0a1c1cbccc313273ba63f2a45c8101e10354a2e Mon Sep 17 00:00:00 2001 From: Wildan Mubarok Date: Thu, 31 Jul 2025 13:33:51 +0000 Subject: [PATCH] Add kernel debugger GUI via podman --- mk/podman.mk | 14 ++++++++++++++ podman/redox-gdb-containerfile | 15 +++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 podman/redox-gdb-containerfile diff --git a/mk/podman.mk b/mk/podman.mk index abd2b1e1..2fb068dc 100644 --- a/mk/podman.mk +++ b/mk/podman.mk @@ -70,3 +70,17 @@ ifeq ($(PODMAN_BUILD),1) else @echo PODMAN_BUILD=$(PODMAN_BUILD), container not required. endif + +KERNEL_PATH := cookbook/recipes/core/kernel +KERNEL_PATH_SOURCE := $(ROOT)/$(KERNEL_PATH)/source +KERNEL_PATH_TARGET := $(ROOT)/$(KERNEL_PATH)/target/$(TARGET) + +kernel_debugger: + @echo "Building and running gdbgui container..." + podman build -t redox-kernel-debug - < $(ROOT)/podman/redox-gdb-containerfile + podman run --rm -p 5000:5000 -it --name redox-gdb \ + -v "$(KERNEL_PATH_TARGET)/build/kernel.sym:/kernel.sym" \ + -v "$(KERNEL_PATH_SOURCE)/src:/src" \ + redox-kernel-debug --gdb-cmd "gdb -ex 'set confirm off' \ + -ex 'add-symbol-file /kernel.sym' \ + -ex 'target remote host.containers.internal:1234'" diff --git a/podman/redox-gdb-containerfile b/podman/redox-gdb-containerfile new file mode 100644 index 00000000..90efb0a7 --- /dev/null +++ b/podman/redox-gdb-containerfile @@ -0,0 +1,15 @@ +FROM debian:stable-backports + +RUN apt-get update \ + && apt-get install -y --no-install-recommends -t stable-backports \ + python3 \ + python3-pip \ + gdb \ + curl \ + && rm -rf /var/lib/apt/lists/* + +RUN pip3 install gdbgui --break-system-packages + +EXPOSE 5000 + +ENTRYPOINT [ "gdbgui", "--remote", "--port", "5000" ]