From 28564b67fc0386aaa8e7eedd53b8e1016a822729 Mon Sep 17 00:00:00 2001 From: hanai Date: Tue, 25 Mar 1997 06:31:27 +0000 Subject: [PATCH] Catch up with the original. Submitted by: yoshiaki@kt.rim.or.jp and nao@tom-yam.or.jp --- share/doc/ja_JP.EUC/handbook/kerneldebug.sgml | 81 ++++++++++++++++++- 1 file changed, 77 insertions(+), 4 deletions(-) diff --git a/share/doc/ja_JP.EUC/handbook/kerneldebug.sgml b/share/doc/ja_JP.EUC/handbook/kerneldebug.sgml index 22faf8c4b621..7b22399cd92e 100644 --- a/share/doc/ja_JP.EUC/handbook/kerneldebug.sgml +++ b/share/doc/ja_JP.EUC/handbook/kerneldebug.sgml @@ -1,12 +1,12 @@ - + - + カーネルデバッグ

原作 &a.paul; and &a.joerg;

訳: &a.yoshiaki;. - 2 November 1996. + 18 March 1997. kgdbによるカーネルのクラッシュダンプのデバッグ @@ -39,7 +39,9 @@ カーネルデバッグモードで動かしていることを意味します. gdb-kオプションをつけて起動するか kgdbという名前でリン クして起動することでこのモードになります. デフォルトでは このリンク - は作られていません. + は作られていません. また, このアイデアは GNU関係者たちが彼らのツール + を別の名前で呼び出した時に異なった動作をするということを好まない, と + いう点で不評です. あるいは将来この機能を廃止することになるかもしれません. カーネルを作った時にそのコピーを kernel.debugという名前で作 りましょう. また, オリジナルに対して strip -dを実行します. @@ -409,6 +411,77 @@ char (文 カーネルのシングルステップ中にオンラインマニュアルを読むことは難しい ということを覚えておいてください. +リモート GDB を使ったオンラインカーネルデバッグ + +

この機能は FreeBSD 2.2 からサポートされました. これは本当にすばらし +い機能です. + + GDB はすでにかなり以前より config -g で行な + い, strip -x でデバッグシンボルを取り除きます. そして +% gdb -k kernel +GDB is free software and you are welcome to distribute copies of it + under certain conditions; type "show copying" to see the conditions. +There is absolutely no warranty for GDB; type "show warranty" for details. +GDB 4.16 (i386-unknown-freebsd), +Copyright 1996 Free Software Foundation, Inc... +(kgdb) + + + リモートデバッグセッションの初期化 (1番目のシリアルポートを使用する + ことの設定) を以下のように行ないます. + + +(kgdb) target remote /dev/cuaa0 + + + 次にターゲットマシン (デバイスのプローブ直前で DDB に入っています) + で次のように入力します: + + +Debugger("Boot flags requested debugger") +Stopped at Debugger+0x35: movb $0, edata+0x51bc +db> gdb + + + DDB は次のような出力を返すでしょう. + +Next trap will enter GDB remote protocol mode + + + ``gdb''と入力するたびに リモート GDB とローカル DDB が交互に切り替わ + ります. トラップをすぐに起こすために単に ``s'' (step) と入力して下 + さい. そうするとホストの GDB はターゲットのカーネルの制御を行なうよ + うになります. + + +Remote debugging using /dev/cuaa0 +Debugger (msg=0xf01b0383 "Boot flags requested debugger") + at ../../i386/i386/db_interface.c:257 +(kgdb) + + + このセッションではソースコードへのフルアクセスや Emacs の window 上 + の gud-mode (これは別の Emacs window に自動的にソースコードを表示し + ます) で動かすなど, 通常の GDB セッションでできることのほとんどのこ + とができます. + コンソールドライバのデバッグ

DDBを動かすためにはコンソールドライバが必要ですから, コンソールドラ