mywiki:linux:kgdb
This is an old revision of the document!
Table of Contents
Kernel debugging kgdb
- Target side:
- echo ttyS0,115200 > /sys/module/kgdboc/parameters/kgdboc
- echo g > /proc/sysrq-trigger
- If you want to start the debugging when the kernel starts loading, append to the command line parameters of the kernel. You must use this order! First you must register the I/O driver and then kgdb will be able to wait.
- kgdboc=ttyS0,115200 kgdbwait
- console=ttyS0,115200 kgdboc=ttyS0,115200 nokaslr ???
- To check whether kgdb is enabled/disabled:
- root@babu-VirtualBox:~# cat /sys/module/kgdboc/parameters/kgdboc
- ttyS0,115200
- #disable
- echo “” > /sys/module/kgdboc/paramters/kgdboc
Note:
- /dev/tty0 is also by default virtual console;
- /dev/tty is kind of an alias to the console (physical, virtual or pseudo device, if any) associated to the process that open it
- *
Using kgdb, kdb and the kernel debugger internals: https://www.kernel.org/doc/html/latest/dev-tools/kgdb.html
Setup
- Host windows and VM is linux via virtualbox: http://sysprogs.com/VBoxGDB/tutorial/
- Debugging between Host ↔ VM via virtualbox: https://www.opensourceforu.com/2011/03/kgdb-with-virtualbox-debug-live-kernel/, or refer to https://cs.wmich.edu/~rhardin/cs4540/KernelDebuggingVirtualbox.pdf
- The socat binary installed on the host. This is used to link the pipe file (FIFO) that is created by VirtualBox, with a pseudo-terminal on the host system.
- https://wiki.ubuntu.com/Kernel/Systemtap: very good informatin, esp to get debug symbols for kernel X
Debugging between VM ↔ VM: http://www.alexlambert.com/2017/12/18/kernel-debugging-for-newbies.html
- Disable KASLR on the debuggee machine via grub configuration
set up gdb envrionment
- Using kgdb, kdb and the kernel debugger internals: https://www.kernel.org/doc/html/latest/dev-tools/kgdb.html
https://www.tecmint.com/install-kvm-on-ubuntu/
- Kernel Memory Leak Detector: https://www.kernel.org/doc/html/latest/dev-tools/kmemleak.html
mywiki/linux/kgdb.1625276226.txt.gz · Last modified: (external edit)
