kdb 命令

允许检查系统转储或正在运行的内核。

语法

kdb -h

kdb [-c CommandFile] [-cp] [-i HeaderFile] [-l] [-script] -w -u KernelFile

kdb [-c CommandFile] [-cp] [-i HeaderFile] [-l] [-script] [-v] [SystemImageFile [KernelFile [KernelModule ...]]]

kdb [-c CommandFile] [-cp] [-i HeaderFile] [-l] [-script] [-v] [-m SystemImageFile] [-u KernelFile] [-k KernelModule]

描述

kdb 命令是一个交互式实用程序,用来检查操作系统映像或运行内核。 kdb 命令解释并格式化系统的控制结构,并为检查转储提供各种函数。

SystemImageFile参数指定包含系统映像的文件。 该值可以指示系统转储,转储设备的名称或 /dev/pmem 特殊文件。 默认SystemImageFile为 "/dev/pmem

KernelFile参数指定 kdb 将用于解析内核符号定义的AIX®内核。 内核文件必须是可用的。 在检查系统转储时,内核文件必须与用来执行系统转储的内核相同。 KernelFile 的缺省值为 /unix

KernelModule 参数指定 kdb 命令用于解析在内核文件本身中找不到的符号定义的任何其他内核模块的文件名。

在活动系统上使用 kdb 命令需要 root 用户许可权。 这是必需的,因为使用了特殊文件 /dev/pmem 。 要在活动系统上运行 kdb 命令,请输入以下命令:

kdb
注: 在正在运行的系统上对当前进程进行堆栈跟踪不起作用。

要对系统映像文件调用 kdb 命令,请输入:

kdb SystemImageFile

kdb 启动时将在用户的主目录和当前工作目录中查找 .kdbinit 文件。 如果 .kdbinit 文件存在于这些位置中的任何一个位置,那么 kdb 将运行文件中的所有命令,就像在交互式 kdb 提示符处输入这些命令一样。 如果在这两个位置都存在 .kdbinit 文件,那么将首先处理主目录中的文件,然后处理当前工作目录中的文件 (除非当前目录是主目录,在此情况下仅处理文件一次)。

标志

描述
-c CommandFile 为启动脚本文件另外指定一个名称。 如果使用此选项,那么 kdb 将在主目录和当前目录 (而不是 .kdbinit 文件) 中搜索 CommandFile 参数。
-cp 使 kdb 在该命令运行时打印出启动脚本文件中的每个命令。此命令可用于帮助调试 .kdbinit 文件 (或使用 -c 标志指定的任何其他文件)。 每个命令将在其前面打印一个 + (加号) 符号。
-h 显示关于命令行用法的简短帮助消息和可用命令行选项简要清单。
-i HeaderFile 使 HeaderFile 参数中定义的所有 C 结构都可用于 kdb print 子命令。 此选项要求系统上安装有 C 编译器。 如果 HeaderFile 变量需要其他 .h 文件进行编译,那么可能还需要使用单独的 -i 选项来指定这些文件。
-k 模块 指示 kdb 使用 模块 参数作为其他内核模块,以解析内核本身中未找到的符号定义。 使用此选项等价于使用 KernelModule 参数指定内核模块。
-l 禁用 kdb 中的内联寻呼机 (即, more (^C to quit) ? 提示符)。 在这种情况下, kdb 中的 set scroll 子命令不起作用,无论滚动设置如何,内联寻呼机始终处于禁用状态。
-m 图像 指示 kdb 将 图像 参数作为系统映像文件使用。 使用此选项等价于使用 SystemImageFile 参数指定系统映像文件。
-script 禁用内联寻呼机 (即, more (^C to quit) ? 提示符) ,并在 kdb 启动时禁用大多数状态信息的打印。 此选项便于脚本和充当 kdb 前端的其他程序解析 kdb 命令的输出。
-u 内核 指示 kdb 将 内核 用作用于解析符号定义的内核文件。 使用此选项等价于使用 KernelFile 参数指定内核。
-v 当 kdb 启动时,显示系统转储文件中所有组件转储表 (CDT) 的列表。 CDT 列出实际包含在系统转储中的内存区域。 如果在实时系统上使用 kdb ,那么将忽略此选项。
-w 直接检查内核文件,而不是检查系统映像。 然而,正常情况下将显示来自系统映像文件的内存位置的所有 kdb 子命令都将直接从 KernelFile 读取数据。 写内存的子命令都不可用。

示例

以下示例演示 kdb 命令的调用选项

  1. 要使用缺省系统映像和内核映像文件来调用 kdb 命令,请输入:
    kdb

    kdb 程序返回 (0)> 提示并等待子命令的输入。

  2. 要使用名为 "/var/adm/ras/vmcore.0的转储文件和名为 "/unixUNIX内核文件调用 "kdb命令,请键入
    kdb /var/adm/ras/vmcore.0 /unix

    kdb 程序返回 (0)> 提示并等待子命令的输入。

文件

描述
/usr/sbin/kdb 包含 kdb 命令。
/dev/pmem 缺省系统映像文件
/unix 缺省内核文件