Skip to content
Snippets Groups Projects
Robin Randhawa's avatar
Robin Randhawa authored
Oddly, not specifying this or using aarch64-unknown-none (which would be
the default that cc gets from the TARGET environment variable) both
fail to invoke the appropriate compiler to build the asm code.

Using aarch64-unknown-redox works but shouldn't really be needed. This
is perhaps because of some odd arrangement of KTARGET, TARGET, the
installed prefix toolchain and the kernel target JSON spec.

The early_init asm code shall be replaced by a pure Rust bootloader
eventually so let's move with this for the moment.
ea21fba3
History

kernel

Redox OS Microkernel

MIT licensed docs

Debugging the redox kernel

Running qemu with the -s flag will set up qemu to listen on port 1234 for a gdb client to connect to it. To debug the redox kernel run.

make qemu gdb=yes

This will start a VM with and listen on port 1234 for a gdb or lldb client.

gdb

If you are going to use gdb, run the following to load debug symbols and connect to your running kernel.

(gdb) symbol-file build/kernel.sym
(gdb) target remote localhost:1234

lldb

If you are going to use lldb, run the following to start debugging.

(lldb) target create -s build/kernel.sym build/kernel
(lldb) gdb-remote localhost:1234

Debugging

After connecting to your kernel you can set some interesting breakpoints and continue the process. See your debuggers man page for more information on useful commands to run.