允许检查系统转储或正在运行的内核。
kdb [flags] [ SystemImageFile [ KernelFile [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 将在主目录和当前目录中搜索 CommandFile 参数,而不是搜索 .kdbinit 文件。 |
-cp | 使 kdb 在执行启动脚本文件中的每个命令时将其打印出。此标志可用于在调试 .kdbinit 文件(或使用 -c 标志指定的其它任何文件)时提供帮助。 每个命令在打印时前面都会有一个 +(加号)记号。 |
-h | 显示关于命令行用法的简短帮助消息和可用命令行选项简要清单。 |
-i HeaderFile | 使 HeaderFile 参数中定义的所有 C 结构可以结合 kdb print 子命令使用。 此选项要求系统上安装有 C 编译器。如果 HeaderFile 变量需要其它 .h 文件才能编译,可能还必须使用单独的 -i 选项指定这些文件。 |
-k Module | 指示 kdb 将 Module 参数用作附加的内核模式来解析内核本身内找不到的符号定义。使用此选项等价于使用 KernelModule 参数指定内核模块。 |
-l | 禁用 kdb 中的内嵌寻呼机(即 more (^C to quit) ? 提示符)。在这种情况下,kdb 中的 set scroll 子命令不起作用,将不考虑脚本设置,始终禁用内嵌寻呼机。 |
-m Image | 指示 kdb 将 Image 参数用作系统映像文件。使用此选项等价于使用 SystemImageFile 参数指定系统映像文件。 |
-script | 禁用内嵌寻呼机(即 more (^C to quit) ?)并禁止在启动 kdb 时打印大多数状态信息。此选项使脚本和充当 kdb 的前台的其它程序解析来自 kdb 命令的输出变得更容易。 |
-u Kernel | 指示 kdb 将 Kernel 用作内核文件来解析符号定义。使用此选项等价于使用 KernelFile 参数指定内核。 |
-v | kdb 启动时显示包含系统转储文件中的所有组件转储表(CDT)的列表。CDT 列出系统转储中实际包含的内存区域。如果 kdb 在活动的系统上使用,将忽略此选项。 |
-w | 直接检查内核文件,而不是检查系统映像。然而,正常情况下将显示来自系统映像文件的内存位置的所有 kdb 子命令都将直接从 KernelFile 读取数据。 写内存的子命令都不可用。 |
下列示例演示了 kdb 命令的调用选项。
kdb
kdb 程序返回一个 (0)> 提示并等待输入子命令。
kdb /var/adm/ras/vmcore.0 /unix
kdb 程序返回一个 (0)> 提示并等待输入子命令。
/usr/sbin/kdb | 包含 kdb 命令。 |
/dev/pmem | 缺省系统映像文件 |
/unix | 缺省内核文件 |
AIX 5L Version 5.2 KDB Kernel Debugger and kdb command