Man page - gdbserver(1)
Available languages:
en jaManual
GDBSERVER
名 前書 式
説 明
オ プ シ ョ ン
関 連 項 目
著 作 権
名 前
gdbserver - GNU デ バ ッ ガ ー 用 リ モ ー ト サ ー バ ー
書 式
gdbserver comm prog [ args ...]
gdbserver --attach comm pid
gdbserver --multi comm
説 明
gdbserver は 、 デ バ ッ グ 対 象 の プ ロ グ ラ ム を 実 行 し て い る マ シ ン と は 異 な る マ シ ン 上 で GDB を 実 行 す る こ と を 可 能 に す る プ ロ グ ラ ム で す 。
使 用 方 法 (サ ー バ ー (タ ー ゲ ッ ト )側 ):
ま ず 、 デ バ ッ グ 対 象 の プ ロ グ ラ ム の コ ピ ー を タ ー ゲ ッ ト シ ス テ ム に 用 意 し ま す 。 gdbserver は 、 シ ン ボ ル を 関 知 し な い の で 、 使 用 ス ペ ー ス を 節 約 す る た め に プ ロ グ ラ ム か ら シ ン ボ ル を 取 り 除 く (strip す る ) の で も 構 い ま せ ん 。 す べ て の シ ン ボ ル の 処 理 は 、 ホ ス ト シ ス テ ム 上 に お い て 動 作 す る GDB が 行 い ま す 。
サ ー バ ー を 使 用 す る た め に は 、 タ ー ゲ ッ ト シ ス テ ム に ロ グ イ ン し 、 gdbserver プ ロ グ ラ ム を 実 行 し ま す 。 そ の 際 に は (a) GDB と の 通 信 方 法 、 (b) プ ロ グ ラ ム 名 、 (c) プ ロ グ ラ ム へ の 引 数 を 指 定 す る 必 要 が あ り ま す 。 一 般 的 な 書 式 は 以 下 の よ う に な り ま す 。
target>
gdbserver <comm> <program> [<args>
...]
た と え ば 、 シ リ ア ル ポ ー ト を 使 用 す る 場 合 は 、 以 下 の よ う に な り ま す 。
target> gdbserver /dev/com1 emacs foo.txt
こ の 例 で は 、 gdbserver に 対 し て 、 emacs に 引 数 foo.txt を 与 え て デ バ ッ グ す る こ と を 指 定 し て い ま す 。 そ し て GDB と の 通 信 に /dev/com1 を 使 用 し ま す 。 gdbserver は 、 ホ ス ト の GDB が 通 信 し て 来 る こ と を 辛 抱 強 く 待 ち ま す 。
TCP 接 続 を 使 用 す る 場 合 は 、 以 下 の よ う に な り ま す 。
target> gdbserver host:2345 emacs foo.txt
こ の 例 で は 、 ホ ス ト の GDB と の 通 信 に TCP を 用 い る 以 外 は 、 前 の 例 と 同 じ で す 。 引 数 "host:2345" は 、 "host" か ら の TCP 接 続 が ロ ー カ ル の TCP ポ ー ト 2345 に 接 続 さ れ る の を 待 つ 、 と い う 意 味 で す 。 (現 状 で は "host" 部 は 無 視 さ れ ま す 。 ) タ ー ゲ ッ ト シ ス テ ム で 存 在 す る TCP ポ ー ト と の 衝 突 が 無 け れ ば 、 ポ ー ト 番 号 は 自 由 に 選 ぶ こ と が で き ま す 。 ホ ス ト の GDB の "target remote" コ マ ン ド で 、 同 じ ポ ー ト 番 号 を 指 定 す る 必 要 が あ り ま す 。 他 の サ ー ビ ス と 衝 突 す る ポ ー ト 番 号 を 選 ん だ 場 合 、 gdbserver は エ ラ ー メ ッ セ ー ジ を 出 力 し て 終 了 し ま す 。
gdbserver は 、 実 行 中 の プ ロ グ ラ ム に 接 続 す る こ と が で き ま す 。 こ れ を 行 う に は --attach 引 数 を 使 用 し ま す 。 書 式 は 次 の 通 り で す 。
target> gdbserver --attach <comm> <pid>
pid は 現 在 実 行 中 の プ ロ セ ス の プ ロ セ ス ID で す 。 gdbserver に 実 行 中 の プ ロ セ ス の バ イ ナ リ を 指 定 す る 必 要 は あ り ま せ ん 。
初 期 起 動 す る コ マ ン ド 、 あ る い は ア タ ッ チ す る プ ロ セ ス ID を 指 定 せ ず に "gdbserver" を 起 動 す る に は 、 コ マ ン ド ラ イ ン オ プ シ ョ ン --multi を 用 い ま す 。 こ の 場 合 は 、 "target extended-remote" を 利 用 し て 、 デ バ ッ グ し た い プ ロ グ ラ ム を 起 動 し て 連 携 す る こ と が 必 要 で す 。
target> gdbserver --multi <comm>
使 用 方 法 (ホ ス ト 側 ):
GDB が シ ン ボ ル テ ー ブ ル を 検 査 し た り す る た め 、 ホ ス ト シ ス テ ム に は 、 タ ー ゲ ッ ト プ ロ グ ラ ム の シ ン ボ ル が 取 り 除 か れ て い な い (strip さ れ て い な い ) コ ピ ー が 必 要 で す 。 通 常 の 場 合 同 様 、 最 初 の 引 数 に タ ー ゲ ッ ト プ ロ グ ラ ム を 指 定 し て GDB を 起 動 し ま す 。 (シ リ ア ル 回 線 の ボ ー レ ー ト (baud rate) が 9600 以 外 の 場 合 は 、 --baud オ プ シ ョ ン の 指 定 が 必 要 に な り ま す 。 ) つ ま り 、 "gdb TARGET-PROG" あ る い は "gdb --baud BAUD TARGET-PROG" の よ う に 起 動 し ま す 。 そ の 後 、 新 た に 覚 え る 必 要 の あ る コ マ ン ド は 、 "target remote" (あ る い は "target extended-remote") だ け で す 。 コ マ ン ド の 引 数 は 、 デ バ イ ス 名 (通 常 /dev/ttyb の よ う な シ リ ア ル デ バ イ ス ) か 、 "HOST:PORT" 記 述 子 で す 。 た と え ば 、
(gdb) target remote /dev/ttyb
は 、 シ リ ア ル 回 線 /dev/ttyb を 使 用 し て サ ー バ ー と 通 信 し ま す 。 ま た 、
(gdb) target remote the-target:2345
は 、 TCP 接 続 で 、 ホ ス ト ‘the-target’ の gdbserver を 起 動 し た 時 に 指 定 し た ポ ー ト と 同 じ ポ ー ト 2345 を 使 用 し て サ ー バ ー と 通 信 し ま す 。 TCP 接 続 の 場 合 、 ‘target remote’ コ マ ン ド を 実 行 す る 前 に gdbserver を 実 行 し て お く 必 要 が あ り ま す 。 そ う し な い と 、 ‘Connection refused’ と い う よ う な エ ラ ー に な る で し ょ う 。
gdbserver で は 、 一 度 に 複 数 の inferior オ ブ ジ ェ ク ト を デ バ ッ グ で き ま す 。 こ れ に つ い て は GDB マ ニ ュ ア ル の "Inferiors Connections and Programs" ノ ー ド に お い て 説 明 し て い ま す 。 -- シ ェ ル コ マ ン ド で は "info -f gdb -n 'Inferiors Connections and Programs'" と し ま す 。 こ の 場 合 は 、 GDB コ マ ン ド の 別 の 形 で あ る "extended-remote" GDB を 実 行 し ま す 。
(gdb) target extended-remote the-target:2345
gdbserver オ プ シ ョ ン で あ る --multi は 、 こ の 場 合 に 使 っ て も 使 わ な く て も か ま い ま せ ん 。
オ プ シ ョ ン
gdbserver の 起 動 方 法 に は 3 つ の モ ー ド が あ り ま す 。
|
• |
プ ロ グ ラ ム 名 指 定 に よ る プ ロ グ ラ ム デ バ ッ グ : |
gdbserver <comm> <prog> [<args>...]
パ ラ メ ー タ ー comm は 、 サ ー バ ー が GDB と 通 信 す る た め の 方 法 を 指 定 し ま す 。 そ の 値 は 、 デ バ イ ス 名 (シ リ ア ル 回 線 利 用 時 )、 TCP ポ ー ト 番 号 (":1234")、 "-" ま た は "stdio" ("gdbserver" の 標 準 入 出 力 利 用 時 ) の い ず れ か で す 。 デ バ ッ グ す る プ ロ グ ラ ム 名 は prog に 指 定 し ま す 。 残 り の 引 数 は 、 そ の ま ま プ ロ グ ラ ム に 受 け 渡 さ れ ま す 。 プ ロ グ ラ ム が 終 了 す る と 、 GDB が 接 続 を 閉 じ 、 "gdbserver" は 終 了 し ま す 。
|
• |
プ ロ グ ラ ム 実 行 中 の プ ロ セ ス ID を 指 定 し た プ ロ グ ラ ム デ バ ッ グ : |
gdbserver --attach <comm> <pid>
パ ラ メ ー タ ー comm に つ い て は 前 述 済 で す 。 実 行 し て い る プ ロ グ ラ ム の プ ロ セ ス ID を pid に 指 定 し ま す 。 後 は GDB が す べ て を 処 理 し ま す 。 前 項 目 の モ ー ド と 同 じ よ う に 、 プ ロ セ ス pid が 終 了 す る と 、 GDB が 接 続 を 閉 じ 、 "gdbserver" は 終 了 し ま す 。
|
• |
マ ル チ プ ロ セ ス モ ー ド -- 複 数 の プ ロ グ ラ ム /プ ロ セ ス の デ バ ッ グ : |
gdbserver --multi <comm>
こ の モ ー ド に お い て は 、 GDB が gdbserver に 対 し て 実 行 コ マ ン ド を 指 示 し ま す 。 上 の そ れ ま で の 2 つ の モ ー ド と は 違 っ て 、 デ バ ッ グ さ れ て い た プ ロ セ ス が 終 了 し て も 、 GDB は 接 続 を 閉 じ ま せ ん 。 し た が っ て 同 一 セ ッ シ ョ ン 内 に お い て 、 複 数 の プ ロ セ ス を デ バ ッ グ す る こ と が で き ま す 。
い
ず れ の モ ー ド
に お い て も 、
以 下 の オ プ シ
ョ ン が 指 定 で
き ま す 。
--help
短 い 説 明 つ き で 、 す べ て の オ プ シ ョ ン を 表 示 し ま す 。
--version
こ の オ プ シ ョ ン に よ り gdbserver は バ ー ジ ョ ン 番 号 を 表 示 し て 終 了 し ま す 。
--attach
gdbserver は 実 行 中 プ ロ グ ラ ム に ア タ ッ チ し ま す 。 そ の 文 法 は 以 下 の と お り で す 。
target> gdbserver --attach <comm> <pid>
pid は 現 在 実 行 中 の プ ロ セ ス の プ ロ セ ス ID で す 。 gdbserver に 実 行 中 の プ ロ セ ス の バ イ ナ リ を 指 定 す る 必 要 は あ り ま せ ん 。
--multi
初 期 起 動 す る コ マ ン ド 、 あ る い は ア タ ッ チ す る プ ロ セ ス ID を 指 定 せ ず に "gdbserver" を 起 動 す る に は 、 こ の コ マ ン ド ラ イ ン オ プ シ ョ ン を 用 い ま す 。 そ し て "target extended-remote" を 利 用 し て 、 デ バ ッ グ し た い プ ロ グ ラ ム を 起 動 し ま す 。 そ の 文 法 は 以 下 の と お り で す 。
target> gdbserver --multi <comm>
--debug
"gdbserver" に 対 し て 、 デ バ ッ グ 処 理 に お け る 追 加 ス テ ー タ ス 情 報 を 表 示 す る よ う に 指 示 し ま す 。 こ の オ プ シ ョ ン は "gdbserver" 開 発 向 け と し て 、 開 発 お よ び バ グ 報 告 に 用 い る こ と を 意 図 し て い ま す 。
--remote-debug
"gdbserver" に 対 し て 、 リ モ ー ト プ ロ ト コ ル に よ る デ バ ッ グ 出 力 を 行 う こ と を 指 示 し ま す 。 こ の オ プ シ ョ ン は "gdbserver" 開 発 向 け と し て 、 開 発 お よ び バ グ 報 告 に 用 い る こ と を 意 図 し て い ま す 。
--debug-file= filename
"gdbserver" に 対 し て 、 デ バ ッ グ 出 力 を 指 定 し た filename に 書 き 出 す こ と を 指 示 し ま す 。 こ の オ プ シ ョ ン は "gdbserver" 開 発 向 け と し て 、 開 発 お よ び バ グ 報 告 に 用 い る こ と を 意 図 し て い ま す 。
--debug-format=option1 [ ,option2,... ]
"gdbserver" に 対 し て 、 デ バ ッ グ 出 力 の 各 行 に 追 加 情 報 を 含 め る こ と を 指 示 し ま す 。
--wrapper
デ バ ッ グ を 行 う た め に 起 動 す る プ ロ グ ラ ム の ラ ッ パ ー を 指 定 し ま す 。 こ の オ プ シ ョ ン に 続 け て 、 ラ ッ パ ー 名 を 指 定 す る こ と が 必 要 で す 。 ラ ッ パ ー に 受 け 渡 す コ マ ン ド ラ イ ン 引 数 が あ れ ば 、 続 け て 記 述 し ま す 。 "--" を 記 述 し て 、 ラ ッ パ ー へ の 引 数 の 終 わ り を 指 示 し ま す 。
--once
デ フ ォ ル ト で gdbserver は TCP ポ ー ト を 開 い た ま ま 、 待 ち 続 け ま す 。 し た が っ て 追 加 で 接 続 す る こ と が 可 能 で す 。 た だ し "gdbserver" に --once オ プ シ ョ ン を つ け て 実 行 す る と 、 最 初 の GDB セ ッ シ ョ ン の 接 続 を 終 え た ら 、 ポ ー ト の 待 ち 受 け を 停 止 し て 、 そ れ 以 上 の 接 続 は 行 い ま せ ん 。
関 連 項 目
GDB の 完 全 な ド キ ュ メ ン ト は Texinfo マ ニ ュ ア ル と し て メ ン テ ナ ン ス さ れ て い ま す 。 "info" と "gdb" の 両 プ ロ グ ラ ム 、 お よ び GDB の Texinfo ド キ ュ メ ン ト が 適 切 に イ ン ス ト ー ル さ れ て い れ ば 、 以 下 の コ マ ン ド
info gdb
を 実 行 し て 完 全 な マ ニ ュ ア ル を 参 照 で き ま す 。
Using GDB: A Guide to the GNU Source-Level Debugger , Richard M. Stallman and Roland H. Pesch, July 1991.
著 作 権
Copyright (c) 1988-2022 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being "Free Software" and "Free Software Needs Free Documentation", with the Front-Cover Texts being "A GNU Manual," and with the Back-Cover Texts as in (a) below.
(a) FSF の 裏 表 紙 に は 、 以 下 の 文 章 が 記 述 さ れ て い ま す : "You are free to copy and modify this GNU Manual. Buying copies from GNU Press supports the FSF in developing GNU and promoting software freedom."