User Tools

Site Tools


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

Host Side

# connect target via serial port
% sudo gdb ./vmlinux
(gdb) **set serial baud 115200**
(gdb) **target remote /dev/ttyS0**

#connect target via networking
% gdb ./vmlinux
(gdb) target remote 192.168.2.2:2012

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

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

https://www.tecmint.com/install-kvm-on-ubuntu/

mywiki/linux/kgdb.1625276484.txt.gz · Last modified: (external edit)