• VirtualMachine コマンドセット (1)
  • ReferenceType コマンドセット (2)
  • ClassType コマンドセット (3)
  • ArrayType コマンドセット (4)
  • InterfaceType コマンドセット (5)
  • Method コマンドセット (6)
  • Field コマンドセット (8)
  • ObjectReference コマンドセット (9)
  • StringReference コマンドセット (10)
  • ThreadReference コマンドセット (11)
  • ThreadGroupReference コマンドセット (12)
  • ArrayReference コマンドセット (13)
  • ClassLoaderReference コマンドセット (14)
  • EventRequest コマンドセット (15)
  • StackFrame コマンドセット (16)
  • ClassObjectReference コマンドセット (17)
  • Event コマンドセット (64)
  • Error 定数
  • EventKind 定数
  • ThreadStatus 定数
  • SuspendStatus 定数
  • ClassStatus 定数
  • TypeTag 定数
  • Tag 定数
  • StepDepth 定数
  • StepSize 定数
  • SuspendPolicy 定数
  • InvokeOptions 定数

    VirtualMachine コマンドセット (1)

    Version コマンド (1)
    ターゲットの VM により実装された JDWP のバージョンを返します。バージョン文字列の書式は、実装に依存します。
    出力データ
    (なし)
    応答データ
    stringdescriptionVM のバージョンに関するテキスト情報 
    intjdwpMajorJDWP のメジャーバージョン番号 
    intjdwpMinorJDWP のマイナーバージョン番号 
    stringvmVersionターゲット VM の JRE バージョン (java.version プロパティの値と同じ) 
    stringvmNameターゲット VM 名 (java.vm.name プロパティの値と同じ) 
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    ClassesBySignature コマンド (2)
    ターゲット VM によりロードされたクラスのうち、指定されたシグニチャーと一致するものすべての参照型を返します。複数のクラスローダが同名のクラスをロードしている場合、複数の参照型が返されます。検索は、ロードされたクラスだけに限定されます。指定されたシグニチャーを持つクラスのロードは行われません。
    出力データ
    stringsignature検索するクラスの JNI シグニチャー (たとえば、「Ljava/lang/String;」)  
    応答データ
    intclasses全参照型の数 
    classes 回の繰り返し:
    byterefTypeTagあとに続く参照型の種類  
    referenceTypeIDtypeID対応するロードされた参照型 
    intstatus現在のクラスのステータス  
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    AllClasses コマンド (3)
    ターゲット VM によって現在ロードされているすべてのクラスの参照型を返します。
    出力データ
    (なし)
    応答データ
    intclasses全参照型の数 
    classes 回の繰り返し:
    byterefTypeTagあとに続く参照型の種類  
    referenceTypeIDtypeIDロードされた参照型 
    stringsignatureロードされた参照型の JNI シグニチャー 
    intstatus現在のクラスのステータス  
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    AllThreads コマンド (4)
    ターゲット VM で実行中のすべてのスレッドを返します。返されるリストには、java.lang.Thread で作成されたスレッド、JNI を介してターゲット VM に接続されたすべてのネイティブスレッド、およびターゲット VM により作成されたシステムスレッドが含まれます。開始されていないスレッド、および実行の完了したスレッドは、リストに含まれません。
    出力データ
    (なし)
    応答データ
    intthreadsこのあとに続くスレッドの数 
    threads 回の繰り返し:
    threadIDthread実行中のスレッド 
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    TopLevelThreadGroups コマンド (5)
    親を持たないスレッドグループをすべて返します。このコマンドは、既存のスレッドグループの (1 つまたは複数の) ツリーを構築する最初の手順として使用できます。
    出力データ
    (なし)
    応答データ
    intgroupsこのあとに続くスレッドグループの数 
    groups 回の繰り返し:
    threadGroupIDgroupトップレベルのスレッドグループ 
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    Dispose コマンド (6)
    この仮想マシンのミラーを無効にします。ターゲット VM への通信チャネルが閉じられ、ターゲット VM は、このデバッガまたは別のデバッガからの次の接続を受け付ける準備をします。それには、次のような作業が含まれます。ターゲット VM で実行中のすべてのメソッド呼び出しは、切断後も継続されます。そのようなメソッド呼び出しが完了すると、呼び出し元のスレッドは、もともと停止した場所から実行を継続します。

    この仮想マシンを起源とするリソース (オブジェクト参照や参照型など) は、無効になります。

    出力データ
    (なし)
    応答データ
    (なし)
    エラーデータ
    (なし)
    IDSizes コマンド (7)
    ターゲット VM 内に存在する可変サイズのデータ型のサイズを返します。返される値は、コマンドパケットおよび応答パケット内でその識別子が使用しているバイト数を示します。
    出力データ
    (なし)
    応答データ
    intfieldIDSizefieldID のサイズ (バイト単位) 
    intmethodIDSizemethodID のサイズ (バイト単位) 
    intobjectIDSizeobjectID のサイズ (バイト単位) 
    intreferenceTypeIDSizereferenceTypeID のサイズ (バイト単位) 
    intframeIDSizeframeID のサイズ (バイト単位) 
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    Suspend コマンド (8)
    ターゲット VM で稼動中のアプリケーションの実行を中断します。現在実行中の Java スレッドは、すべて中断されます。

    java.lang.Thread.suspend とは異なり、仮想マシンと個々のスレッド両方の中断がカウントされます。スレッドを再び実行する前に、VM レベルの Resume コマンドまたはスレッドレベルの Resume コマンドを使って、中断の実行回数と同じ数だけ再開を実行する必要があります。

    出力データ
    (なし)
    応答データ
    (なし)
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    Resume コマンド (9)
    Suspend コマンドの実行後、またはイベントによるアプリケーションの停止後に、アプリケーションの実行を再開します。仮想マシンおよび個々のスレッドの中断がカウントされます。特定のスレッドの中断回数が n 回の場合、そのスレッドを続行する前に n 回再開する必要があります。
    出力データ
    (なし)
    応答データ
    (なし)
    エラーデータ
    (なし)
    Exit コマンド (10)
    指定された終了コードでターゲット VM を終了させます。プラットフォームによっては、終了コードが下位 8 ビットなどに切り捨てられる場合があります。以前にターゲット VM から返された ID は、すべて無効になります。VM で実行中のスレッドは、そのまま突然に停止させられます。スレッド終了例外はスローされないため、finally ブロックは実行されません。
    出力データ
    intexitCode終了コード 
    応答データ
    (なし)
    エラーデータ
    (なし)
    CreateString コマンド (11)
    ターゲット VM 内に文字列オブジェクトを新規作成し、その ID を返します。
    出力データ
    stringutf作成された文字列内で使用する UTF-8 形式の文字  
    応答データ
    stringIDstringObject作成された文字列 (java.lang.String のインスタンス) 
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    Capabilities コマンド (12)
    この VM の機能を取得します。各機能は boolean 値として返され、その機能が存在するかどうかを示します。各機能に関連するコマンドは、その機能が利用できない場合、NOT_IMPLEMENTED エラーを返します。
    出力データ
    (なし)
    応答データ
    booleancanWatchFieldModificationVM がフィールドの変更を監視して、変更ウォッチポイントイベントを送信可能かどうか 
    booleancanWatchFieldAccessVM がフィールドへのアクセスを監視して、アクセスウォッチポイントイベントを送信可能かどうか 
    booleancanGetBytecodesVM が、指定されたメソッドのバイトコードを取得できるかどうか  
    booleancanGetSyntheticAttributeフィールドまたはメソッドが合成である場合、VM がそれを判別できるかどうか (つまり、メソッドまたはフィールドがコンパイラにより生成されたものである場合、VM がそれを判別できるかどうか)  
    booleancanGetOwnedMonitorInfo所有されたスレッドのモニター情報を、VM が取得可能かどうか 
    booleancanGetCurrentContendedMonitor現在競合しているスレッドのモニターを、VM が取得可能かどうか 
    booleancanGetMonitorInfo指定されたオブジェクトのモニター情報を、VM が取得できるかどうか  
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    ClassPaths コマンド (13)
    ターゲット VM の classpath および bootclasspath を取得します。classpath が定義されていない場合は、空のリストを返します。bootclasspath が定義されていない場合は、空のリストを返します。
    出力データ
    (なし)
    応答データ
    stringbaseDir次のリスト内のいずれかの相対パス解決で使用されるベースディレクトリ 
    intclasspathsclasspath 内のパスの数 
    classpaths 回の繰り返し:
    stringpathclasspath の 1 コンポーネント 
    intbootclasspathsbootclasspath 内のパスの数 
    bootclasspaths 回の繰り返し:
    stringpathbootclasspath の 1 コンポーネント 
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    DisposeObjects コマンド (14)
    オブジェクト ID のリストを解放します。リスト内の各オブジェクトに対して、以下の処理が適用されます。バックエンドによって保持されている参照の回数 (参照カウント) が、refCnt によって減らされます。その後、参照カウントが 0 以下であれば、その ID は解放されます。解放された ID に関連付けられたバックエンドリソースがあれば、そのリソースも解放され、オブジェクトのガベージコレクションが無効にされていれば、再度有効にされます。このコマンドを送った側は、解放された ID を参照するコマンドをそれ以降は送らないようにしなければなりません。

    このコマンドの使用は、必須ではありません。このコマンドが送られない場合、各 ID に関連付けられたリソースは、対応するオブジェクトのガベージコレクションの実行後に、バックエンドにより解放されます。このコマンドのもっとも効果的な利用法は、大量のオブジェクト (大規模な配列など) がバックエンドから取得されているが、すぐにはガベージコレクションが行われない場合に、バックエンドの負荷を軽減することです。

    このコマンドで解放された ID は、バックエンドにより再利用されることがあります。この説明では、参照がカウントされていることを想定しており、バックエンドは同等の動作をする任意の実装を使用できます。

    出力データ
    intrequestsこのあとに続くオブジェクト破棄要求の数 
    requests 回の繰り返し:
    objectIDobjectオブジェクト ID 
    intrefCntこのオブジェクト ID がバックエンドから受け取ったパケットに含まれていた回数。ここに正確なカウントを指定することにより、オブジェクト ID が着信パケットの一部であり、まだフロントエンドにより処理されていない場合に、オブジェクト ID がバックエンドで解放されることを回避できる 
    応答データ
    (なし)
    エラーデータ
    (なし)
    HoldEvents コマンド (15)
    ターゲット VM に対し、イベントの送信を停止するよう伝えます。イベントは破棄されるのではなく、次に ReleaseEvents コマンドが送信されるまで保持されます。大量のイベントが生成される状況で、デバッガ VM に送信されるイベントの数を制御する場合に、このコマンドは有用です。イベントはデバッガバックエンドにより保持されます。 アプリケーションの実行は、バッファがオーバーフローしないよう、デバッガバックエンドにより凍結されます。コマンドへの応答は保持されないため、このコマンドによる影響はありません。イベントがすでに保持されている場合、このコマンドは無視されます。
    出力データ
    (なし)
    応答データ
    (なし)
    エラーデータ
    (なし)
    ReleaseEvents コマンド (16)
    ターゲット VM に対し、イベントの送信を継続するよう伝えます。このコマンドは、HoldEvents コマンドの実行後に通常のアクティビティを復元する際に使用されます。現在有効な HoldEvents コマンドが存在しない場合、このコマンドは無視されます。
    出力データ
    (なし)
    応答データ
    (なし)
    エラーデータ
    (なし)
    CapabilitiesNew コマンド (17)
    この VM のすべての機能を取得します。各機能は boolean 値として返され、その機能が存在するかどうかを示します。各機能に関連するコマンドは、JDWP 1バージョン 1.4 以降でその機能が利用できない場合、NOT_IMPLEMENTED エラーを返します。
    出力データ
    (なし)
    応答データ
    booleancanWatchFieldModificationVM がフィールドの変更を監視して、変更ウォッチポイントイベントを送信可能かどうか 
    booleancanWatchFieldAccessVM がフィールドへのアクセスを監視して、アクセスウォッチポイントイベントを送信可能かどうか 
    booleancanGetBytecodesVM が、指定されたメソッドのバイトコードを取得できるかどうか  
    booleancanGetSyntheticAttributeフィールドまたはメソッドが合成である場合、VM がそれを判別できるかどうか (つまり、メソッドまたはフィールドがコンパイラにより生成されたものである場合、VM がそれを判別できるかどうか)  
    booleancanGetOwnedMonitorInfo所有されたスレッドのモニター情報を、VM が取得可能かどうか 
    booleancanGetCurrentContendedMonitor現在競合しているスレッドのモニターを、VM が取得可能かどうか 
    booleancanGetMonitorInfo指定されたオブジェクトのモニター情報を、VM が取得できるかどうか  
    booleancanRedefineClassesVM がクラスを再定義できるかどうか 
    booleancanAddMethodVM がクラスを再定義するときにメソッドを追加できるかどうか 
    booleancanUnrestrictedlyRedefineClassesVM がクラスを自由に再定義できるかどうか 
    booleancanPopFramesVM がスタックフレームをポップできるかどうか 
    booleancanUseInstanceFiltersVM が特定のオブジェクトでイベントをフィルタできるかどうか 
    booleancanGetSourceDebugExtensionVM がソースデバッグ拡張機能を取得できるかどうか 
    booleancanRequestVMDeathEventVM が VM 終了イベントを要求できるかどうか 
    booleancanSetDefaultStratumVM がデフォルトのストラタを設定できるかどうか 
    booleanreserved16将来の機能のために予約済み 
    booleanreserved17将来の機能のために予約済み 
    booleanreserved18将来の機能のために予約済み 
    booleanreserved19将来の機能のために予約済み 
    booleanreserved20将来の機能のために予約済み 
    booleanreserved21将来の機能のために予約済み 
    booleanreserved22将来の機能のために予約済み 
    booleanreserved23将来の機能のために予約済み 
    booleanreserved24将来の機能のために予約済み 
    booleanreserved25将来の機能のために予約済み 
    booleanreserved26将来の機能のために予約済み 
    booleanreserved27将来の機能のために予約済み 
    booleanreserved28将来の機能のために予約済み 
    booleanreserved29将来の機能のために予約済み 
    booleanreserved30将来の機能のために予約済み 
    booleanreserved31将来の機能のために予約済み 
    booleanreserved32将来の機能のために予約済み 
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    RedefineClasses コマンド (18)
    新しいクラス定義をインストールします。ターゲット VM で再定義されたクラスのメソッドにアクティブなスタックフレームがあると、そのアクティブフレームは元のメソッドのバイトコードの実行を続行します。これらのメソッドは、使用されていないものと見なされます (IsObsolete を参照)。再定義されたクラスのメソッドは、ターゲット VM の新しい呼び出しに使用されます。元のメソッド ID は再定義されたメソッドを参照します。再定義されたクラスのすべてのブレークポイントが解除されます。スタックフレームをリセットする場合は、PopFrames コマンドを使用して、使用されていないメソッドとともにフレームをポップすることができます。

    canRedefineClasses 機能が必要です (CapabilitiesNew を参照)。canRedefineClasses 機能に加え、ターゲット VM には、クラスを再定義するときにメソッドを追加する canAddMethod 機能、または任意の方法でクラスを再定義する canUnrestrictedlyRedefineClasses が必要です。

    出力データ
    intclasses全参照型の数 
    classes 回の繰り返し:
    referenceTypeIDrefType参照型 
    intclassfile定義するクラスのバイト数 
    classfile 回の繰り返し:
    byteclassbyteJVM クラスファイル形式のバイト 
    応答データ
    (なし)
    エラーデータ
    INVALID_CLASSrefType の 1 つが 参照型の ID ではない 
    INVALID_OBJECTrefType の 1 つが 既知の ID ではない 
    UNSUPPORTED_VERSIONクラスファイルのバージョンがこの VM でサポートされていない 
    INVALID_CLASS_FORMAT仮想マシンがクラスファイルを読み込もうとしたが、ファイルの形式が間違っているか、その他の理由でクラスファイルとして解釈できない 
    CIRCULAR_CLASS_DEFINITIONクラスの初期化中に、循環定義が検出された 
    FAILS_VERIFICATIONクラスファイルの形式は正しいが、検証ルーチンは何らかの種類の内部的な不整合かセキュリティ上の問題を検出した 
    NAMES_DONT_MATCH新しいクラスファイル内で定義されたクラス名が、旧クラスオブジェクト内の名前と異なる 
    NOT_IMPLEMENTEDこの機能は実装されていない (CapabilitiesNew.canRedefineClasses が false) 
    ADD_METHOD_NOT_IMPLEMENTED追加メソッドが実装されていない 
    SCHEMA_CHANGE_NOT_IMPLEMENTEDスキーマの変更が実装されていない 
    HIERARCHY_CHANGE_NOT_IMPLEMENTED新しいクラスのバージョンの直接スーパークラスが異なる、または直接実装されているインタフェースが異なり、canUnrestrictedlyRedefineClasses が false 
    DELETE_METHOD_NOT_IMPLEMENTED新しいクラスのバージョンでは、旧クラスのバージョンで宣言したメソッドを宣言せず、また canUnrestrictedlyRedefineClasses が false 
    CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED新しいクラスのバージョンの修飾子が異なり、canUnrestrictedlyRedefineClasses が false 
    METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED新しいクラスのバージョンのメソッドの修飾子が旧クラスのバージョンの修飾子と異なり、canUnrestrictedlyRedefineClasses が false 
    VM_DEAD仮想マシンが動作していない 
    SetDefaultStratum コマンド (19)
    デフォルトのストラタを設定します。canSetDefaultStratum 機能が必要です (CapabilitiesNew を参照)。
    出力データ
    stringstratumIDデフォルトストラタ、または参照型デフォルトを使用するための空の文字列 
    応答データ
    (なし)
    エラーデータ
    NOT_IMPLEMENTEDこの機能はこの仮想マシンに実装されていない 
    VM_DEAD仮想マシンが動作していない 
    Interfaces コマンド (20)
    ターゲット VM によって現在ロードされているすべてのクラスの参照型を返します。各クラスに対して JNI シグニチャーと汎用シグニチャーの両方が返されます。汎用シグニチャーについては、「Java Virtual Machine Specification, 3rd Edition」のシグニチャー属性の節を参照してください。これは JDWP バージョン 1.5 以降です。
    出力データ
    (なし)
    応答データ
    intclasses全参照型の数 
    classes 回の繰り返し:
    byterefTypeTagあとに続く参照型の種類  
    referenceTypeIDtypeIDロードされた参照型 
    stringsignatureロードされた参照型の JNI シグニチャー 
    stringgenericSignatureロードされた参照型の汎用シグニチャー、ない場合は空の文字列 
    intstatus現在のクラスのステータス  
    エラーデータ
    VM_DEAD仮想マシンが動作していない 

    ReferenceType コマンドセット (2)

    Signature コマンド (1)
    参照型の JNI シグニチャーを返します。JNI シグニチャーの形式については、Java Native Inteface 仕様を参照してください。

    プリミティブクラスの場合、返されるシグニチャーは対応するプリミティブ型のシグニチャーです。たとえば、「I」は、java.lang.Integer.TYPE により表されるクラスのシグニチャーとして返されます。

    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    stringsignature参照型の JNI シグニチャー 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    ClassLoader コマンド (2)
    指定された参照型をロードした java.lang.ClassLoader のインスタンスを返します。その参照型がシステムクラスローダによりロードされた場合、返されるオブジェクト ID は null になります。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    classLoaderIDclassLoader参照型のクラスローダ  
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Modifiers コマンド (3)
    参照型の修飾子 (アクセスフラグともいう) を返します。返されるビットマスクには、参照型の宣言に関する情報が含まれます。参照型が配列またはプリミティブクラス (たとえば、java.lang.Integer.TYPE) である場合、返されるビットマスクの値は定義されません。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    intmodBitsVM 仕様で定義された修飾子ビット 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Fields コマンド (4)
    参照型の各フィールドに関する情報を返します。継承したフィールドは含まれません。フィールドリストには、コンパイラにより作成されたすべての合成フィールドが含まれます。フィールドは、クラスファイル内に出現する順序で返されます。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    intdeclared宣言されたフィールドの数 
    declared 回の繰り返し:
    fieldIDfieldIDフィールド ID 
    stringnameフィールドの名前 
    stringsignatureフィールドの JNI シグニチャー 
    intmodBitsフィールド宣言に関する補足情報を提供する修飾子ビットフラグ (アクセスフラグともいう)。個々のフラグ値は、VM 仕様で定義されている。また、合成属性の機能を利用可能な場合には、0xf0000000 ビットは、そのフィールドが合成フィールドであることを示す 
    エラーデータ
    CLASS_NOT_PREPAREDクラスがロードされているが、まだ準備されていない 
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Methods コマンド (5)
    参照型の各メソッドに関する情報を返します。継承したメソッドは含まれません。メソッドのリストには、コンストラクタ (名前「<init>」で識別される)、存在する場合には初期化メソッド (名前「<clinit>」で識別される)、およびコンパイラにより作成されたすべての合成メソッドが含まれます。メソッドは、クラスファイル内に出現する順序で返されます。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    intdeclared宣言されたメソッドの数 
    declared 回の繰り返し:
    methodIDmethodIDメソッド ID 
    stringnameメソッドの名前 
    stringsignatureメソッドの JNI シグニチャー 
    intmodBitsメソッド宣言に関する補足情報を提供する修飾子ビットフラグ (アクセスフラグともいう)。個々のフラグ値は、VM 仕様で定義されている。また、合成属性の機能を利用可能な場合には、0xf0000000 ビットは、メソッドが合成メソッドであることを示す 
    エラーデータ
    CLASS_NOT_PREPAREDクラスがロードされているが、まだ準備されていない 
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    GetValues コマンド (6)
    参照型の 1 つまたは複数の static フィールドの値を返します。各フィールドは、参照型のメンバか、そのスーパークラス、スーパーインタフェース、または実装されたインタフェースの 1 つのメンバでなければなりません。アクセス制御は実行されません。このため、たとえば private フィールドの値を取得できます。
    出力データ
    referenceTypeIDrefType参照型 ID 
    intfields取得する値の数 
    fields 回の繰り返し:
    fieldIDfieldID取得するフィールド 
    応答データ
    intvalues返される値の数。fields の取得する値の数と常に等しい 
    values 回の繰り返し:
    valuevalueフィールド値 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    INVALID_FIELDID無効なフィールド 
    VM_DEAD仮想マシンが動作していない 
    SourceFile コマンド (7)
    参照型が宣言されたソースファイルの名前を返します。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    stringsourceFileソースファイルの名前。ファイルのパス情報は含まれない 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    ABSENT_INFORMATIONソースファイルの属性が存在しない 
    VM_DEAD仮想マシンが動作していない 
    NestedTypes コマンド (8)
    この型のすぐ内側に入れ子にされたクラスとインタフェースを返します。これらの型のさらに内側に入れ子にされたタイプは含まれません。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    intclasses入れ子にされたクラスとインタフェースの数 
    classes 回の繰り返し:
    byterefTypeTagあとに続く参照型の種類  
    referenceTypeIDtypeID入れ子にされたクラスまたはインタフェースの ID 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Status コマンド (9)
    参照型の現在のステータスを返します。VM 仕様で説明されているように、ステータスは参照型の初期化の程度を示します。クラスがリンクしている場合は、返されるステータスビットの PREPARED および VERIFIED ビットが設定されます。クラスが初期化されている場合は、返されるステータスビットの INITIALIZED ビットが設定されます。初期化中にエラーが発生した場合は、返されるステータスビットの ERROR ビットが設定されます。返されるステータスビットは、配列型およびプリミティブクラス (java.lang.Integer.TYPE など) の場合は未定義です。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    intstatusステータス ビット。JDWP.ClassStatus を参照
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Interfaces コマンド (10)
    このクラスによる実装が宣言されたインタフェースを返します。間接的に実装された (実装済みのインタフェースから継承した、またはスーパークラスが実装した) インタフェースは含まれません。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    intインタフェース実装したインタフェースの数 
    interfaces 回の繰り返し:
    interfaceIDinterfaceType実装されたインタフェース 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    ClassObject コマンド (11)
    この型に対応するクラスオブジェクトを返します。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    classObjectIDclassObjectクラスオブジェクト 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    SourceDebugExtension コマンド (12)
    SourceDebugExtension 属性の値を返します。これは JDWP バージョン 1.4 以降です。canGetSourceDebugExtension 機能が必要です (CapabilitiesNew を参照)。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    stringextension拡張属性 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    ABSENT_INFORMATION拡張属性が指定されていない 
    NOT_IMPLEMENTEDこの機能はこの仮想マシンに実装されていない 
    VM_DEAD仮想マシンが動作していない 
    SignatureWithGeneric コマンド (13)
    参照型の JNI シグニチャーを返します。存在する場合は汎用シグニチャーも一緒に返します。汎用シグニチャーについては、「Java Virtual Machine Specification, 3rd Edition」のシグニチャー属性の節を参照してください。これは JDWP バージョン 1.5 以降です。

    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    stringsignature参照型の JNI シグニチャー 
    stringgenericSignature参照型の汎用シグニチャー、ない場合は空の文字列 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    FieldsWithGeneric コマンド (14)
    参照型の各フィールドに関する情報 (存在する場合は汎用シグニチャーを含む) を返します。継承したフィールドは含まれません。フィールドリストには、コンパイラにより作成されたすべての合成フィールドが含まれます。フィールドは、クラスファイル内に出現する順序で返されます。汎用シグニチャーについては、「Java Virtual Machine Specification, 3rd Edition」のシグニチャー属性の節を参照してください。これは JDWP バージョン 1.5 以降です。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    intdeclared宣言されたフィールドの数 
    declared 回の繰り返し:
    fieldIDfieldIDフィールド ID 
    stringnameフィールドの名前 
    stringsignatureフィールドの JNI シグニチャー 
    stringgenericSignatureフィールドの汎用シグニチャー、ない場合は空の文字列 
    intmodBitsフィールド宣言に関する補足情報を提供する修飾子ビットフラグ (アクセスフラグともいう)。個々のフラグ値は、VM 仕様で定義されている。また、合成属性の機能を利用可能な場合には、0xf0000000 ビットは、そのフィールドが合成フィールドであることを示す 
    エラーデータ
    CLASS_NOT_PREPAREDクラスがロードされているが、まだ準備されていない 
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    MethodsWithGeneric コマンド (15)
    参照型の各メソッドに関する情報 (存在する場合は汎用シグニチャーを含む) を返します。継承したメソッドは含まれません。メソッドのリストには、コンストラクタ (名前「<init>」で識別される)、存在する場合には初期化メソッド (名前「<clinit>」で識別される)、およびコンパイラにより作成されたすべての合成メソッドが含まれます。メソッドは、クラスファイル内に出現する順序で返されます。汎用シグニチャーについては、「Java Virtual Machine Specification, 3rd Edition」のシグニチャー属性の節を参照してください。これは JDWP バージョン 1.5 以降です。
    出力データ
    referenceTypeIDrefType参照型 ID 
    応答データ
    intdeclared宣言されたメソッドの数 
    declared 回の繰り返し:
    methodIDmethodIDメソッド ID 
    stringnameメソッドの名前 
    stringsignatureメソッドの JNI シグニチャー 
    stringgenericSignatureメソッドの汎用シグニチャー、ない場合は空の文字列 
    intmodBitsメソッド宣言に関する補足情報を提供する修飾子ビットフラグ (アクセスフラグともいう)。個々のフラグ値は、VM 仕様で定義されている。また、合成属性の機能を利用可能な場合には、0xf0000000 ビットは、メソッドが合成メソッドであることを示す 
    エラーデータ
    CLASS_NOT_PREPAREDクラスがロードされているが、まだ準備されていない 
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 

    ClassType コマンドセット (3)

    Superclass コマンド (1)
    クラスの直属のスーパークラスを返します。
    出力データ
    classIDclazzクラス型 ID 
    応答データ
    classIDsuperclassスーパークラス (java.lang.Object のクラス ID が指定されている場合は、null) 
    エラーデータ
    INVALID_CLASSclazz がクラスの ID ではない 
    INVALID_OBJECTclazz が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    SetValues コマンド (2)
    1 つまたは複数の static フィールドの値を設定します。各フィールドは、クラス型のメンバか、そのスーパークラス、スーパーインタフェース、または実装されたインタフェースの 1 つのメンバでなければなりません。アクセス制御は実行されません。このため、たとえば private フィールドの値を設定できます。最後のフィールドを設定することはできません。プリミティブ値の場合、値の型とフィールドの型は正確に一致している必要があります。オブジェクト値の場合、値の型からフィールドの型への広範な参照変換が存在し、かつフィールドの型がロードされている必要があります。
    出力データ
    classIDclazzクラス型 ID 
    intvalues設定するフィールドの数 
    values 回の繰り返し:
    fieldIDfieldID設定するフィールド 
    untagged-valuevalueフィールドに入力する値 
    応答データ
    (なし)
    エラーデータ
    INVALID_CLASSclazz がクラスの ID ではない 
    CLASS_NOT_PREPAREDクラスがロードされているが、まだ準備されていない 
    INVALID_OBJECTclazz が既知の ID ではない、またはオブジェクトフィールドの値が既知の ID ではない 
    INVALID_FIELDID無効なフィールド 
    VM_DEAD仮想マシンが動作していない 
    InvokeMethod コマンド (3)
    static メソッドを呼び出します。メソッドは、クラス型のメンバか、そのスーパークラス、スーパーインタフェース、または実装されたインタフェースの 1 つのメンバでなければなりません。アクセス制御は実行されません。このため、たとえば private メソッドを呼び出すことができます。

    メソッド呼び出しは、指定されたスレッドで実行されます。メソッド呼び出しは、指定されたスレッドがイベントにより中断されている場合にだけ実行されます。ターゲット VM がフロントエンドにより中断されている場合のメソッド呼び出しはサポートされていません。

    指定されたメソッドは、指定された引数リスト内の引数を使って呼び出されます。メソッド呼び出しは同期的に行われます。そのため、呼び出されたメソッドがターゲット VM 内で復帰するまで、応答パケットは送信されません。戻り値 (大抵の場合、void 値) は応答パケットに含まれます。呼び出されたメソッドが例外をスローする場合、例外オブジェクト ID が応答パケット内に設定されます。そうでない場合、例外オブジェクト ID は null になります。

    プリミティブ引数の場合、引数値の型と引数の型は厳密に一致している必要があります。オブジェクト引数の場合、引数値の型から引数の型への拡張参照変換が存在し、かつ引数の型がロードされている必要があります。

    デフォルトでは、ターゲット VM 内のすべてのスレッドがメソッドの呼び出し中に再開されます (イベントまたはコマンドによって以前に中断されたスレッドの場合)。これは、いずれかのスレッドが、呼び出し先メソッドが必要とするモニターを所有している場合に、デッドロックが発生するのを防ぎます。ブレークポイントまたは他のイベントが、呼び出し中に発生する可能性があります。ただし、この暗黙の再開処理が、ThreadReference の Resume コマンドの処理とまったく同じであることに注意してください。このため、スレッドの中断カウントが 1 より大きいと、呼び出し中もスレッドは中断状態のままになります。デフォルトでは、ターゲット VM 内のすべてのスレッドは、呼び出しの完了時に中断します (呼び出し前のスレッドの状態とは無関係)。

    options フィールドに INVOKE_SINGLE_THREADED ビットフラグを指定することにより、呼び出し中に他のスレッドが再開しないようにできます。ただし、前述のようなデッドロックに対する保護や、デッドロックからの回復ができなくなるため、このオプションはよく注意して利用してください。指定されたスレッドだけが再開されます (前述したすべてのスレッドの場合と同様)。シングルスレッド呼び出しが完了すると、呼び出し元スレッドは再び中断されます。シングルスレッド呼び出し中に開始されたすべてのスレッドは、呼び出し完了時にも中断されません。

    ターゲット VM が呼び出し中に切断されても (たとえば、VirtualMachine の Dispose コマンドによる)、メソッド呼び出しは続行されます。

    出力データ
    classIDclazzクラス型 ID 
    threadIDthread呼び出しを実行するスレッド 
    methodIDmethodID呼び出し先のメソッド 
    intarguments 
    arguments 回の繰り返し:
    valuearg引数の値 
    intoptions呼び出しのオプション 
    応答データ
    valuereturnValue戻り値 
    tagged-objectIDexceptionスローされた例外 
    エラーデータ
    INVALID_CLASSclazz がクラスの ID ではない 
    INVALID_OBJECTclazz が既知の ID ではない 
    INVALID_METHODIDmethodID がメソッドの ID ではない 
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    THREAD_NOT_SUSPENDED指定されたスレッドは、イベントによって中断されていない 
    VM_DEAD仮想マシンが動作していない 
    NewInstance コマンド (4)
    指定されたコンストラクタを呼び出して、この型の新規オブジェクトを作成します。コンストラクタメソッド ID は、クラス型のメンバでなければなりません。

    インスタンスの作成は、指定されたスレッドで実行されます。インスタンスの作成は、指定されたスレッドがイベントにより中断されている場合にだけ実行されます。ターゲット VM がフロントエンドにより中断されている場合のメソッド呼び出しはサポートされていません。

    指定されたコンストラクタは、指定された引数リスト内の引数を使って呼び出されます。コンストラクタ呼び出しは同期的に行われます。そのため、呼び出されたメソッドがターゲット VM 内で復帰するまで、応答パケットは送信されません。戻り値 (大抵の場合、void 値) は応答パケットに含まれます。コンストラクタが例外をスローする場合、例外オブジェクト ID が応答パケット内に設定されます。そうでない場合、例外オブジェクト ID は null になります。

    プリミティブ引数の場合、引数値の型と引数の型は厳密に一致している必要があります。オブジェクト引数の場合、引数値の型から引数の型への拡張参照変換が存在し、かつ引数の型がロードされている必要があります。

    デフォルトでは、ターゲット VM 内のすべてのスレッドがメソッドの呼び出し中に再開されます (イベントまたはコマンドによって以前に中断されたスレッドの場合)。これは、いずれかのスレッドが、呼び出し先メソッドが必要とするモニターを所有している場合に、デッドロックが発生するのを防ぎます。ブレークポイントまたは他のイベントが、呼び出し中に発生する可能性があります。ただし、この暗黙の再開処理が、ThreadReference の Resume コマンドの処理とまったく同じであることに注意してください。このため、スレッドの中断カウントが 1 より大きいと、呼び出し中もスレッドは中断状態のままになります。デフォルトでは、ターゲット VM 内のすべてのスレッドは、呼び出しの完了時に中断します (呼び出し前のスレッドの状態とは無関係)。

    options フィールドに INVOKE_SINGLE_THREADED ビットフラグを指定することにより、呼び出し中に他のスレッドが再開しないようにできます。ただし、前述のようなデッドロックに対する保護や、デッドロックからの回復ができなくなるため、このオプションはよく注意して利用してください。指定されたスレッドだけが再開されます (前述したすべてのスレッドの場合と同様)。シングルスレッド呼び出しが完了すると、呼び出し元スレッドは再び中断されます。シングルスレッド呼び出し中に開始されたすべてのスレッドは、呼び出し完了時にも中断されません。

    ターゲット VM が呼び出し中に切断されても (たとえば、VirtualMachine の Dispose コマンドによる)、メソッド呼び出しは続行されます。

    出力データ
    classIDclazzクラス型 ID 
    threadIDthreadコンストラクタを呼び出すスレッド 
    methodIDmethodID呼び出し先のコンストラクタ 
    intarguments 
    arguments 回の繰り返し:
    valuearg引数の値 
    intoptionsコンストラクタ呼び出しのオプション 
    応答データ
    tagged-objectIDnewObject新規に作成されたオブジェクト、またはコンストラクタが例外をスローする場合は null 
    tagged-objectIDexceptionスローされた例外 (存在する場合)、または null 
    エラーデータ
    INVALID_CLASSclazz がクラスの ID ではない 
    INVALID_OBJECTclazz が既知の ID ではない、またはオブジェクトパラメータの値が既知の ID ではない 
    INVALID_METHODIDmethodID がメソッドの ID ではない 
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    THREAD_NOT_SUSPENDED指定されたスレッドは、イベントによって中断されていない 
    VM_DEAD仮想マシンが動作していない 

    ArrayType コマンドセット (4)

    NewInstance コマンド (1)
    この型の配列オブジェクトを、指定された長さで新規作成します。
    出力データ
    arrayTypeIDarrType新規インスタンスの配列型 
    intlength配列の長さ 
    応答データ
    tagged-objectIDnewArray新規作成された配列オブジェクト  
    エラーデータ
    INVALID_ARRAY配列が無効 
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    VM_DEAD仮想マシンが動作していない 

    InterfaceType コマンドセット (5)

    Method コマンドセット (6)

    LineTable コマンド (1)
    存在する場合、メソッドの行番号情報を返します。行テーブルは、ソース行番号を、行の初期コードインデックスにマッピングします。行テーブルは、コードインデックスにより (昇順で) 順序付けされます。RedefineClasses を使って新しいクラス定義がインストールされないかぎり、行番号は定数です。
    出力データ
    referenceTypeIDrefTypeクラス 
    methodIDmethodIDメソッド 
    応答データ
    longstartメソッドについて有効な最小のコードインデックス。>=0 または -1 (メソッドがネイティブの場合)  
    longendメソッドについて有効な最大のコードインデックス。>=0 または -1 (メソッドがネイティブの場合) 
    intlinesこのメソッドの行テーブル内のエントリ数 
    lines 回の繰り返し:
    longlineCodeIndex行の初期コードインデックス (開始 <= lineCodeIndex < 終了) 
    intlineNumber行番号 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    INVALID_METHODIDmethodID がメソッドの ID ではない 
    VM_DEAD仮想マシンが動作していない 
    VariableTable コマンド (2)
    メソッドの変数情報を返します。変数テーブルには、メソッド内で宣言された引数と局所変数が含まれます。インスタンスメソッドの場合、「this」参照がテーブルに含まれます。また、合成変数が存在する場合もあります。
    出力データ
    referenceTypeIDrefTypeクラス 
    methodIDmethodIDメソッド 
    応答データ
    intargCnt引数で使用されるフレーム内のワード数。8 バイトの引数は 2 ワードを使用し、その他の引数は 1 ワードを使用する  
    intslots変数の数 
    slots 回の繰り返し:
    longcodeIndex変数が可視状態にある最初のコードインデックス (符号なし)。length と一緒に使う。現在の codeIndex <= 現在のフレームコードインデックス < codeIndex + length という条件が満たされる場合にのみ、変数の取得または設定が可能 
    stringname変数の名前 
    stringsignature変数型の JNI シグニチャー 
    intlengthcodeIndex と一緒に使う符号なしの値。現在の codeIndex <= 現在のフレームコードインデックス < code Index + length という条件が満たされる場合にのみ、変数の取得または設定が可能
    intslotフレーム内の局所変数のインデックス 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    INVALID_METHODIDmethodID がメソッドの ID ではない 
    ABSENT_INFORMATIONメソッドの変数情報が存在しない 
    VM_DEAD仮想マシンが動作していない 
    Bytecodes コマンド (3)
    メソッドのバイトコード (JVM 仕様で定義されている) を取得します。canGetBytecodes 機能が必要です (CapabilitiesNew を参照)。
    出力データ
    referenceTypeIDrefTypeクラス 
    methodIDmethodIDメソッド 
    応答データ
    intbytes 
    bytes 回の繰り返し:
    bytebytecodeJava バイトコード 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    INVALID_METHODIDmethodID がメソッドの ID ではない 
    NOT_IMPLEMENTEDターゲット仮想マシンがバイトコードの取得をサポートしていない 
    VM_DEAD仮想マシンが動作していない 
    IsObsolete コマンド (4)
    メソッドがもう使用されていないものかどうかを判別します。RedefineClasses コマンドを使用してメソッドが同等ではないメソッドで置き換えられている場合、メソッドは使用されていません。双方のメソッドのバイトコードが同じ場合 (定数プールのインデックスを除く)、参照定数が等しい場合は、元のメソッドと再定義したメソッドが同等とみなされます。
    出力データ
    referenceTypeIDrefTypeクラス 
    methodIDmethodIDメソッド 
    応答データ
    booleanisObsoleteRedefineClassed コマンドによって、このメソッドが 同等でないメソッドで置き換えれている場合は true 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    INVALID_METHODIDmethodID がメソッドの ID ではない 
    NOT_IMPLEMENTEDターゲット仮想マシンがこのクエリーをサポートしていない 
    VM_DEAD仮想マシンが動作していない 
    VariableTableWithGeneric コマンド (5)
    変数の汎用シグニチャーを含むメソッドの変数情報を返します。変数テーブルには、メソッド内で宣言された引数と局所変数が含まれます。インスタンスメソッドの場合、「this」参照がテーブルに含まれます。また、合成変数が存在する場合もあります。汎用シグニチャーについては、「Java Virtual Machine Specification, 3rd Edition」のシグニチャー属性の節を参照してください。これは JDWP バージョン 1.5 以降です。
    出力データ
    referenceTypeIDrefTypeクラス 
    methodIDmethodIDメソッド 
    応答データ
    intargCnt引数で使用されるフレーム内のワード数。8 バイトの引数は 2 ワードを使用し、その他の引数は 1 ワードを使用する  
    intslots変数の数 
    slots 回の繰り返し:
    longcodeIndex変数が可視状態にある最初のコードインデックス (符号なし)。length と一緒に使う。現在の codeIndex <= 現在のフレームコードインデックス < codeIndex + length という条件が満たされる場合にのみ、変数の取得または設定が可能 
    stringname変数の名前 
    stringsignature変数型の JNI シグニチャー 
    stringgenericSignature変数型の汎用シグニチャー、ない場合は空の文字列 
    intlengthcodeIndex と一緒に使う符号なしの値。現在の codeIndex <= 現在のフレームコードインデックス < code Index + length という条件が満たされる場合にのみ、変数の取得または設定が可能
    intslotフレーム内の局所変数のインデックス 
    エラーデータ
    INVALID_CLASSrefType が 参照型の ID ではない 
    INVALID_OBJECTrefType が既知の ID ではない 
    INVALID_METHODIDmethodID がメソッドの ID ではない 
    ABSENT_INFORMATIONメソッドの変数情報が存在しない 
    VM_DEAD仮想マシンが動作していない 

    Field コマンドセット (8)

    ObjectReference コマンドセット (9)

    ReferenceType コマンド (1)
    オブジェクトの実行時の型を返します。実行時の型は、クラスまたは配列です。
    出力データ
    objectIDobjectオブジェクト ID 
    応答データ
    byterefTypeTagあとに続く参照型の種類  
    referenceTypeIDtypeID実行時の参照型 
    エラーデータ
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    VM_DEAD仮想マシンが動作していない 
    GetValues コマンド (2)
    1 つまたは複数のインスタンスフィールドの値を返します。各フィールドは、オブジェクトの型のメンバか、そのスーパークラス、スーパーインタフェース、または実装されたインタフェースの 1 つのメンバでなければなりません。アクセス制御は実行されません。このため、たとえば private フィールドの値を取得できます。
    出力データ
    objectIDobjectオブジェクト ID 
    intfields取得する値の数 
    fields 回の繰り返し:
    fieldIDfieldID取得するフィールド 
    応答データ
    intvalues返される値の数。「fields」の取得する値の数と常に等しい。応答では、フィールドの値はコマンド内の対応する fieldID と同じ順序で順序付けされる 
    values 回の繰り返し:
    valuevalueフィールド値 
    エラーデータ
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    INVALID_FIELDID無効なフィールド 
    VM_DEAD仮想マシンが動作していない 
    SetValues コマンド (3)
    1 つまたは複数のインスタンスフィールドの値を設定します。各フィールドは、オブジェクトの型のメンバか、そのスーパークラス、スーパーインタフェース、または実装されたインタフェースの 1 つのメンバでなければなりません。アクセス制御は実行されません。このため、たとえば private フィールドの値を設定できます。プリミティブ値の場合、値の型とフィールドの型は正確に一致している必要があります。オブジェクト値の場合、値の型からフィールドの型への広範な参照変換が存在し、かつフィールドの型がロードされている必要があります。
    出力データ
    objectIDobjectオブジェクト ID 
    intvalues設定するフィールドの数 
    values 回の繰り返し:
    fieldIDfieldID設定するフィールド 
    untagged-valuevalueフィールドに入力する値 
    応答データ
    (なし)
    エラーデータ
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    INVALID_FIELDID無効なフィールド 
    VM_DEAD仮想マシンが動作していない 
    MonitorInfo コマンド (5)
    オブジェクトのモニター情報を返します。VM 内のすべてのスレッドが中断されている必要があります。canGetMonitorInfo 機能が必要です (CapabilitiesNew を参照)。
    出力データ
    objectIDobjectオブジェクト ID 
    応答データ
    threadIDownerモニターの所有者、または null (現在は所有されていない場合) 
    intentryCountモニターが入力された回数 
    intwaitersモニターを待機しているスレッドの数、現在の所有者が存在しない場合は 0 
    waiters 回の繰り返し:
    threadIDthreadこのモニターを待機しているスレッド 
    エラーデータ
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    NOT_IMPLEMENTEDこの機能はこの仮想マシンに実装されていない 
    VM_DEAD仮想マシンが動作していない 
    InvokeMethod コマンド (6)
    インスタンスメソッドを呼び出します。メソッドは、オブジェクトの型のメンバか、そのスーパークラス、スーパーインタフェース、または実装されたインタフェースの 1 つのメンバでなければなりません。アクセス制御は実行されません。このため、たとえば private メソッドを呼び出すことができます。

    メソッド呼び出しは、指定されたスレッドで実行されます。メソッド呼び出しは、指定されたスレッドがイベントにより中断されている場合にだけ実行されます。ターゲット VM がフロントエンドにより中断されている場合のメソッド呼び出しはサポートされていません。

    指定されたメソッドは、指定された引数リスト内の引数を使って呼び出されます。メソッド呼び出しは同期的に行われます。そのため、呼び出されたメソッドがターゲット VM 内で復帰するまで、応答パケットは送信されません。戻り値 (大抵の場合、void 値) は応答パケットに含まれます。呼び出されたメソッドが例外をスローする場合、例外オブジェクト ID が応答パケット内に設定されます。そうでない場合、例外オブジェクト ID は null になります。

    プリミティブ引数の場合、引数値の型と引数の型は厳密に一致している必要があります。オブジェクト引数の場合、引数値の型から引数の型への拡張参照変換が存在し、かつ引数の型がロードされている必要があります。

    デフォルトでは、ターゲット VM 内のすべてのスレッドがメソッドの呼び出し中に再開されます (イベントまたはコマンドによって以前に中断されたスレッドの場合)。これは、いずれかのスレッドが、呼び出し先メソッドが必要とするモニターを所有している場合に、デッドロックが発生するのを防ぎます。ブレークポイントまたは他のイベントが、呼び出し中に発生する可能性があります。ただし、この暗黙の再開処理が、ThreadReference の Resume コマンドの処理とまったく同じであることに注意してください。このため、スレッドの中断カウントが 1 より大きいと、呼び出し中もスレッドは中断状態のままになります。デフォルトでは、ターゲット VM 内のすべてのスレッドは、呼び出しの完了時に中断します (呼び出し前のスレッドの状態とは無関係)。

    options フィールドに INVOKE_SINGLE_THREADED ビットフラグを指定することにより、呼び出し中に他のスレッドが再開しないようにできます。ただし、前述のようなデッドロックに対する保護や、デッドロックからの回復ができなくなるため、このオプションはよく注意して利用してください。指定されたスレッドだけが再開されます (前述したすべてのスレッドの場合と同様)。シングルスレッド呼び出しが完了すると、呼び出し元スレッドは再び中断されます。シングルスレッド呼び出し中に開始されたすべてのスレッドは、呼び出し完了時にも中断されません。

    ターゲット VM が呼び出し中に切断されても (たとえば、VirtualMachine の Dispose コマンドによる)、メソッド呼び出しは続行されます。

    出力データ
    objectIDobjectオブジェクト ID 
    threadIDthread呼び出しを実行するスレッド 
    classIDclazzクラスの型 
    methodIDmethodID呼び出し先のメソッド 
    intarguments引数の数 
    arguments 回の繰り返し:
    valuearg引数の値 
    intoptions呼び出しのオプション 
    応答データ
    valuereturnValue戻り値、または null (例外がスローされた場合) 
    tagged-objectIDexceptionスローされた例外 (存在する場合) 
    エラーデータ
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    INVALID_CLASSclazz が 参照型の ID ではない 
    INVALID_METHODIDmethodID がメソッドの ID ではない 
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    THREAD_NOT_SUSPENDED指定されたスレッドは、イベントによって中断されていない 
    VM_DEAD仮想マシンが動作していない 
    DisableCollection コマンド (7)
    指定されたオブジェクトのガベージコレクションが実行されないようにします。デフォルトでは、バックエンド応答内のすべてのオブジェクトは、ターゲット VM の実行中にいつでもガベージコレクトが可能です。このコマンドを呼び出すと、オブジェクトがガベージコレクトされないことが保証されます。ガベージコレクションを再度有効にするには、EnableCollection コマンドを使用します。

    ターゲット VM の中断中は、すべてのスレッドが中断しているため、ガベージコレクションは行われません。中断中に変数、フィールド、および配列を調べるという一般的な操作の場合は、明示的にガベージコレクションを無効にしなくても安全です。

    このメソッドを使用すると、ターゲット VM 内のガベージコレクションのパターンが変わるため、アプリケーションの動作がデバッガ実行時とデバッガ非実行時とで異なる結果になる可能性があります。そのため、このメソッドの使用には慎重を期してください。

    出力データ
    objectIDobjectオブジェクト ID 
    応答データ
    (なし)
    エラーデータ
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    VM_DEAD仮想マシンが動作していない 
    EnableCollection コマンド (8)
    このオブジェクトのガベージコレクションを許可します。デフォルトでは、JDWP により返されるすべてのオブジェクトは、ターゲット VM でアクセス不可能になるため、ガベージコレクトが可能です。このコマンドの呼び出しが必要になるのは、DisableCollection コマンドを使ってガベージコレクションを無効にした場合だけです。
    出力データ
    objectIDobjectオブジェクト ID 
    応答データ
    (なし)
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    IsCollected コマンド (9)
    オブジェクトが、ターゲット VM 内でガベージコレクトされたかどうかを判定します。
    出力データ
    objectIDobjectオブジェクト ID 
    応答データ
    booleanisCollectedオブジェクトがガベージコレクトされた場合は true、そうでない場合は false 
    エラーデータ
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    VM_DEAD仮想マシンが動作していない 

    StringReference コマンドセット (10)

    Value コマンド (1)
    文字列に含まれる文字を返します。
    出力データ
    objectIDstringObjectString オブジェクトの ID 
    応答データ
    stringstringValue文字列の値の UTF-8 表現 
    エラーデータ
    INVALID_STRING文字列が無効 
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    VM_DEAD仮想マシンが動作していない 

    ThreadReference コマンドセット (11)

    Name コマンド (1)
    スレッド名を返します。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    応答データ
    stringthreadNameスレッドの名前 
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Suspend コマンド (2)
    スレッドを中断します。

    java.lang.Thread.suspend() とは異なり、仮想マシンと個々のスレッド両方の中断がカウントされます。スレッドを再実行する前に、中断された回数と同じ数の再開が行われなければなりません。

    コマンドを使って単一のスレッドを中断することには、java.lang.Thread.suspend() の場合と同様の危険があります。中断されたスレッドが実行中の別のスレッドに必要なモニターを保持している場合、ターゲット VM でデッドロックが発生する可能性があります (少なくとも、中断されたスレッドが再開されるまでの間)。

    中断されたスレッドは、前述の JDI 再開メソッドの 1 つを使って再開されるまで中断状態を維持することが保証されます。 ターゲット VM 内のアプリケーションが、中断したスレッドを java.lang.Thread#resume を使って再開することはできません。

    これにより、スレッドのステータスが変化することはない点に注意してください (ThreadStatus を参照)。たとえば、このスレッドが実行中だった場合、他のスレッドからは依然として実行中に見えます。

    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    応答データ
    (なし)
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Resume コマンド (3)
    指定されたスレッドの実行を再開します。以前にこのスレッドがフロントエンドにより中断されたことがない場合には、このコマンドを呼び出しても効果はありません。それ以外の場合、このスレッドについて保留中の中断のカウントが減少します。カウントが 0 まで減少すると、スレッドは実行を継続します。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    応答データ
    (なし)
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Status コマンド (4)
    スレッドの現在のステータスを返します。スレッドステータスの応答は、最後に実行されていた時点でのスレッドステータスを示します。中断ステータスは、スレッドの中断に関する情報 (存在する場合) を提供します。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    応答データ
    intthreadStatusスレッドステータスコードの 1 つ。JDWP.ThreadStatus を参照 
    intsuspendStatusスレッド中断ステータスコードの 1 つ。JDWP.SuspendStatus を参照 
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    ThreadGroup コマンド (5)
    指定されたスレッドを含むスレッドグループを返します。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    応答データ
    threadGroupIDgroupこのスレッドのスレッドグループ  
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Frames コマンド (6)
    中断されたスレッドの現在の呼び出しスタックを返します。フレームシーケンスは、現在実行中のフレームから始まり、次にその呼び出し元のフレーム、と続きます。スレッドは中断されていなければならず、返される frameID は、スレッドが中断されている間だけ有効です。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    intstartFrame取得する最初のフレームのインデックス 
    intlength取得するフレームのカウント (-1 は「残りすべて」の意味)  
    応答データ
    intframes取得されたフレーム数 
    frames 回の繰り返し:
    frameIDframeIDこのフレームの ID  
    locationlocationこのフレームの現在位置 
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    FrameCount コマンド (7)
    このスレッドスタックのフレームカウントを返します。スレッドは中断されていなければならず、返されるカウントはスレッドが中断されている間だけ有効です。スレッドが中断されていない場合は、JDWP.Error.errorThreadNotSuspended を返します。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    応答データ
    intframeCountこのスレッドスタックのフレームカウント  
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    OwnedMonitors コマンド (8)
    オブジェクトのモニターがこのスレッドから入った、というオブジェクトを返します。スレッドは中断されていなければならず、返される情報はスレッドが中断されている間だけ有効です。canGetOwnedMonitorInfo 機能が必要です (CapabilitiesNew を参照)。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    応答データ
    intowned所有されるモニターの数 
    owned 回の繰り返し:
    tagged-objectIDmonitor所有されるモニター 
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    NOT_IMPLEMENTEDこの機能はこの仮想マシンに実装されていない 
    VM_DEAD仮想マシンが動作していない 
    CurrentContendedMonitor コマンド (9)
    このスレッドが待機中のオブジェクトを返します (存在する場合)。スレッドは、モニターに入るのを待機しているか、java.lang.Object.wait メソッドを使って別のスレッドが notify メソッドを呼び出すのを待機している可能性があります。スレッドは中断されていなければならず、返される情報はスレッドが中断されている間だけ有効です。canGetCurrentContendedMonitor 機能が必要です (CapabilitiesNew を参照)。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    応答データ
    tagged-objectIDmonitor競合するモニター、または null (競合するモニターが現在は存在しない場合)  
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    NOT_IMPLEMENTEDこの機能はこの仮想マシンに実装されていない 
    VM_DEAD仮想マシンが動作していない 
    Stop コマンド (10)
    非同期の例外をスローしてスレッドを停止します (java.lang.Thread.stop を使用した場合と同様)。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    objectIDthrowable非同期の例外。このオブジェクトは、java.lang.Throwable のインスタンスまたはサブクラスでなければならない 
    応答データ
    (なし)
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッドが既知の ID ではない、または非同期の例外がガベージコレクトされている 
    VM_DEAD仮想マシンが動作していない 
    Interrupt コマンド (11)
    スレッドに対し割り込みを実行します (java.lang.Thread.interrupt を実行した場合と同様)。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    応答データ
    (なし)
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    SuspendCount コマンド (12)
    このスレッドの中断カウントを取得します。中断カウントは、スレッドレベルまたは VM レベルの中断コマンドによりスレッドが中断された回数 (対応する再開コマンドが実行されたものは除く) です。
    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    応答データ
    intsuspendCountこのスレッドの未処理の中断の回数  
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 

    ThreadGroupReference コマンドセット (12)

    Name コマンド (1)
    スレッドグループの名前を返します。
    出力データ
    threadGroupIDgroupスレッドグループのオブジェクト ID 
    応答データ
    stringgroupNameスレッドグループの名前 
    エラーデータ
    INVALID_THREAD_GROUPスレッドグループが無効 
    INVALID_OBJECTグループ が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Parent コマンド (2)
    指定されたスレッドグループを含むスレッドグループ (存在する場合) を返します。
    出力データ
    threadGroupIDgroupスレッドグループのオブジェクト ID 
    応答データ
    threadGroupIDparentGroup親スレッドグループオブジェクト、または null (指定されたスレッドグループがトップレベルのスレッドグループの場合) 
    エラーデータ
    INVALID_THREAD_GROUPスレッドグループが無効 
    INVALID_OBJECTグループ が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 
    Children コマンド (3)
    このスレッドグループに直接含まれるスレッドおよびスレッドグループを返します。子スレッドグループ内のスレッドおよびスレッドグループは、返されません。
    出力データ
    threadGroupIDgroupスレッドグループのオブジェクト ID 
    応答データ
    intchildThreads子スレッドの数  
    childThreads 回の繰り返し:
    threadIDchildThread直接の子スレッド ID 
    intchildGroups子スレッドグループの数  
    childGroups 回の繰り返し:
    threadGroupIDchildGroup直接の子スレッドグループの ID 
    エラーデータ
    INVALID_THREAD_GROUPスレッドグループが無効 
    INVALID_OBJECTグループ が既知の ID ではない 
    VM_DEAD仮想マシンが動作していない 

    ArrayReference コマンドセット (13)

    Length コマンド (1)
    指定された配列内のコンポーネントの数を返します。
    出力データ
    arrayIDarrayObject配列のオブジェクト ID 
    応答データ
    intarrayLength配列の長さ 
    エラーデータ
    INVALID_OBJECTarrayObject が既知の ID ではない 
    INVALID_ARRAY配列が無効 
    VM_DEAD仮想マシンが動作していない 
    GetValues コマンド (2)
    配列コンポーネントの範囲を返します。指定された範囲は、配列の境界内にある必要があります。
    出力データ
    arrayIDarrayObject配列のオブジェクト ID 
    intfirstIndex取得する最初のインデックス 
    intlength取得するコンポーネントの数 
    応答データ
    arrayregionvalues取得した値。値がオブジェクトの場合は、タグ付けされた値。それ以外の場合は、タグ付けされていない値 
    エラーデータ
    INVALID_LENGTHインデックスが配列の最後を越えている場合 
    INVALID_OBJECTarrayObject が既知の ID ではない 
    INVALID_ARRAY配列が無効 
    VM_DEAD仮想マシンが動作していない 
    SetValues コマンド (3)
    配列コンポーネントの範囲を設定します。指定された範囲は、配列の境界内にある必要があります。プリミティブ値の場合、各値の型と配列コンポーネントの型は正確に一致している必要があります。オブジェクト値の場合、値型から配列コンポーネント型への広範な参照変換が存在し、かつ配列コンポーネント型がロードされている必要があります。
    出力データ
    arrayIDarrayObject配列のオブジェクト ID 
    intfirstIndex設定する最初のインデックス 
    intvalues設定する値の数  
    values 回の繰り返し:
    untagged-valuevalue設定する値  
    応答データ
    (なし)
    エラーデータ
    INVALID_LENGTHインデックスが配列の最後を越えている場合 
    INVALID_OBJECTarrayObject が既知の ID ではない 
    INVALID_ARRAY配列が無効 
    VM_DEAD仮想マシンが動作していない 

    ClassLoaderReference コマンドセット (14)

    VisibleClasses コマンド (1)
    このクラスローダに対してロードするよう要求されたすべてのクラスのリストを返します。このクラスローダは、返されたリスト内の各クラスの起動クラスローダと見なされます。このリストには、このローダにより定義された各参照型、およびこのクラスローダにより別のクラスローダにロードが委譲されたすべての型が含まれます。

    可視クラスリストには、型の名前空間に関して、便利な特性があります。特定の型の名前は、リスト中に最高 1 回しか出現しません。このクラスローダにより定義されたクラスの型名を使って宣言されたフィールドまたは変数はそれぞれ、その単一の型に解決される必要があります。

    返されるリストの順番は保証されていません。

    出力データ
    classLoaderIDclassLoaderObjectクラスローダのオブジェクト ID 
    応答データ
    intclasses可視クラスの数  
    classes 回の繰り返し:
    byterefTypeTagあとに続く参照型の種類  
    referenceTypeIDtypeIDこのクラスローダに対する可視クラス 
    エラーデータ
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    INVALID_CLASS_LOADERクラスローダが無効 
    VM_DEAD仮想マシンが動作していない 

    EventRequest コマンドセット (15)

    Set コマンド (1)
    イベント要求を設定します。この要求で指定されたイベントが発生すると、ターゲット VM からイベントが送信されます。要求されていないイベントが発生した場合、イベントはターゲット VM から送信されません。これに対する 2 つの例外は、VM 開始イベントと VM 終了イベントです。これらは自動的に生成されるイベントです。詳細については、Composite コマンドを参照してください。
    出力データ
    byteeventKind要求するイベントの種類。要求できるイベントの全リストは、JDWP.EventKind を参照  
    bytesuspendPolicyこのイベントの発生時にどのスレッドを中断するか。イベントおよびコマンド応答の順序は、スレッドが中断および再開される順序を正確に反映するので要注意。たとえば、VM を中断するイベントの発生前に、VM 全体の再開が処理される場合、その再開コマンドへの応答は、中断イベントより前にトランスポートに書き込まれる 
    intmodifiers生成されるイベント数の制御に使用される制約。修飾子は、イベントがイベントキューに配置される前に満たす必要のある追加の条件を指定する。このコレクションに指定された順序で各修飾子をイベントに適用することにより、イベントはフィルタにかけられる。すべての修飾子の条件を満たすイベントだけがレポートされる。0 の値は、要求に修飾子が存在しないことを意味する

    ターゲット VM からデバッガ VM に送信されるイベントトラフィックの量を減らすことにより、フィルタ処理でデバッガのパフォーマンスを劇的に向上させることができる  

    modifiers 回の繰り返し:
    bytemodKind修飾子の種類 
    Case Count - modKind が 1 の場合: 要求されたイベントのレポートを、指定された回数だけ発生した後、最高 1 回に制限する。このフィルタが最初に count - 1 回に達する時点までは、イベントはレポートされない。1 回限りのイベントを要求するには、このメソッドをカウント 1 で呼び出せばよい

    カウントが 0 に達したあとは、この要求内の続くフィルタが適用される。それらのフィルタがいずれもイベントを抑制しない場合、そのイベントはレポートされる。そうでない場合、イベントはレポートされない。どちらの場合にも、この要求に対して、それ以降のイベントがレポートされることはない。この修飾子は、どんな種類のイベントにも使用できる 

    intcountイベントを発生させる前のカウント。1 回限りのイベントで使用 
    Case Conditional - modKind が 2 の場合: 式による条件 
    intexprID将来の使用のために予約済み 
    Case ThreadOnly - modKind が 3 の場合: レポートされるイベントを、指定されたスレッド内のものに制限する。この修飾子は、クラスのアンロードを除く、すべての種類のイベントに使用できる  
    threadIDthread要求されたスレッド 
    Case ClassOnly - modKind が 4 の場合: クラス準備イベントの場合に、この要求で生成されたイベントを制限して、指定された参照型および任意のサブタイプの準備となるようにします。それ以外のイベントの場合、この要求で生成されるイベントを、指定された参照型またはその任意のサブタイプ内で発生したものに限定する。イベントは、指定された参照型に安全にキャストできる参照型の中であれば、任意の位置で生成される。この修飾子は、クラスのアンロード、スレッド開始、およびスレッド終了を除く、すべての種類のイベントで使用できる  
    referenceTypeIDclazz要求されたクラス 
    Case ClassMatch - modKind が 5 の場合: レポートされるイベントを、指定された限定的な正規表現に名前が一致するクラスのイベントに限定する。クラス準備イベントの場合、準備されたクラス名で判定される。クラスのアンロードイベントの場合、アンロードされたクラス名で判定される。それ以外のイベントの場合、イベントが発生した位置のクラス名で判定される。この修飾子は、スレッド開始およびスレッド終了を除く、すべての種類のイベントで使用できる  
    stringclassPattern要求されたクラスパターン。マッチ条件は、指定されたクラスパターンに正確に一致する場合と、パターンの最初または最後が「*」である場合 (たとえば、「*.Foo」、「java.*」) に限定される  
    Case ClassExclude - modKind が 6 の場合: レポートされるイベントを、指定された限定的な正規表現に名前が一致しないクラスのイベントに限定する。クラス準備イベントの場合、準備されたクラス名で判定される。クラスのアンロードイベントの場合、アンロードされたクラス名で判定される。それ以外のイベントの場合、イベントが発生した位置のクラス名で判定される。この修飾子は、スレッド開始およびスレッド終了を除く、すべての種類のイベントで使用できる  
    stringclassPattern許可されないクラスパターン。マッチ条件は、指定されたクラスパターンに正確に一致する場合と、パターンの最初または最後が「*」である場合 (たとえば、「*.Foo」、「java.*」) に限定される  
    Case LocationOnly - modKind が 7 の場合: レポートされるイベントを、指定された場所で発生するイベントに限定する。この修飾子は、ブレークポイント、フィールドアクセス、フィールド変更、ステップ、および例外の各イベントで使用できる  
    locationloc要求される場所 
    Case ExceptionOnly - modKind が 8 の場合: レポートされる例外を、クラスと、それがキャッチされるかどうかを基準にして限定する。この修飾子は、例外イベントでのみ使用できる  
    referenceTypeIDexceptionOrNullレポートされる例外。null (0) は、すべての種類の例外をレポートするという意味。null 以外の場合は、レポートされる例外イベントを、指定された型またはその任意のサブタイプに限定する  
    booleancaughtキャッチされた例外をレポートする 
    booleanuncaughtキャッチされなかった例外をレポートする。例外がキャッチされたかどうかは、例外がスローされた時点でいつも判断できるとは限らない。詳細は、複合イベントの例外イベントのキャッチ位置に関する説明を参照  
    Case FieldOnly - modKind が 9 の場合: レポートされるイベントを、指定されたフィールドで発生するイベントに限定する。この修飾子は、フィールドアクセスおよびフィールド変更イベントでのみ使用できる  
    referenceTypeIDdeclaringフィールドが宣言されている型 
    fieldIDfieldID要求されたフィールド 
    Case Step - modKind が 10 の場合: レポートされるステップイベントを、深さおよびサイズの制限を満たすものに限定する。この修飾子は、ステップイベントでのみ使用できる  
    threadIDthreadステップ実行を行うスレッド 
    intsize各ステップのサイズ。JDWP.StepSize  を参照
    intdepth相対呼び出しスタックの制限。JDWP.StepDepth  を参照
    Case InstanceOnly - modKind が 11 の場合: レポートされるイベントを、指定されたオブジェクトがアクティブな「this」オブジェクトであるイベントに限定する。static メソッドの場合のマッチ条件は、null オブジェクト。この修飾子は、クラス準備、クラスのアンロード、スレッド開始、およびスレッド終了を除く、すべての種類のイベントで使用できる。この修飾子は、JDWP バージョン 1.4 で導入された 
    objectIDinstance要求された「this」オブジェクト 
    応答データ
    intrequestID作成された要求の ID 
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_CLASS無効なクラス 
    INVALID_STRING文字列が無効 
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    INVALID_COUNTカウントが無効 
    INVALID_FIELDID無効なフィールド 
    INVALID_METHODID無効なメソッド 
    INVALID_LOCATION無効な位置 
    INVALID_EVENT_TYPE指定されたイベント型の ID が認識されない 
    NOT_IMPLEMENTEDこの機能はこの仮想マシンに実装されていない 
    VM_DEAD仮想マシンが動作していない 
    Clear コマンド (2)
    イベント要求を解除します。解除できるイベントの全リストは、JDWP.EventKind を参照指定したイベントの種類と requestID が一致するイベント要求のみが解除されます。一致するイベント要求が存在しない場合、コマンドは無操作で、エラーになりません。自動的に生成されるイベントには、対応するイベント要求がないため、このコマンドで解除されない場合があります。
    出力データ
    byteeventKind解除するイベントタイプ 
    intrequestID解除する要求の ID 
    応答データ
    (なし)
    エラーデータ
    VM_DEAD仮想マシンが動作していない 
    INVALID_EVENT_TYPE指定されたイベント型の ID が認識されない 
    ClearAllBreakpoints コマンド (3)
    設定されているすべてのブレークポイントを削除します。設定されているブレークポイントが存在しない場合は無操作です。
    出力データ
    (なし)
    応答データ
    (なし)
    エラーデータ
    VM_DEAD仮想マシンが動作していない 

    StackFrame コマンドセット (16)

    GetValues コマンド (1)
    指定されたフレーム内の 1 つまたは複数の局所変数の値を返します。各変数は、フレームのコードインデックスで可視である必要があります。局所変数の情報が利用できなくても、フロントエンドが正しい局所変数インデックスを判別できる場合は、値の取得が可能です。一般に、局所変数テーブルの情報にアクセスしなくても、メソッドシグニチャーからメソッド引数について変数のインデックスを判別できます。
    出力データ
    threadIDthreadフレームのスレッド  
    frameIDframeフレーム ID 
    intslots取得する値の数  
    slots 回の繰り返し:
    intslotフレーム内の局所変数のインデックス  
    bytesigbyte変数の型を識別するタグ 
    応答データ
    intvalues取得された値の数。slots の取得する値の数と常に等しい 
    values 回の繰り返し:
    valueslotValue局所変数の値  
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    INVALID_FRAMEID無効な jframeID 
    INVALID_SLOT無効なスロット 
    VM_DEAD仮想マシンが動作していない 
    SetValues コマンド (2)
    1 つまたは複数の局所変数の値を設定します。各変数は、現在のフレームコードインデックスで可視である必要があります。プリミティブ値の場合、値の型と変数の型は正確に一致している必要があります。オブジェクト値の場合、値の型から変数の型への広範な参照変換が存在し、かつ変数の型がロードされている必要があります。

    局所変数の情報を利用できなくても、フロントエンドが正しい局所変数インデックスを判別できる場合は、値の設定が可能です。一般に、局所変数テーブルの情報にアクセスしなくても、メソッドシグニチャーからメソッド引数について変数のインデックスを判別できます。

    出力データ
    threadIDthreadフレームのスレッド  
    frameIDframeフレーム ID 
    intslotValues設定する値の数  
    slotValues 回の繰り返し:
    intslotスロット ID 
    valueslotValue設定する値  
    応答データ
    (なし)
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    INVALID_FRAMEID無効な jframeID 
    VM_DEAD仮想マシンが動作していない 
    ThisObject コマンド (3)
    このフレームについての「this」参照の値を返します。フレームのメソッドが static またはネイティブの場合、応答には null オブジェクト参照が含まれます。
    出力データ
    threadIDthreadフレームのスレッド  
    frameIDframeフレーム ID 
    応答データ
    tagged-objectIDobjectThisこのフレームについての「this」オブジェクト  
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    INVALID_FRAMEID無効な jframeID 
    VM_DEAD仮想マシンが動作していない 
    PopFrames コマンド (4)
    スレッドスタックの一番上のスタックフレームを「フレーム」までポップします。このコマンドを実行するには、スレッドが中断されている必要があります。一番上のスタックフレームは破棄され、「フレーム」の前のスタックフレームが現在のフレームになります。オペランドスタックは回復します。引数が再度追加され、呼び出しが invokestatic ではなかった場合、objectref も再度追加されます。Java 仮想マシンプログラムカウンターは、呼び出し命令の操作コードに戻されます。

    これは JDWP バージョン 1.4 以降です。canPopFrames 機能が必要です (CapabilitiesNew を参照)。

    出力データ
    threadIDthreadスレッドのオブジェクト ID 
    frameIDframeフレーム ID 
    応答データ
    (なし)
    エラーデータ
    INVALID_THREAD渡されたスレッドが null、無効、またはすでに終了している 
    INVALID_OBJECTスレッド が既知の ID ではない 
    INVALID_FRAMEID無効な jframeID 
    THREAD_NOT_SUSPENDED指定されたスレッドは、イベントによって中断されていない 
    NO_MORE_FRAMES呼び出しスタックに Java または JNI フレームがなくなった 
    INVALID_FRAMEID無効な jframeID 
    NOT_IMPLEMENTEDこの機能はこの仮想マシンに実装されていない 
    VM_DEAD仮想マシンが動作していない 

    ClassObjectReference コマンドセット (17)

    ReflectedType コマンド (1)
    このクラスオブジェクトによりリフレクトされた参照型を返します。
    出力データ
    classObjectIDclassObjectクラスオブジェクト  
    応答データ
    byterefTypeTagあとに続く参照型の種類  
    referenceTypeIDtypeIDリフレクトされた参照型 
    エラーデータ
    INVALID_OBJECTこの参照型はすでにアンロードされ、ガベージコレクトされた 
    VM_DEAD仮想マシンが動作していない 

    Event コマンドセット (64)

    Composite コマンド (100)
    ターゲット VM では、特定の時点でいくつかのイベントが発生します。たとえば、特定の場所に対して複数のブレークポイント要求が存在するか、ブレークポイント要求と同じ場所に対してステップ実行を行う場合を考えてみましょう。これらのイベントは、複合イベントとしてまとめて配信されます。一貫性を保つため、レポートするイベントが 1 つだけであっても、イベントの配信には常に複合イベントが使用されます。

    複合イベントとしてグループ化されるイベントには、次の方法で制限が課されます。

    VM 開始イベントと VM 終了イベントは自動的に生成されるイベントです。つまり、EventRequest.Set コマンドを使ってこれらのイベントを要求する必要はありません。VM 開始イベントは、VM の初期化の完了を示します。VM 終了イベントは、VM の終了を示します。自動的に生成されるイベントが発生したときにデバッガが接続されている場合、そのイベントはターゲット VM から送信されます。自動的に生成されるイベントは、EventRequest.Set コマンドを使って要求することもできます。したがって、イベントの発生時に同じイベントの種類の複数のイベントがターゲット VM から送信されます。自動的に生成されるイベントは、イベントデータの requestID フィールドが 0 に設定された状態で送信されます。イベントデータの suspendPolicy フィールドの値は、イベントによって異なります。自動的に生成される VM 開始イベントの場合、suspendPolicy の値は定義されないため、実装固有または設定固有になります。たとえば、Sun の実装では、suspendPolicy は起動時の JDWP エージェントのオプションとして指定されます。自動的に生成される VM 終了イベントの suspendPolicy は NONE に設定されます。

    イベントデータ
    bytesuspendPolicyこの複合イベントによりどのスレッドが中断されるか 
    inteventsセット内のイベント 
    events 回の繰り返し:
    byteeventKindイベントの種類のセレクタ 
    Case VMStart - eventKind が JDWP.EventKind.VM_START の場合: ターゲット VM の初期化の通知。このイベントは、メインスレッドの開始前、かつアプリケーションコードの実行前に受け取られる。このイベントが発生する前に、大量のシステムコードが実行され、多数のシステムクラスがロードされる。このイベントは、明示的に要求されていなくても、常にターゲット VM により生成される 
    intrequestIDイベントを生成させた要求 (イベントが自動的に生成された場合は 0) 
    threadIDthread初期スレッド 
    Case VMStart - eventKind が JDWP.EventKind.SINGLE_STEP の場合: ターゲット VM のステップ完了の通知。その位置のコードが実行される前に、ステップイベントが生成される  
    intrequestIDイベントを生成させた要求 
    threadIDthreadステップ実行の行われたスレッド 
    locationlocationステップ実行の行われた位置 
    Case Breakpoint - eventKind が JDWP.EventKind.BREAKPOINT の場合: ターゲット VM のブレークポイントの通知。その位置のコードが実行される前に、ブレークポイントイベントが生成される  
    intrequestIDイベントを生成させた要求 
    threadIDthreadブレークポイントをヒットしたスレッド 
    locationlocationヒットした位置 
    Case MethodEntry - eventKind が JDWP.EventKind.METHOD_ENTRY の場合: ターゲット VM のメソッド呼び出しの通知。このイベントは、呼び出されたメソッド内のコードが実行される前に生成される。メソッドエントリイベントは、ネイティブおよび非ネイティブのメソッドの両方で生成される

    いくつかの VM では、メソッドがスレッドの初期化の一部として呼び出された場合、特定のスレッドのスレッド開始イベントが発生する前に、そのスレッドについてのメソッドエントリイベントが発生することがある  

    intrequestIDイベントを生成させた要求 
    threadIDthreadメソッドに入ったスレッド 
    locationlocationメソッド内の初期実行可能ファイルの位置 
    Case MethodExit - eventKind が JDWP.EventKind.METHOD_EXIT の場合: ターゲット VM のメソッド復帰の通知。このイベントは、メソッド内のすべてのコードが実行された後で生成される。ただし、このイベントの位置は、メソッド内で最後に実行された位置になる。メソッド終了イベントは、ネイティブおよび非ネイティブのメソッドの両方で生成される。メソッドが例外をスローして終了した場合、メソッド終了イベントは生成されない  
    intrequestIDイベントを生成させた要求 
    threadIDthreadメソッドから出たスレッド 
    locationlocation終了の位置 
    Case Exception - eventKind が JDWP.EventKind.EXCEPTION の場合: ターゲット VM の例外通知。例外が非ネイティブメソッドからスローされた場合、例外イベントは例外がスローされた位置で生成される。例外がネイティブメソッドからスローされた場合、例外がスローされた後の最初の非ネイティブ位置で例外イベントが生成される 
    intrequestIDイベントを生成させた要求 
    threadIDthread例外付きのスレッド 
    locationlocation例外がスローされた位置 (または、ネイティブメソッドからスローされた場合は、スローされた後の最初の非ネイティブの位置) 
    tagged-objectIDexceptionスローされた例外 
    locationcatchLocationキャッチされた位置、または 0 (キャッチされなかった場合)。例外がキャッチされたと見なされるのは、スローの時点で、その例外を処理する try 文で現在の位置が動的に囲まれている場合。詳細は、JVM 仕様を参照。そのような try 文が存在する場合、キャッチの位置は、該当する catch 節内の最初の位置になる

    例外の発生時に呼び出しスタック内にネイティブメソッドが存在する場合は、返されるキャッチ位置について重要な制約があるので要注意。そのような場合、呼び出しスタック上の何らかのネイティブメソッドにより例外が処理されるかどうかは予測できない。そのため、ここでキャッチされなかったと見なされた例外が、実はネイティブメソッドによって処理されていて、ターゲット VM を終了させないという状況が起こり得る。さらに、ここで返されるキャッチ位置に、例外をスローしたスレッドが必ず到達すると見なすこともできない。現在位置とキャッチ位置との間にネイティブフレームが存在する場合には、例外がネイティブメソッド内で処理され、クリアされる可能性がある

    ソースコード内に try-catch ブロックが明示的に記述されていない場合、コンパイラが try-catch ブロックを生成できることに注意。たとえば、synchronized および finally ブロックについて生成されるコードには、暗黙の try-catch ブロックが含まれることがある。例外のスロー時にその種の暗黙的に生成された try-catch ブロックが呼び出しスタック上に存在する場合は、ソースコード上では例外がキャッチされないように見えるとしても、例外はキャッチされたと見なされる  

    Case ThreadStart - eventKind が JDWP.EventKind.THREAD_START の場合: ターゲット VM で新しいスレッドが実行されることの通知。新規スレッドは、java.lang.Thread.start を呼び出した結果として、または JNI を介して VM に新規スレッドを接続した結果として実行されるようになる。この通知は、新規スレッドにより、その実行が開始される少し前に生成される。このタイミングの影響で、このイベントが受信される前に、そのスレッドについて他のイベントが受信される可能性がある。特に、メソッドエントリイベントおよびメソッド終了イベントは、スレッドの初期化中に発生することがある。また、VirtualMachine AllThreads コマンドが、あるスレッドを、そのスレッドのスレッド開始イベントが受信される前に返す可能性もある

    このイベントは、スレッドオブジェクトの作成については何も情報を提供しておらず、デバッグ対象の VM によっては、ずっと以前に作成されたスレッドである可能性もあるので、注意を要する  

    intrequestIDイベントを生成させた要求 
    threadIDthread開始したスレッド 
    Case ThreadDeath - eventKind が JDWP.EventKind.THREAD_DEATH の場合: ターゲット VM の完了スレッドの通知。この通知は、終了しようとしているスレッドにより終了前に生成される。このタイミングのため、VirtualMachine.allThreads は、このイベントの受信後に、このスレッドを返すことができます。

    このイベントは、スレッドオブジェクトの寿命については何も情報を提供しない。ターゲット VM にどんな参照が存在するかに応じて、すぐにガベージコレクトされることも、されないこともある  

    intrequestIDイベントを生成させた要求 
    threadIDthread終了するスレッド 
    Case ClassPrepare - eventKind が JDWP.EventKind.CLASS_PREPARE の場合: ターゲット VM のクラス準備の通知。クラス準備の定義については、JVM 仕様を参照。プリミティブクラス (たとえば、java.lang.Integer.TYPE) の場合、クラス準備イベントは生成されない  
    intrequestIDイベントを生成させた要求 
    threadIDthread準備が行われているスレッド。まれに、ターゲット VM 内のデバッガシステムスレッドでこのイベントが発生することがある。デバッガスレッドはこれらのイベントの発生を防ぐための予防措置を講じるが、ある状況下、特に java.lang.Error のいくつかのサブクラスでは回避できない。このイベントがデバッガシステムスレッドにより生成された場合、このメソッドが返す値は null になる。また、このイベントについて要求された中断ポリシーが EVENT_THREAD である場合は、そのポリシーに反してすべてのスレッドが中断させられ、複合イベントの中断ポリシーもその変更をリフレクトする

    前述の説明は、通常の (デバッグ以外の) 操作中にターゲット VM により作成されたシステムスレッドには当てはまらない  

    byterefTypeTag参照型の種類。JDWP.TypeTag を参照 
    referenceTypeIDtypeID準備中の型 
    stringsignature型のシグニチャー 
    intstatus型のステータス。JDWP.ClassStatus を参照 
    Case ClassUnload - eventKind が JDWP.EventKind.CLASS_UNLOAD の場合: ターゲット VM のクラスアンロードの通知

    ガベージコレクションの実行中にはデバッガのバックエンドに厳しい制約があるため、アンロード情報は大幅に制限されている  

    intrequestIDイベントを生成させた要求 
    stringsignature型のシグニチャー 
    Case FieldAccess - eventKind が JDWP.EventKind.FIELD_ACCESS の場合: ターゲット VM のフィールドアクセスの通知。フィールドの変更は、フィールドアクセスとは見なされないcanWatchFieldAccess 機能が必要 (CapabilitiesNew を参照) 
    intrequestIDイベントを生成させた要求 
    threadIDthreadアクセス中のスレッド 
    locationlocationアクセスの位置 
    byterefTypeTag参照型の種類。JDWP.TypeTag を参照 
    referenceTypeIDtypeIDフィールドの型 
    fieldIDfieldIDアクセスされているフィールド 
    tagged-objectIDobjectアクセスされているオブジェクト (static の場合は null=0) 
    Case FieldModification - eventKind が JDWP.EventKind.FIELD_MODIFICATION の場合: ターゲット VM のフィールド変更の通知canWatchFieldModification 機能が必要 (CapabilitiesNew を参照) 
    intrequestIDイベントを生成させた要求 
    threadIDthread変更中のスレッド 
    locationlocation変更の位置 
    byterefTypeTag参照型の種類。JDWP.TypeTag を参照 
    referenceTypeIDtypeIDフィールドの型 
    fieldIDfieldID変更されているフィールド 
    tagged-objectIDobject変更されているオブジェクト (static の場合は null=0) 
    valuevalueToBe割り当てられる値 
    Case VMDeath - eventKind が JDWP.EventKind.VM_DEATH の場合:  
    intrequestIDイベントを生成させた要求 

    Error 定数

    NONE0エラーは発生しなかった。  
    INVALID_THREAD10渡されたスレッドが null、無効、またはすでに終了している  
    INVALID_THREAD_GROUP11無効なスレッドグループ  
    INVALID_PRIORITY12無効な優先順位  
    THREAD_NOT_SUSPENDED13指定されたスレッドは、イベントによって中断されていない  
    THREAD_SUSPENDED14スレッドはすでに中断されている  
    INVALID_OBJECT20この参照型はすでにアンロードされ、ガベージコレクトされた  
    INVALID_CLASS21無効なクラス  
    CLASS_NOT_PREPARED22クラスがロードされているが、まだ準備されていない  
    INVALID_METHODID23無効なメソッド  
    INVALID_LOCATION24無効な位置  
    INVALID_FIELDID25無効なフィールド  
    INVALID_FRAMEID30無効な jframeID  
    NO_MORE_FRAMES31呼び出しスタックに Java または JNI フレームがなくなった  
    OPAQUE_FRAME32フレームに関する情報が入手できない  
    NOT_CURRENT_FRAME33操作は現在のフレームでしか実行できない  
    TYPE_MISMATCH34使用した関数と変数の型が合わない  
    INVALID_SLOT35無効なスロット  
    DUPLICATE40すでに設定された項目  
    NOT_FOUND41目的の要素が見つからない  
    INVALID_MONITOR50無効なモニター  
    NOT_MONITOR_OWNER51このスレッドはモニターを所有していない  
    INTERRUPT52呼び出しの完了前に割り込まれた  
    INVALID_CLASS_FORMAT60仮想マシンがクラスファイルを読み込もうとしたが、ファイルの形式が間違っているか、その他の理由でクラスファイルとして解釈できない  
    CIRCULAR_CLASS_DEFINITION61クラスの初期化中に、循環定義が検出された  
    FAILS_VERIFICATION62クラスファイルの形式は正しいが、検証ルーチンは何らかの種類の内部的な不整合かセキュリティ上の問題を検出した  
    ADD_METHOD_NOT_IMPLEMENTED63追加メソッドが実装されていない  
    SCHEMA_CHANGE_NOT_IMPLEMENTED64スキーマの変更が実装されていない  
    INVALID_TYPESTATE65スレッドの状態が変更されたため、不整合が生じている  
    HIERARCHY_CHANGE_NOT_IMPLEMENTED66新しいクラスのバージョンの直接スーパークラスが異なる、または直接実装されているインタフェースが異なり、canUnrestrictedlyRedefineClasses が false  
    DELETE_METHOD_NOT_IMPLEMENTED67新しいクラスのバージョンでは、旧クラスのバージョンで宣言したメソッドを宣言せず、また canUnrestrictedlyRedefineClasses が false  
    UNSUPPORTED_VERSION68クラスファイルのバージョンがこの VM でサポートされていない  
    NAMES_DONT_MATCH69新しいクラスファイル内で定義されたクラス名が、旧クラスオブジェクト内の名前と異なる  
    CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED70新しいクラスのバージョンの修飾子が異なり、canUnrestrictedlyRedefineClasses が false  
    METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED71新しいクラスのバージョンのメソッドの修飾子が旧クラスのバージョンの修飾子と異なり、canUnrestrictedlyRedefineClasses が false  
    NOT_IMPLEMENTED99この機能はこの仮想マシンに実装されていない  
    NULL_POINTER100無効なポインタ  
    ABSENT_INFORMATION101目的の情報を入手できない  
    INVALID_EVENT_TYPE102指定されたイベント型の ID が認識されない  
    ILLEGAL_ARGUMENT103不正な引数  
    OUT_OF_MEMORY110関数でメモリの割り当てが必要になったが、これ以上割り当てられるメモリがなかった  
    ACCESS_DENIED111この仮想マシンではデバッグが有効になっていない。JVMDI が使用できない  
    VM_DEAD112仮想マシンが動作していない  
    INTERNAL113予期しない内部エラーが発生した  
    UNATTACHED_THREAD115この関数の呼び出しに使われているスレッドが、仮想マシンに接続されていない。呼び出しは、接続されたスレッドから行う必要がある  
    INVALID_TAG500オブジェクト型 ID またはクラスタグ  
    ALREADY_INVOKING502以前の呼び出しが未完了  
    INVALID_INDEX503インデックスが無効  
    INVALID_LENGTH504長さが無効  
    INVALID_STRING506文字列が無効  
    INVALID_CLASS_LOADER507クラスローダが無効  
    INVALID_ARRAY508配列が無効  
    TRANSPORT_LOAD509トランスポートをロードできない  
    TRANSPORT_INIT510トランスポートを初期化できない  
    NATIVE_METHOD511  
    INVALID_COUNT512カウントが無効  

    EventKind 定数

    VM_DISCONNECTED100JDWP を越えて送信されることはない 
    VM_STARTJDWP.EventKind.VM_INIT  
    THREAD_DEATHJDWP.EventKind.THREAD_END  
    SINGLE_STEP1  
    BREAKPOINT2  
    FRAME_POP3  
    EXCEPTION4  
    USER_DEFINED5  
    THREAD_START6  
    THREAD_END7  
    CLASS_PREPARE8  
    CLASS_UNLOAD9  
    CLASS_LOAD10  
    FIELD_ACCESS20  
    FIELD_MODIFICATION21  
    EXCEPTION_CATCH30  
    METHOD_ENTRY40  
    METHOD_EXIT41  
    VM_INIT90  
    VM_DEATH99  

    ThreadStatus 定数

    ZOMBIE0  
    RUNNING1  
    SLEEPING2  
    MONITOR3  
    WAIT4  

    SuspendStatus 定数

    SUSPEND_STATUS_SUSPENDED0x1  

    ClassStatus 定数

    VERIFIED1  
    PREPARED2  
    INITIALIZED4  
    ERROR8  

    TypeTag 定数

    CLASS1参照型ははクラス  
    INTERFACE2参照型はインタフェース  
    ARRAY3参照型は配列  

    Tag 定数

    ARRAY91'[' - 配列オブジェクト (objectID サイズ)  
    BYTE66'B' - バイト値 (1 バイト)  
    CHAR67'C' - 文字値 (2 バイト)  
    OBJECT76'L' - オブジェクト (objectID サイズ)  
    FLOAT70'F' - 浮動小数点値 (4 バイト)  
    DOUBLE68'D' - 倍精度値 (8 バイト)  
    INT73'I' - 整数値 (4 バイト)  
    LONG74'J' - 長整数値 (8 バイト)  
    SHORT83'S' - 短整数値 (2 バイト)  
    VOID86'V' - void 値 (バイトなし)  
    BOOLEAN90'Z' - ブール値 (1 バイト)  
    STRING115's' - String オブジェクト (objectID サイズ)  
    THREAD116't' - Thread オブジェクト (objectID サイズ)  
    THREAD_GROUP103'g' - ThreadGroup オブジェクト (objectID サイズ)  
    CLASS_LOADER108'l' - ClassLoader オブジェクト (objectID サイズ)  
    CLASS_OBJECT99'c' - クラスオブジェクト (objectID サイズ)  

    StepDepth 定数

    INTO0ステップの終了前に、メソッド呼び出しがあれば、その中に入る  
    OVER1ステップの終了前に、メソッド呼び出しがあれば、そのメソッドをすべて実行する  
    OUT2現在のメソッドから出ステップアウトする  

    StepSize 定数

    MIN0可能な最小の量 (多くの場合、バイトコード命令) だけステップ実行する  
    LINE1次のソース行までステップ実行する。行番号情報が存在しない場合は、MIN ステップが実行される  

    SuspendPolicy 定数

    NONE0このイベントの遭遇時にスレッドを中断しない  
    EVENT_THREAD1このイベントの遭遇時にイベントスレッドを中断する  
    ALL2このイベントの遭遇時にすべてのスレッドを中断する  

    InvokeOptions 定数

    呼び出しオプションは、次のビットフラグのうち、0 個以上のビットを組み合わせたもの
    INVOKE_SINGLE_THREADED0x01それ以外の場合、開始したすべてのスレッド  
    INVOKE_NONVIRTUAL0x02それ以外の場合、通常の仮想呼び出し (インスタンスメソッドのみ)