jdb-rw(逆向きウォッチポイント対応JDB)

Last modified: 2003/08/21 15:12:58

English is here.


概要

逆向きウォッチポイント(reverse watchpoint)機能を実装したJDB。現行の機能はgcc-pg2のgdb-wrapper.plとほぼ同等だが、jumpのときに不要な再実行を行わないことと、revwatch実行時の取得情報をキャッシュするため、より効率良く動作する(ただし、jdbを終了するとキャッシュした情報は失われる)。


必要なシステム


起動の仕方

  1. BCELをダウンロードする(2003年8月現在の最新版はv5.1/bcel-5.1.tar.gz)。
  2. jdb-rw.jar(約150kB)をダウンロードする。
  3. デバッグ対象プログラム(デバッギ)を変換してタイムスタンプ機構を組み込む(tools.jarのパスは適宜読みかえて下さい)。
    java -classpath jdb-rw.jar:bcel-5.1.jar:/usr/java/j2sdk1.4.2/lib/tools.jar Convert debuggee.class
  4. jdb-rwを起動する(classpathではjdb-rw.jarが先になることに注意)。
    java -classpath jdb-rw.jar:/usr/java/j2sdk1.4.2/lib/tools.jar com.sun.tools.example.debug.tty.TTY debuggee args...

jdb-rwのコマンド

mark
ポジションを記録する。引数なしで、記録したポジションの一覧を表示。
mark [<timestamp> [<ClassID:LineNum>]]
unmark
記録したポジションを削除する。引数はポジション番号。
unmark [<PosNum>]
jump
記録したポジションに制御を移動する。移動先が現在より過去の場合、デバッギを再起動する。引数はポジション番号。
jump [<PosNum>]
revwatch
コマンドを指定したときのポジションから見て、最後に対象の変数へ代入したポジションに制御を移動する。引数は通常のwatchと同じ。
revwatch <ClassID.FieldName>

既知の不具合


今後の予定


Kazutaka Maruyama <kazutaka_(!!at-mark!!)_sanpo-lab.jp>(SPAM対策)