模块化调试器 mdb 是各个 Solaris 调试器中比较独特的,因为它可以轻松扩展。有一个编程 API 可用,可用来编辑模块以便在调试器的上下文中执行所需任务。
mdb 还包括一系列所需的可用性功能,包括命令行编辑、命令历史记录、内置输出分页程序、语法检查和命令流水线作业。mdb 是适用于内核的推荐用事后分析调试器。
有关更多信息,请参见 mdb(1)。
示例 1-2 使用 mdb 显示信息显示系统的内存使用情况的高级别视图。例如:
# mdb -k 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
有关使用该模块化调试器的更多信息,请参见Oracle Solaris Modular Debugger Guide。
在使用 kmdb 或 mdb 调试器时,模块名称前缀不是必需的。加载模块之后,其符号连同核心内核符号及之前加载的任何其他模块符号会构成一个通用名称空间。