mdb Command

The modular debugger, mdb, is the recommended post-mortem debugger for the kernel. This debugger also includes a number of desirable usability features such as command-line editing, command history, built-in output pager, syntax checking, and command pipelining. A programming API is available that enables a compilation of modules to perform desired tasks within the context of the debugger.

For more information, see the Oracle Solaris Modular Debugger Guide and the mdb(1) man page.

Example 1-2 Using mdb to Display Information

Display a high-level view of a system's memory usage.

Note that the following command uses the ‐-kernel option in place of the obsolescent ‐k option:

# mdb --kernel --unsafe-io-access
Loading modules: [ unix genunix specfs dtrace mac cpu.generic 
cpu_ms.AuthenticAMD.15 uppc pcplusmp scsi_vhci zfs mpt sd ip 
hook neti arp usba sockfs kssl qlc fctl stmf stmf_sbd md lofs 
random idm fcp crypto cpc smbsrv nfs fcip sppp ufs logindmux 
ptm nsmb scu mpt_sas pmcs emlxs ]
> ::memstat
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                     160876               628   16%
ZFS File Data              303401              1185   30%
Anon                        25335                98    2%
Exec and libs                1459                 5    0%
Page cache                   5083                19    1%
Free (cachelist)             6616                25    1%
Free (freelist)            510870              1995   50%

Total                     1013640              3959
Physical                  1013639              3959
> $q
         

When using either the kmdb or mdb debugger, the module name prefix is not required. After a module is loaded, its symbols form a common name space with the core kernel symbols and any other previously loaded module symbols.