kmdb(1M) 调试程序支持可用于显示内核数据结构的宏。可以使用 $M 来显示 kmdb 宏。宏的使用形式为:
[ address ] $<macroname |
这些宏所显示的信息以及显示信息所用的格式都不构成接口。因此,该信息和格式可以随时更改。
下表中的 kmdb 宏对于设备驱动程序的开发者特别有用。为方便起见,给出了传统的宏名称(如果适用)。
表 22–1 kmdb 宏
Dcmd |
传统宏 |
说明 |
---|---|---|
::devinfo |
devinfo devinfo_brief devinfo.prop |
列显设备节点的摘要 |
::walk devinfo_parents |
devinfo.parent |
遍历设备节点的祖先 |
::walk devinfo_sibling |
devinfo.sibling |
遍历设备节点的同级节点 |
::minornodes |
devinfo.minor |
列显与给定设备节点对应的次要节点 |
::major2name |
列显绑定到给定设备节点的设备的名称。 |
|
::devbindings |
列显绑定到给定设备节点或主设备号的设备节点。 |
::devinfo dcmd 显示节点状态,其值为以下所列之一:
驱动程序的 attach(9E) 例程成功返回。
节点已绑定到驱动程序,但尚未调用驱动程序的 probe(9E) 例程。
父结点已为驱动程序指定总线地址。特定于实现的初始化已完成。此时尚未调用驱动程序的 probe(9E) 例程。
设备节点已链接至内核的设备树中,但系统尚未找到用于此节点的驱动程序。
驱动程序的 probe(9E) 例程成功返回。
设备已完全配置。