![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() --ホーム--
|
どんなメッセージを記録すべきか?カーネルがお亡くなりになったときには,まず,本当にカーネルがお亡くなり になっているかどうか確かめます.
とにかくログインさえできれば,リブートする手段は残されています.さて, 本当にお亡くなりになった時は,
をできるかぎり正確に記録してください.あいまいな表現で質問しても,おそ らく的確なアドバイスは得られないでしょう.とにかく,正確な記録が重要です. 例外発生まず,例外で落ちた場合を見てみます.予期せぬ例外が発生すると, Fatal trap 12: page fault while in kernle mode fault virtual address = 0x80 fault code = supervisor code, page not present instruction pointer = 0x8:0xf01a5836 codesegment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL 1 current precess = 25 (stty) interrupt mask = panic: page fault のような表示がでます.このメッセージを記録します.1行目には,例外の種類 が記録されています.この場合はpage faultです.2行目にはどこにアクセス しようとしてpage faultが発生したか示されています.instruction pointer の部分は, page faultを起こした命令のアドレスが示されています. もし,DDBを有効にしていれば, db> という表示がでるので, trace と入力してください.すると,スタックトレースが表示されるので,その結果 を記録してください. つぎに,再起動します.そして, nm /kernel | sort | more と入力します.カーネルのシンボルテーブルが表示されるので,例外発生時の メッセージのinstruction pointerの後の`0x8:'の後に表示されている数字の あたりがどうなっているのか調べてください.もし, f01a5088 t _vnode_pager_leaf_getpages f01a5588 t _vnode_pager_putpages f01a56a4 t _vnode_pager_leaf_putpages f01a58c4 T _vnode_pager_lock f01a5910 F autoconf.o となっていれば,page faultを起こしたのは,vnode_pager_putpagesの中であ ることがわかります. パニックした場合パニックした場合は, panic: vm_bounce_alloc: Unmapped page のように,理由が表示されます.必ず記録してください.もし,DDBが有効に なっていれば, db> という表示がでるので, trace と入力してください.すると,スタックトレースが表示されるので,その結果 を記録してください. ハングアップの場合これは極めてやっかいです.もし,DDBが有効になっていれば,CTRL+ALT+DEL (PC-98の場合は,ALTではなくGRPH)でDDBに入ります.そこで, ps と実行し,結果を記録してください.もし,DDBに入らない場合は,CAPSやNUM キー(IBM-PC),カナキー(PC-98)を押し,LEDが点滅するかどうかを記録してく ださい. |
![]() |
![]() |
![]() |
![]() |
![]() |