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 -->
|
<!-- The FreeBSD Japanese Documentation Project -->
|
||||||
<!-- Original revision: 1.13 -->
|
<!-- Original revision: 1.14 -->
|
||||||
|
|
||||||
<chapt><heading>カーネルデバッグ<label id="kerneldebug"></heading>
|
<chapt><heading>カーネルデバッグ<label id="kerneldebug"></heading>
|
||||||
|
|
||||||
|
@ -482,6 +482,37 @@ Debugger (msg=0xf01b0383 "Boot flags requested debugger")
|
||||||
ます) で動かすなど, 通常の GDB セッションでできることのほとんどのこ
|
ます) で動かすなど, 通常の 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>
|
<sect><heading>コンソールドライバのデバッグ</heading>
|
||||||
|
|
||||||
<p>DDBを動かすためにはコンソールドライバが必要ですから, コンソールドラ
|
<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 -->
|
<!-- The FreeBSD Japanese Documentation Project -->
|
||||||
<!-- Original revision: 1.13 -->
|
<!-- Original revision: 1.14 -->
|
||||||
|
|
||||||
<chapt><heading>カーネルデバッグ<label id="kerneldebug"></heading>
|
<chapt><heading>カーネルデバッグ<label id="kerneldebug"></heading>
|
||||||
|
|
||||||
|
@ -482,6 +482,37 @@ Debugger (msg=0xf01b0383 "Boot flags requested debugger")
|
||||||
ます) で動かすなど, 通常の GDB セッションでできることのほとんどのこ
|
ます) で動かすなど, 通常の 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>
|
<sect><heading>コンソールドライバのデバッグ</heading>
|
||||||
|
|
||||||
<p>DDBを動かすためにはコンソールドライバが必要ですから, コンソールドラ
|
<p>DDBを動かすためにはコンソールドライバが必要ですから, コンソールドラ
|
||||||
|
|
Loading…
Reference in a new issue