Software:Kernel debugger

From HandWiki

A kernel debugger is a debugger present in some operating system kernels to ease debugging and kernel development by the kernel developers. A kernel debugger might be a stub implementing low-level operations, with a full-blown debugger such as GNU Debugger (gdb), running on another machine, sending commands to the stub over a serial line or a network connection, or it might provide a command line that can be used directly on the machine being debugged.

Operating systems and operating system kernels that contain a kernel debugger:

  • The Windows NT family includes a kernel debugger named KD,[1] which can act as a local debugger with limited capabilities (reading and writing kernel memory, and setting breakpoints)[2] and can attach to a remote machine over a serial line, IEEE 1394 connection, USB 2.0 or USB 3.0 connection.[3] The WinDbg GUI debugger can also be used to debug kernels on local and remote machines.
  • BeOS and Haiku include a kernel debugger usable with either an on-screen console or over a serial line. It features various commands to inspect memory, threads, and other kernel structures. [4]
  • DragonFly BSD
  • Linux kernel; No kernel debugger was included in the mainline Linux tree prior to version 2.6.26-rc1 because Linus Torvalds didn't want a kernel debugger in the kernel.[5][6]
  • NetBSD (DDB for local, KGDB for remote)
  • macOS - ddb for local, kdp for remote[11]
  • OpenBSD includes ddb which has a syntax is similar to GNU Debugger.[12]

References

  1. "Debugging Environments". Debugging Tools for Windows (WinDbg, KD, CDB, NTSD). https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debuggers-in-the-debugging-tools-for-windows-package. 
  2. "Local Kernel-Mode Debugging". https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/performing-local-kernel-debugging. 
  3. "Live Kernel-Mode Debugging Using KD". https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/performing-kernel-mode-debugging-using-kd. 
  4. "Welcome to Kernel Debugging Land". https://www.haiku-os.org/documents/dev/welcome_to_kernel_debugging_land/. 
  5. "LWN.net". https://lwn.net/2000/0914/a/lt-debugger.php3. Retrieved 2008-05-29. 
  6. Torvalds, Linus (3 May 2008). "Linux 2.6.26-rc1". LWN. https://lwn.net/Articles/280912/. Retrieved 9 March 2015. 
  7. Nellitheertha, Hariprasad. "Inside the Linux kernel debugger". Archived from the original on 21 June 2008. https://web.archive.org/web/20080621041048/http://www.ibm.com/developerworks/linux/library/l-kdbug/index.html. Retrieved 2008-05-29. 
  8. "LWN Weekly Kernel News". 7 Sep 2008. https://lwn.net/Articles/297281/. 
  9. "MDB Github Website". 1 Jan 2016. Archived from the original on 22 March 2016. https://web.archive.org/web/20160322085319/http://jeffmerkey.github.io/linux/. 
  10. "LWN Weekly Kernel News". 28 June 2010. https://lwn.net/Articles/394146/. 
  11. Singh, Amit (December 2003). "XNU: The Kernel". What is Mac OS X?. http://osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html. "the built-in low-level kernel debugger, ddb, is part of XNU's Mach component, and so is kdp, a remote kernel debugging protocol implementation" 
  12. "ddb(4)". 2019-12-06. https://man.openbsd.org/ddb. "The ddb debugger provides a means for debugging the kernel, and analysing the kernel after a system crash ("panic"), with a gdb(1)-like syntax."