Catch up with the original.
Submitted by: Yoshiaki Uchikawa <yoshiaki@kt.rim.or.jp>
This commit is contained in:
parent
4b5696a343
commit
262624385b
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=1394
2 changed files with 66 additions and 4 deletions
|
@ -1,6 +1,6 @@
|
|||
<!-- $Id: kerneldebug.sgml,v 1.6 1997-03-25 06:31:27 hanai Exp $ -->
|
||||
<!-- $Id: kerneldebug.sgml,v 1.7 1997-04-09 03:05:58 hanai Exp $ -->
|
||||
<!-- The FreeBSD Japanese Documentation Project -->
|
||||
<!-- Original revision: 1.13 -->
|
||||
<!-- Original revision: 1.14 -->
|
||||
|
||||
<chapt><heading>カーネルデバッグ<label id="kerneldebug"></heading>
|
||||
|
||||
|
@ -482,6 +482,37 @@ Debugger (msg=0xf01b0383 "Boot flags requested debugger")
|
|||
ます) で動かすなど, 通常の GDB セッションでできることのほとんどのこ
|
||||
とができます.
|
||||
|
||||
<p>リモート GDB は LKM のデバッグも行なうことができます. 最初に LKM を
|
||||
デバッグシンボルを含めた形で作ります.
|
||||
<tscreen><verb>
|
||||
# cd /usr/src/lkm/linux
|
||||
# make clean; make COPTS=-g
|
||||
</verb></tscreen>
|
||||
|
||||
そしてターゲットマシン上でモジュールのこのバージョンをインストールし
|
||||
ます. これをロードしてから, <tt>modstat</tt> を使ってロードされている
|
||||
ことを確認してください:
|
||||
<tscreen><verb>
|
||||
# linux
|
||||
# modstat
|
||||
Type Id Off Loadaddr Size Info Rev Module Name
|
||||
EXEC 0 4 f5109000 001c f510f010 1 linux_mod
|
||||
</verb></tscreen>
|
||||
|
||||
示されたロードアドレスに 0x20 (a.outのヘッダはおそらくこの大きさでしょ
|
||||
う) を加えます. それがモジュールコードの再配置されるアドレスです.
|
||||
GDB の <tt>add-symbol-file</tt> コマンドを使ってデバッガにモジュールの
|
||||
情報をつたえます.
|
||||
<tscreen><verb>
|
||||
(kgdb) add-symbol-file /usr/src/lkm/linux/linux_mod.o 0xf5109020
|
||||
add symbol table from file "/usr/src/lkm/linux/linux_mod.o" at
|
||||
text_addr = 0xf5109020?
|
||||
(y or n) y
|
||||
(kgdb)
|
||||
</verb></tscreen>
|
||||
|
||||
これで LKM のすべてのシンボルにアクセスできるようになります.
|
||||
|
||||
<sect><heading>コンソールドライバのデバッグ</heading>
|
||||
|
||||
<p>DDBを動かすためにはコンソールドライバが必要ですから, コンソールドラ
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!-- $Id: kerneldebug.sgml,v 1.6 1997-03-25 06:31:27 hanai Exp $ -->
|
||||
<!-- $Id: kerneldebug.sgml,v 1.7 1997-04-09 03:05:58 hanai Exp $ -->
|
||||
<!-- The FreeBSD Japanese Documentation Project -->
|
||||
<!-- Original revision: 1.13 -->
|
||||
<!-- Original revision: 1.14 -->
|
||||
|
||||
<chapt><heading>カーネルデバッグ<label id="kerneldebug"></heading>
|
||||
|
||||
|
@ -482,6 +482,37 @@ Debugger (msg=0xf01b0383 "Boot flags requested debugger")
|
|||
ます) で動かすなど, 通常の GDB セッションでできることのほとんどのこ
|
||||
とができます.
|
||||
|
||||
<p>リモート GDB は LKM のデバッグも行なうことができます. 最初に LKM を
|
||||
デバッグシンボルを含めた形で作ります.
|
||||
<tscreen><verb>
|
||||
# cd /usr/src/lkm/linux
|
||||
# make clean; make COPTS=-g
|
||||
</verb></tscreen>
|
||||
|
||||
そしてターゲットマシン上でモジュールのこのバージョンをインストールし
|
||||
ます. これをロードしてから, <tt>modstat</tt> を使ってロードされている
|
||||
ことを確認してください:
|
||||
<tscreen><verb>
|
||||
# linux
|
||||
# modstat
|
||||
Type Id Off Loadaddr Size Info Rev Module Name
|
||||
EXEC 0 4 f5109000 001c f510f010 1 linux_mod
|
||||
</verb></tscreen>
|
||||
|
||||
示されたロードアドレスに 0x20 (a.outのヘッダはおそらくこの大きさでしょ
|
||||
う) を加えます. それがモジュールコードの再配置されるアドレスです.
|
||||
GDB の <tt>add-symbol-file</tt> コマンドを使ってデバッガにモジュールの
|
||||
情報をつたえます.
|
||||
<tscreen><verb>
|
||||
(kgdb) add-symbol-file /usr/src/lkm/linux/linux_mod.o 0xf5109020
|
||||
add symbol table from file "/usr/src/lkm/linux/linux_mod.o" at
|
||||
text_addr = 0xf5109020?
|
||||
(y or n) y
|
||||
(kgdb)
|
||||
</verb></tscreen>
|
||||
|
||||
これで LKM のすべてのシンボルにアクセスできるようになります.
|
||||
|
||||
<sect><heading>コンソールドライバのデバッグ</heading>
|
||||
|
||||
<p>DDBを動かすためにはコンソールドライバが必要ですから, コンソールドラ
|
||||
|
|
Loading…
Reference in a new issue