名 前
jdb − Java デ バ ッ ガ
形 式
jdb [ options ] [ class ] [ arguments ]
パ ラ メ ー タ
options コ マ ン ド 行 オ プ シ ョ ン |
||
class デ バ ッ グ を 開 始 す る ク ラ ス 名 |
||
arguments ク ラ ス の |
main() メ ソ ッ ド に 渡 さ れ る 引 数
機 能 説 明
Java デ バ ッ ガ の jdb は 、 Java ク ラ ス 用 の 単 純 な コ マ ン ド 行 デ バ ッ ガ で す 。 Java Platform Debugger Architecture を 画 面 に 表 示 し な が ら 実 行 し 、 ロ ー カ ル ま た は リ モ ー ト の Java Virtual Machine の 検 査 と デ バ ッ グ を 行 う こ と が で き ま す 。
jdb セ
ッ シ ョ ン の 開
始
jdb セ ッ シ ョ ン を
開 始 す る に は
さ ま ざ ま な 方
法 が あ り ま す
。 も っ と も 頻
繁 に 使 わ れ る
の は 、 ア プ リ
ケ ー シ ョ ン の
メ イ ン ク ラ ス
を デ バ ッ グ し
て 、 jdb か ら 新
し く Java Virtual Machine (VM) を
起 動 す る 方 法
で す 。 コ マ ン
ド 行 で 、 java(1) の
代 わ り に jdb コ
マ ン ド を 入 力
し ま す 。 た と
え ば 、 ア プ リ
ケ ー シ ョ ン の
メ イ ン ク ラ ス
が MyClass の 場 合 は
、 次 の コ マ ン
ド を 使 用 し て jdb
環 境 で デ バ ッ
グ し ま す 。
example% jdb MyClass こ の よ う に し て 起 動 す る と 、 jdb は 2 つ 目 の Java VM を 呼 び 出 し 、 指 定 さ れ た パ ラ メ ー タ を 渡 し 、 指 定 さ れ た ク ラ ス を ロ ー ド し ま す 。 そ の あ と 、 ク ラ ス の 最 初 の 命 令 を 実 行 す る 前 に VM を 停 止 さ せ ま す 。
jdb の も う 1 つ の 使 用 方 法 は 、 す で に 起 動 し て い る Java VM に jdb を 接 続 す る こ と で す 。 jdb を 使 用 し て デ バ ッ グ す る VM は 、 次 の オ プ シ ョ ン を 使 用 し て 起 動 し な け れ ば な り ま せ ん 。
た と え ば 、 次 の コ マ ン ド は MyClass ア プ リ ケ ー シ ョ ン を 実 行 し 、 後 で jdb を 接 続 で き る よ う に し ま す 。
example% jdb
−Xdebug \
−Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
Class 次 の コ マ ン
ド で jdb を VM に 接
続 で き ま す 。
example% jdb −attach 8000 こ の と き 、 jdb は 新 し い VM を 起 動 す る の で は な く 、 既 存 の VM に 接 続 す る の で 、 jdb コ マ ン ド 行 で MyClass を 指 定 し な い こ と に 注 意 し て く だ さ い 。 こ れ 以 外 に も デ バ ッ ガ (jdb) を VM に 接 続 す る 方 法 は た く さ ん あ り 、 jdb は そ の す べ て の 方 法 を サ ポ ー ト し て い ま す 。 こ の よ う な 接 続 オ プ シ ョ ン に つ い て は 、 Java Platform Debugger Architecture の マ ニ ュ ア ル を 参 照 し て く だ さ い 。
jdb 基 本 コ マ ン ド 以 下 に jdb 基 本 コ マ ン ド の 一 覧 を 示 し ま す 。 Java デ バ ッ ガ で 使 用 可 能 な そ の 他 の コ マ ン ド は 、 help コ マ ン ド で 表 示 で き ま す 。 な お 局 所 (ス タ ッ ク ) 変 数 を ブ ラ ウ ズ す る に は 、 そ の ク ラ ス が javac −g オ プ シ ョ ン で コ ン パ イ ル さ れ て い る 必 要 が あ り ま す 。
cont ブ レ ー ク ポ イ ン ト 、 例 外 、 ま た は ス テ ッ プ 実 行 の あ と で 、 デ バ ッ グ 中 の ア プ リ ケ ー シ ョ ン の 実 行 を 継 続 し ま す 。 | |
dump プ リ ミ テ ィ ブ 値 の 場 合 に は 、 こ の コ マ ン ド は |
print と 同 じ で す 。 オ ブ ジ ェ ク ト の 場 合 に は 、 オ ブ ジ ェ ク ト 内 に 定 義 さ れ て い る 各 フ ィ ー ル ド の 現 在 の 値 を 出 力 し ま す 。 static フ ィ ー ル ド と instance フ ィ ー ル ド を 出 力 し ま す 。
dump コ マ ン ド は 、 print コ マ ン ド と 同 じ 式 を サ ポ ー ト し ま す 。
help ま た は ? |
jdb の コ マ ン ド の 中 で も っ と も 重 要 な の が 、 こ の help コ マ ン ド で す 。 利 用 可 能 な コ マ ン ド の 一 覧 を 、 各 コ マ ン ド の 簡 単 な 説 明 つ き で 表 示 し ま す 。 | ||
|
Java オ ブ ジ ェ ク ト お よ び プ リ ミ テ ィ ブ 値 を 表 示 し ま す 。 プ リ ミ テ ィ ブ 型 の 変 数 ま た は フ ィ ー ル ド の 場 合 に は 、 実 際 の 値 を 出 力 し ま す 。 オ ブ ジ ェ ク ト の 場 合 に は 、 短 い 説 明 を 出 力 し ま す 。 オ ブ ジ ェ ク ト に つ い て は 、 以 降 の dump コ マ ン ド の 説 明 を 参 照 し て く だ さ い 。 |
print は 、 メ ソ ッ ド の 呼 び 出 し を 含 む 多 数 の 簡 単 な Java 式 を サ ポ ー ト し ま す 。 次 に 例 を 示 し ま す 。
• |
print MyClass.myStaticField | |||||||||||||||||||||||||||||||||||||||
• |
print myObj.myInstanceField | |||||||||||||||||||||||||||||||||||||||
• |
print i + j + k ( i、 j、 お よ び k は プ リ ミ テ ィ ブ で あ り 、 フ ィ ー ル ド ま た は 局 所 変 数 の い ず れ か ) | |||||||||||||||||||||||||||||||||||||||
• |
print myObj.myMethod() ( myMethod が null 以 外 を 返 す 場 合 ) | |||||||||||||||||||||||||||||||||||||||
• |
print new java.lang.String("Hello").length()
の ス レ
ッ ド を 選 択 し
ま す 。 多 く の
jdb コ マ ン ド は
、 現 在 の ス レ
ッ ド の 設 定 に
基 づ い て 実 行
さ れ ま す 。 ス
レ ッ ド は 、 threads
コ マ ン ド で 説
明 す る ス レ ッ
ド イ ン デ ッ ク
ス と と も に 指
定 し ま す 。 現 在 実 行 中 の ス レ ッ ド を 一 覧 表 示 し ま す 。 ス レ ッ ド ご と に 、 名 前 と 現 在 の 状 態 、 お よ び ほ か の コ マ ン ド に 使 用 で き る イ ン デ ッ ク ス を 出 力 し ま す 。 次 に 例 を 示 し ま す 。
|