---
title: IOKernelDebugger
framework: kernel
role: symbol
role_heading: Class
path: kernel/iokerneldebugger
---

# IOKernelDebugger

Kernel debugger nub.

## Declaration

```occ
class IOKernelDebugger : IOService
```

## Overview

Overview This object interfaces with the KDP (kernel debugger protocol) module and dispatches KDP requests to its target (provider). The target, designated as the debugger device, must implement a pair of handler functions that are called to handle KDP transmit and receive requests during a debugging session. Only a single IOKernelDebugger in the system can be active at a given time. The active IOKernelDebugger is the one that has an IOKDP object attached as a client. The debugger device is usually a subclass of IOEthernetController. However, any IOService can service an IOKernelDebugger client, implement the two polled mode handlers, and transport the KDP packets through a data channel. However, KDP assumes that the debugger device is an Ethernet interface and therefore it will always send, and expect to receive, an Ethernet frame.

## Topics

### Miscellaneous

- [debugger](kernel/iokerneldebugger/1812543-debugger.md)
- [free](kernel/iokerneldebugger/1812554-free.md)
- [handleClose](kernel/iokerneldebugger/1812560-handleclose.md)
- [handleIsOpen](kernel/iokerneldebugger/1812565-handleisopen.md)
- [handleOpen](kernel/iokerneldebugger/1812573-handleopen.md)
- [init](kernel/iokerneldebugger/1812584-init.md)
- [kdpLinkStatusDispatcher](kernel/iokerneldebugger/1812595-kdplinkstatusdispatcher.md)
- [kdpReceiveDispatcher](kernel/iokerneldebugger/1812607-kdpreceivedispatcher.md)
- [kdpSetModeDispatcher](kernel/iokerneldebugger/1812616-kdpsetmodedispatcher.md)
- [kdpTransmitDispatcher](kernel/iokerneldebugger/1812631-kdptransmitdispatcher.md)
- [lock](kernel/iokerneldebugger/1812643-lock.md)
- [nullLinkStatusHandler](kernel/iokerneldebugger/1812653-nulllinkstatushandler.md)
- [nullRxHandler](kernel/iokerneldebugger/1812663-nullrxhandler.md)
- [nullSetModeHandler](kernel/iokerneldebugger/1812671-nullsetmodehandler.md)
- [nullTxHandler](kernel/iokerneldebugger/1812684-nulltxhandler.md)
- [powerStateDidChangeTo](kernel/iokerneldebugger/1812705-powerstatedidchangeto.md)
- [powerStateWillChangeTo](kernel/iokerneldebugger/1812727-powerstatewillchangeto.md)
- [registerHandler](kernel/iokerneldebugger/1812741-registerhandler.md)
- [signalDebugger](kernel/iokerneldebugger/1812763-signaldebugger.md)
- [unlock](kernel/iokerneldebugger/1812777-unlock.md)

### Instance Variables

- [_reserved](kernel/iokerneldebugger/reserved.md)

### Instance Methods

- [free](kernel/iokerneldebugger/1434274-free.md)
- [getMetaClass](kernel/iokerneldebugger/1434261-getmetaclass.md)
- [handleClose](kernel/iokerneldebugger/1434255-handleclose.md)
- [handleIsOpen](kernel/iokerneldebugger/1434297-handleisopen.md)
- [handleOpen](kernel/iokerneldebugger/1434247-handleopen.md)
- [init](kernel/iokerneldebugger/1434259-init.md)
- [message](kernel/iokerneldebugger/1434267-message.md)
- [powerStateDidChangeTo](kernel/iokerneldebugger/1434263-powerstatedidchangeto.md)
- [powerStateWillChangeTo](kernel/iokerneldebugger/1434249-powerstatewillchangeto.md)

### Type Methods

- [debugger](kernel/iokerneldebugger/1434276-debugger.md)
- [interfacePublished](kernel/iokerneldebugger/1434253-interfacepublished.md)
- [kdpLinkStatusDispatcher](kernel/iokerneldebugger/1434288-kdplinkstatusdispatcher.md)
- [kdpReceiveDispatcher](kernel/iokerneldebugger/1434293-kdpreceivedispatcher.md)
- [kdpSetModeDispatcher](kernel/iokerneldebugger/1434295-kdpsetmodedispatcher.md)
- [kdpTransmitDispatcher](kernel/iokerneldebugger/1434299-kdptransmitdispatcher.md)
- [lock](kernel/iokerneldebugger/1434300-lock.md)
- [nullLinkStatusHandler](kernel/iokerneldebugger/1434245-nulllinkstatushandler.md)
- [nullRxHandler](kernel/iokerneldebugger/1434243-nullrxhandler.md)
- [nullSetModeHandler](kernel/iokerneldebugger/1434292-nullsetmodehandler.md)
- [nullTxHandler](kernel/iokerneldebugger/1434290-nulltxhandler.md)
- [registerHandler](kernel/iokerneldebugger/1434271-registerhandler.md)
- [signalDebugger](kernel/iokerneldebugger/1434241-signaldebugger.md)
- [unlock](kernel/iokerneldebugger/1434281-unlock.md)

## Relationships

### Inherits From

- [IOService](kernel/ioservice.md)

## See Also

### Debugging

- [IOKitDiagnostics](kernel/iokitdiagnostics.md)
- [IOKitDiagnosticsParameters](kernel/iokitdiagnosticsparameters.md)
