下列是與核心除錯程式相關的問題。
處理某些 64 位元的可執行檔和程式庫時,dbx 除錯程式會因記憶體存取失敗而告終止。不過,此問題不會影響這些 64 位元物件的一般使用。系統會顯示類似下列範例中的錯誤訊息:
dbx: internal error: signal SIGBUS (invalid address alignment) |
解決方法:請改用 mdb 除錯程式或 Solaris Dynamic Tracing 功能。這些替代功能可診斷使用 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。