KADB(8) Maintenance Commands and Procedures KADB(8)


kadb - a kernel debugger



ok boot device_specifier kadb [-d] [boot-flags]

select (b)oot or (i)nterpreter: b kadb [-d] [boot-flags]


kadb, an interactive kernel debugger, has been replaced by kmdb(1). For
backwards compatibility, the methods used to load kadb will be
interpreted as requests to load kmdb(1). Unlike with the compatibility
link from adb(1) to mdb(1), kmdb(1) will always load in its native user
interface mode, regardless of the name used to load it.

kmdb(1) is based on mdb(1), and thus shares mdb's user interface style
and feature set. The mdb(1) man page describes the features and operation
of mdb. The kmdb(1) man page describes the differences between mdb and
kmdb. This man page describes the major changes and incompatibilities
between kadb and kmdb.

Consult the Modular Debugger Guide for a detailed description of both mdb
and kmdb.

Major changes

This section briefly lists the major differences between kadb and kmdb.
It is not intended to be exhaustive.

Debugger Loading and Unloading

kmdb(1) may be loaded at boot, as with kadb. It may also be loaded
after boot, thus allowing for kernel debugging and execution control
without requiring a system reboot. If kmdb(1) is loaded after boot,
it may be unloaded.

mdb Feature Set

The features introduced by mdb(1), including access to kernel type
data, debugger commands (dcmds), debugger modules (dmods), and
enhanced execution control facilities, are available under kmdb(1).
Support for changing the representative CPU (:x) is available for
both SPARC and x86. Furthermore, full execution-control facilities
are available after the representative CPU has been changed.

Significant Incompatibilities

This section lists the significant features that have changed
incompatibly between kadb and kmdb(1). It is not intended to be
exhaustive. All kmdb(1) commands referenced here are fully described in
the kmdb(1) man page. A description as well as examples can be found in
the Modular Debugger Guide.

Deferred Breakpoints

The kadb-style "module#symbol:b" syntax is not supported under
kmdb(1). Instead, use "::bp module`symbol".


The ::wp dcmd is the preferred way to set watchpoint with kmdb.
Various options are available to control the type of watchpoint set,
including -p for physical watchpoints (SPARC only), and -i for I/O
port watchpoints (x86 only). $l is not supported, therefore, the
watchpoint size must be specified for each watchpoint created.

Access to I/O Ports (x86 only)

The commands used to access I/O ports under kadb have been replaced
with the ::in and ::out dcmds. These two dcmds allow both read and
write of all I/O port sizes supported by kadb.


adb(1), kmdb(1), mdb(1), attributes(7)

Modular Debugger Guide:


illumos December 9, 2017 KADB(8)