JMemo034

jdb.exeを使ってみた。

名前からして、gdbのJava版ですな。

  1. 適当なフォルダ(ここではD:\work)を作って、そこにHelloWorldを書く。
    public class HelloWorld {
    	public static void main(String[] args) {
    		System.out.println("Hello, World!");
    	}
    }
    
  2. コンパイルする。
    D:\work>javac HelloWorld.java
    
  3. jdb.exe起動!
    D:\work>jdb HelloWorld
    jdb の初期化中です...
    >
    
  4. help とか打ってみる。
    > help
    ** command list **
    connectors                -- この VM 内で使用可能なコネクタとトランスポートをリスト表示します
    
    run [class [args]]        -- アプリケーションのメインクラスの実行を開始します。
    
    threads [threadgroup]     -- スレッドを一覧表示します
    
    .....
    
    <expr>: Java(tm) プログラミング言語式
    もっとも一般的な構文がサポートされます。
    
    user.home または user.dir 下の "jdb.ini" か ".jdbrc" の
    いずれかに起動コマンドを設定することができます。
    >
    
  5. ブレークポイントを設定してみる。
    > stop at HelloWorld:3
    ブレークポイント HelloWorld:3 を保留しています。
    クラスがロードされた後に設定されます。
    >
    
  6. JVM起動!
    > run
    HelloWorld を実行します
    uncaught java.lang.Throwable を設定しました
    保留した uncaught java.lang.Throwable を設定しました
    >
    VM が起動しました: 保留した ブレークポイント HelloWorld:3 を設定しました
    
    ブレークポイントのヒット: "スレッド=main", HelloWorld.main(), line=3 bci=0
    3               System.out.println("Hello, World!");
    
    main[1]
    
  7. 「現時点で既知のクラスを一覧表示します」とやらを試す。なんかたくさん表示される@@
    > classes
      .....
    sun.security.provider.PolicyFile
    sun.security.util.Debug
    sun.util.PreHashedMap
    main[1]
    
  8. 続きを実行する。
    main[1] cont
    > Hello, World!
    
    アプリケーションは終了しました
    
    D:\work>
    

ふーん。

最終更新:2013年03月07日 20:46