The kmdb(1M) debugger supports macros that can be used to display kernel data structures. Use $M to display kmdb macros. Macros are used in the form:
[ address ] $<macroname |
Neither the information displayed by these macros nor the format in which the information is displayed, constitutes an interface. Therefore, the information and format can change at any time.
The kmdb macros in the following table are particularly useful to developers of device drivers. For convenience, legacy macro names are shown where applicable.
Table 22–1 kmdb Macros
Dcmd |
Legacy Macro |
Description |
---|---|---|
::devinfo |
devinfo devinfo_brief devinfo.prop |
Print a summary of a device node |
::walk devinfo_parents |
devinfo.parent |
Walk the ancestors of a device node |
::walk devinfo_sibling |
devinfo.sibling |
Walk the siblings of a device node |
::minornodes |
devinfo.minor |
Print the minor nodes that correspond to the given device node |
::major2name |
Print the name of a device that is bound to a given device node. |
|
::devbindings |
Print the device nodes that are bound to a given device node or major number. |
The ::devinfo dcmd displays a node state that can have one of the following values:
The driver's attach(9E) routine returned successfully.
The node is bound to a driver, but the driver's probe(9E) routine has not yet been called.
The parent nexus has assigned a bus address for the driver. The implementation-specific initializations have been completed. The driver's probe(9E) routine has not yet been called at this point.
The device node has been linked into the kernel's device tree, but the system has not yet found a driver for this node.
The driver's probe(9E) routine returned successfully.
The device is fully configured.