下列问题涉及内核调试程序。
在处理某些 64 位可执行文件和库时,dbx 调试程序因内存访问失败而终止。但是,该问题并不影响这些 64 位对象的正常使用。将显示一条类似以下示例的错误消息:
dbx: internal error: signal SIGBUS (invalid address alignment) |
解决方法:改为使用 mdb 调试程序或 Solaris 动态跟踪工具。这些替代工具可以诊断使用 64 位对象的进程。
运行 Solaris 内核调试程序以调试活动系统的系统可能循环,并显示不完整的错误消息。当 OpenBoot PROM 的主 CPU 更改时发生此循环。系统复位即可恢复系统操作。不过,对原始故障的跟踪将会丢失。因此,无法执行对致命复位的诊断。
解决方法:当系统处于 PROM 级别时,会显示 OpenBoot 的 ok 提示符。在具有多个 CPU 的系统中,ok 提示符前面是括在花括号中的数字。此数字表示系统中的活动 CPU。要在处于 PROM 级别时运行调试会话,请执行以下步骤:
通过键入以下命令,将 pil 提高到 f:
{0} ok h# 0f pil! |
使用 switch-cpu 命令,选择性地从当前活动的 CPU 切换到另外的 CPU。例如,要从 CPU #0 切换到 CPU #1,请键入以下命令:
(0) ok 1 switch-cpu |
现在,ok 提示符前面是要切换的 CPU 的编号。
{1} ok |
运行调试程序。
在调试程序会话结束时,发出 reset-all 命令以使系统恢复为正常使用。
确保将系统升级到 OpenBoot PROM 的最新版本。