Jump to content

Kernel debugger

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Pcfist (talk | contribs) at 18:05, 22 May 2013 (added USB 3.0 to Windows NT debugging interfaces list). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A kernel debugger is a debugger present in some 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 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, but not 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
  • 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.[4][5]
  • OS X [7]

References

  1. ^ "KD". Retrieved 2011-01-25.
  2. ^ "Performing Local Kernel Debugging". Retrieved 2011-01-25.
  3. ^ "Windows Debugging". Retrieved 2013-05-22.
  4. ^ "LWN.net". Retrieved 2008-05-29.
  5. ^ 3rd may 2008 : Message from Linus Torvalds for the 2.6.26-rc1 kernel merge
  6. ^ Nellitheertha, Hariprasad. "Inside the Linux kernel debugger". Retrieved 2008-05-29.
  7. ^ Singh, Amit (2003). "XNU: The Kernel". What is Mac OS X?. Retrieved 2012-05-25. 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 {{cite web}}: Unknown parameter |month= ignored (help)