jdb は、GUIなしで使える便利なデバッガーです。
使い方を覚えておくと、いざという時にEclipseとかGUI統合環境無しでデバッグできるので便利です。
jdbとは (Java Debugger)
jdbはJDKに同梱されるJava標準のコマンドラインデバッガーです。
Eclipse等の統合環境がなくても、取り敢えず、コンソールから使うことができるので便利です。
javaソースをコンパイル
プログラムをコンパイルする際に、-gオプションを付けると、局所変数を含むすべてのデバッグ情報を生成します。 -g オプションを付けてコンパイルしないとローカル変数にアクセスできません。
コンパイル
1 |
# javac -g Test.java |
jdb の使い方
デバッガとともにプログラムを起動します。
1 2 3 4 5 6 7 8 9 |
# jdb Test Initializing jdb ... > run run Test Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable > VM Started: > |
classes:クラスの一覧を確認します。
1 2 3 4 |
> classes ** classes list ** Test ... |
methods:メソッドの一覧を確認します。
1 2 3 |
> methods Test ** methods list ** ... |
threads:スレッドの一覧を確認します。
1 |
> threads |
thread:デバッグ対象のスレッドを設定します。
1 2 |
> thread 1 main[1] |
stop in:メソッドにブレークポイントを設定します。
1 |
main[1] stop in Test.aaa |
clear:現在設定されているブレークポイントを確認します。
1 |
main[1] clear |
clear:ブレークポイントを削除します。
1 |
main[1] clear Test.aaa |
where:スタックフレームを表示します。
1 |
main[1] where |
locals:ローカル変数を表示します。
1 2 |
main[1] locals No local variables |
print:インスタンス変数を表示します。
1 |
main[1] print xxx |
list:プログラムの中の実行箇所を確認します。
1 |
main[1] list |
step:ステップ実行します。
1 |
main[1] step |
cont:次のブレークポイントまで処理を進めます。
1 |
main[1] cont |
monitor:ブレークポイントで自動的に実行するコマンドを設定します。
1 |
main[1] monitor where |
monitor:自動実行されるコマンドを確認します。
1 |
main[1] monitor |
unmonitor:自動実行されるコマンドを削除します。
1 |
main[1] unmonitor 1 |
exit:デバッガを抜けます。
1 |
main[1] exit |
コメント