Java Platform, Standard Editionトラブルシューティング・ガイド
目次      

9.5 JDWP

Java Debug Wire Protocol(JDWP)は、アプリケーションやアプレットのデバッグに非常に役立ちます。

JDWPを使用してアプリケーションをデバッグするには、次の手順に従います。

  1. コマンド行を開き、PATH環境変数をjdk/binに設定します。ここで、jdkはJDKのインストール・ディレクトリです。

  2. 次のコマンドを使用して、デバッグするアプリケーション(この例ではTestという名前)を実行します。

    • Windowsの場合:

      java -Xdebug -Xrunjdwp:transport=dt_shmem,address=debug,server=y,suspend=y Test
      
    • Oracle SolarisおよびLinuxオペレーティング・システムの場合:

      java -Xdebug -Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=y Test
      

    Testクラスがデバッグ・モードで起動し、アドレスdebug (Windowsの場合)または8888 (Oracle SolarisおよびLinuxオペレーティング・システムの場合)でデバッガの接続を待機します。

  3. コマンド行を新たに開き、次のコマンドを使用してjdbを実行し、実行中のデバッグ・サーバーに接続します。

    • Windowsの場合:

      jdb -attach 'debug'
      
    • Oracle SolarisおよびLinuxオペレーティング・システムの場合:

      jdb -attach 8888
      

    jdbが初期化され、Testに接続されると、Javaレベルのデバッグを実行できます。

  4. ブレークポイントを設定して、アプリケーションを実行します。たとえば、Testmainメソッドの先頭にブレークポイントを設定するには、次のコマンドを実行します。

    stop in Test.main run
    

    jdbユーティリティがそのブレークポイントに達すると、アプリケーションが実行されている環境を調べて、予想どおりに機能しているかどうかを確認できます。

  5. (オプション) Javaレベルのデバッグとともにネイティブ・レベルのデバッグも実行するには、JDWPで実行中のJavaプロセスにネイティブ・デバッガを使って接続します。

    Oracle Solarisではdbxユーティリティを、Linuxではgdbユーティリティをそれぞれ使用できます。

    Windowsでは、次のように、ネイティブ・レベルのデバッグにVisual Studioを使用できます。

    1. Visual Studioを開きます。

    2. デバッグ」メニューで、「プロセスにアタッチ」を選択します。JDWPで実行中のJavaプロセスを選択します。

    3. プロジェクト」メニューで、「設定」を選択して、「デバッグ」タブを開きます。「カテゴリ」ドロップダウン・リストで、「追加のDLL」を選択し、デバッグするネイティブDLLを追加します(例: Test.dll)。

    4. Test.dllのソース・ファイル(1つ以上)を開き、ブレークポイントを設定します。

    5. jdbウィンドウでcontと入力します。プロセスがVisual Studioのブレークポイントに達します。

JDWPを使用してアプレットをデバッグするには、次の手順に従います。

  1. Javaコントロール・パネルを起動し、「Java」タブを開いて、「表示」をクリックします。「Java Runtime Environment設定」ウィンドウで、必要なプラットフォームの「ランタイム・パラメータ」フィールドに次を指定します。

    • Windowsの場合:

      Djavaplugin.trace=true -Xdebug -Xrunjdwp:transport=dt_shmem,address=debug,server=y,suspend=y
      
    • Oracle SolarisおよびLinuxオペレーティング・システムの場合:

      Djavaplugin.trace=true -Xdebug -Xrunjdwp:transport=dt_shmem,address=8888,server=y,suspend=y
      

    Webブラウザを起動してアプレットをロードすると、Java Plug-inがデバッグ・モードで起動し、アドレスdebug (Windowsの場合)または8888 (Oracle SolarisおよびLinuxオペレーティング・システムの場合)でデバッガの接続を待機します。

  2. コマンド行を開き、次のコマンドを使用してjdbを実行し、実行中のデバッグ・サーバーに接続します。

    • Windowsの場合:

      jdb -attach 'debug'
      
    • Oracle SolarisおよびLinuxオペレーティング・システムの場合:

      jdb -attach 8888
      

    jdbが初期化され、Testに接続されると、Javaレベルのデバッグを実行できます。

  3. ブレークポイントを設定して、アプレットを実行します。たとえば、MyAppletfunc1メソッドの先頭にブレークポイントを設定するには、次のコマンドを実行します。

    stop in MyApplet.func1 run
    

    jdbユーティリティがそのブレークポイントに達すると、アプリケーションが実行されている環境を調べて、予想どおりに機能しているかどうかを確認できます。

目次      

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.