Merge branch 'master' of https://github.com/redox-os/kernel
This commit is contained in:
28
README.md
28
README.md
@@ -6,6 +6,32 @@ Redox OS Microkernel
|
||||
[](https://doc.redox-os.org/kernel/kernel/)
|
||||
[](https://github.com/Aaronepower/tokei)
|
||||
|
||||
## Debugging the redox kernel
|
||||
|
||||
Documentation is still a work in progress
|
||||
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 debug=yes
|
||||
```
|
||||
|
||||
This will start a VM with and listen on port 1234 for a [gdb] client. Run the following
|
||||
to connect to it.
|
||||
|
||||
```
|
||||
(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
|
||||
|
||||
```
|
||||
(gdb) symbol-file build/kernel.sym
|
||||
```
|
||||
|
||||
Now you can set some interesting breakpoints and `continue` the process.
|
||||
|
||||
[qemu]: https://www.qemu.org
|
||||
[gdb]: https://www.gnu.org/software/gdb/
|
||||
|
||||
Reference in New Issue
Block a user