argp         posts     research     bugs

Quick kmdb cheatsheet

This is mainly a reference for myself since I have been playing with OpenSolaris kernel internals lately:

  • To enable kmdb edit the kernel’s grub entry and append -k to it.
  • Break into kmdb: f1+a
  • Display status: ::status
  • List available kmdb commands (and be amazed): ::dcmds
  • View registers for CPU 0: ::cpuregs -c 0 and/or ::regs
  • Set a breakpoint at the given symbol or address: ::bp [symbol or address]
  • Set a read/write watchpoint at the given symbol or address: [symbol or address] ::wp -rw
  • Display breakpoints and watchpoints: ::events
  • Delete breakpoint (or watchpoint) #1: ::delete 1
  • Continue execution: :c
  • Next instruction, step into function calls: ::step
  • Next instruction, step over function calls: ::step over
  • Return from current function: ::step out
  • Continue execution until the next branching instruction (only x86): ::step branch
  • Disassemble around RIP: <rip::dis
  • Disassemble 100 instructions starting at the given symbol or address: ::dis -n 100 [symbol or address]
  • View backtrace: $C
  • View IDT: ::idt
  • View symbols: ::nm
  • View the kernel message buffer: ::msgbuf
  • Quit kmdb and reboot: ::quit </ul>

This brief cheatsheet does not do kmdb justice; it is an amazing built-in kernel debugger with countless features. For more details read the manpage.