ホーム 研究内容 FreeBSD HP電卓 今日のgoo Links

--ホーム--
研究内容
FreeBSD
HP電卓
--Links--
BSD
Security
Hardware
NetHack
HP電卓

どんなメッセージを記録すべきか?

カーネルがお亡くなりになったときには,まず,本当にカーネルがお亡くなり になっているかどうか確かめます.

  1. ALT(PC-98ではGRPH)+F1/F2/F3でコンソールを切り替えることはできるか?
  2. telnetを使って外から入ることはできませんか?

とにかくログインさえできれば,リブートする手段は残されています.さて, 本当にお亡くなりになった時は,

  1. 何をおこなったのか?
  2. どのような死に方をしたのか?(死に方の分類を参照してください.)
  3. どのようなメッセージが表示されたのか?

をできるかぎり正確に記録してください.あいまいな表現で質問しても,おそ らく的確なアドバイスは得られないでしょう.とにかく,正確な記録が重要です.


例外発生

まず,例外で落ちた場合を見てみます.予期せぬ例外が発生すると,

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が点滅するかどうかを記録してく ださい.


リーガル Contact 名大岩鉱 名大地球 名大年測
Copyright KATO Takenori, 1997, 1998, 199, 2000. All rights reserved.