From a16b9230a8012384e93cf569575f06b9f5566d12 Mon Sep 17 00:00:00 2001 From: Dan Robertson <dan.robertson@anidata.org> Date: Wed, 10 Jan 2018 21:31:28 +0000 Subject: [PATCH] Update debugging docs --- README.md | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 26f1bb68..8bf172e7 100644 --- a/README.md +++ b/README.md @@ -15,23 +15,32 @@ a [gdb] client to connect to it. To debug the redox kernel run. make qemu debug=yes ``` -This will start a VM with and listen on port 1234 for a [gdb] client. Run the following -to connect to it. +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 ``` -This is great, but without debug info debugging can be quite difficult. The -redox build process strips the kernel of debug info and copies the debug info -to a separate file `kernel.sym`. You can import these symbols in [gdb] with -the following +## [lldb] + +If you are going to use [lldb], run the following to start debugging. ``` -(gdb) symbol-file build/kernel.sym +(lldb) target create -s build/kernel.sym build/kernel +(lldb) gdb-remote localhost:1234 ``` -Now you can set some interesting breakpoints and `continue` the process. +## 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. [qemu]: https://www.qemu.org [gdb]: https://www.gnu.org/software/gdb/ +[lldb]: https://lldb.llvm.org/ -- GitLab