在 Oracle® Solaris 11.2 中排除系统管理问题

退出打印视图

更新时间: 2014 年 9 月
 
 

检查故障转储信息

使用 mdb 实用程序可以检查控制结构、活动表、正常运行或崩溃的系统内核的内存映像,以及有关内核运行的其他信息,如以下过程中所述。


注 -  以下过程仅提供了如何使用 mdb 实用程序的有限示例。充分发挥 mdb 实用程序的潜能需要对内核有详细的了解,这不在本手册的讨论范围之内。有关使用此实用程序的详细信息,请参见 mdb(1) 手册页。

如何检查故障转储信息

  1. 成为 root 角色。

    请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  2. 转至保存故障转储信息的目录。

    例如:

    # cd /var/crash

    如果您不确定故障转储的位置,请使用 dumpadm 命令来确定系统中配置为存储内核故障转储文件的位置。例如:

    # /usr/sbin/dumpadm
          Dump content: kernel pages
           Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
    Savecore directory: /var/crash
      Savecore enabled: yes
       Save compressed: on
  3. 通过使用模块调试器实用程序 (mdb) 来检查故障转储。
    # /usr/bin/mdb [-k] crashdump-file
    –k

    通过假定文件为操作系统故障转储文件来指定内核调试模式。

    crashdump-file

    指定操作系统故障转储文件。

    例如:

    # /usr/bin/mdb -K vmcore.0

    也可以通过以下方式来指定此命令:

    # /usr/bin/mdb -k 0
  4. 显示系统崩溃状态。
    > ::status
       .
       .
       .
    > ::system
       .
       .
       .

    要在检查内核故障转储时使用 ::system dcmd 命令,核心文件必须为内核故障转储文件,且必须在启动 mdb 实用程序时指定了 –k 选项。

  5. 退出 mdb 实用程序。
    > $quit
示例 1-4  检查故障转储信息

此示例显示 mdb 实用程序的样例输出,其中包括系统信息,并列出在此系统的 /etc/system 文件中设置的可调参数。

# cd /var/crash
# /usr/bin/mdb -k unix.0 
Loading modules: [ unix krtld genunix ip nfs ipc ptm ]
> ::status
debugging crash dump /dev/mem (64-bit) from ozlo
operating system: 5.10 Generic sun4v
> ::system
set ufs_ninode=0x9c40 [0t40000]
set ncsize=0x4e20 [0t20000]
set pt_cnt=0x400 [0t1024]
> $q