モジュール jdk.jdi
パッケージ com.sun.jdi

インタフェースVirtualMachine

すべてのスーパー・インタフェース:
Mirror
既知のすべてのサブインタフェース:
PathSearchingVirtualMachine

public interface VirtualMachine
extends Mirror
デバッグのターゲット仮想マシンです。 厳密には、ターゲットVMの複合状態を示すmirrorです。 ほかのすべてのミラーは、このインタフェースのインスタンスと関連しています。 ほかのすべてのミラーへのアクセスは、このインタフェースのインスタンスを介して、直接または間接的に行います。 大域VMプロパティへのアクセスおよびVMの実行の制御は、このインタフェースから直接行います。

このインタフェースのインスタンスは、Connectorのインスタンスによって作成されます。 たとえば、AttachingConnectorは、ターゲットVMに接続し、その仮想マシンのミラーを返します。 コネクタは、通常、VirtualMachineManagerのVirtualMachineManager.createVirtualMachine(Connection) createVirtualMachine(Connection)メソッドを呼び出して、仮想マシンを作成します。

起動コネクタにより起動されたターゲットVMは、VMStartEventが受け入れられるまで安定であることを保証されていません。

ターゲットVMが切断されていて、VMDisconnectEventEventQueueから読み出されたか読出せる場合は、VirtualMachineをパラメータとして取るVirtualMachine上のメソッドはVMDisconnectedExceptionをスローします。

VirtualMachineをパラメータとして取るVirtualMachine上のメソッドは、ターゲットVMのメモリーが不足した場合にVMOutOfMemoryExceptionをスローします。

導入されたバージョン:
1.3
  • フィールドのサマリー

    フィールド 
    修飾子と型 フィールド 説明
    static int TRACE_ALL
    すべてのトレースが有効になります。
    static int TRACE_EVENTS
    内部イベント処理のトレースが有効になります。
    static int TRACE_NONE
    すべてのトレースが無効になります。
    static int TRACE_OBJREFS
    オブジェクト参照の内部管理のトレースが有効になります。
    static int TRACE_RECEIVES
    ターゲットVMから受信されるJDWPパケットのトレースが有効になります。
    static int TRACE_REFTYPES
    参照型の内部管理のトレースが有効になります。
    static int TRACE_SENDS
    ターゲットVMに送信されるJDWPパケットのトレースが有効になります。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    List<ReferenceType> allClasses()
    ロード済みのすべての型を返します。
    default List<ModuleReference> allModules()
    すべてのモジュールを返します。
    List<ThreadReference> allThreads()
    現在実行中のスレッドのリストを返します。
    boolean canAddMethod()
    ターゲットVMでクラス再定義の実行時にメソッドを追加できるかどうかを判定します。
    boolean canBeModified()
    ターゲットVMが読取り専用VMであるかどうかを判定します。
    boolean canForceEarlyReturn()
    ターゲットVMでメソッドの強制的な早期復帰がサポートされているかどうかを判定します。
    boolean canGetBytecodes()
    ターゲットVMでメソッドのバイト・コードの検索がサポートされているかどうかを判定します。
    boolean canGetClassFileVersion()
    ターゲットVMで、クラス・ファイルのメジャー・バージョン番号とマイナー・バージョン番号の読取りがサポートされているかどうかを判定します。
    boolean canGetConstantPool()
    ターゲットVMで、クラスの定数プール情報の取得がサポートされているかどうかを判定します。
    boolean canGetCurrentContendedMonitor()
    ターゲットVMでスレッドが現在待機しているモニターの検索がサポートされているかどうかを判定します。
    boolean canGetInstanceInfo()
    ターゲットVMで、クラス・インスタンス、インスタンス数、および参照オブジェクトのアクセスがサポートされているかどうかを判定します。
    boolean canGetMethodReturnValues()
    ターゲットVMで、MethodExitEventに戻り値を含める機能がサポートされているかどうかを判定します。
    default boolean canGetModuleInfo()
    ターゲットVMがモジュールに関する情報を取得できるかどうかを判定します。
    boolean canGetMonitorFrameInfo()
    ターゲットVMで、モニター獲得フレームの情報の取得がサポートされているかどうかを判定します。
    boolean canGetMonitorInfo()
    ターゲットVMでオブジェクトのモニター情報の検索がサポートされているかどうかを判定します。
    boolean canGetOwnedMonitorInfo()
    ターゲットVMでスレッドが所有しているモニターの検索がサポートされているかどうかを判定します。
    boolean canGetSourceDebugExtension()
    ターゲットVMでソース・デバッグ拡張機能の取得がサポートされているかどうかを判定します。
    boolean canGetSyntheticAttribute()
    ターゲットVMでメソッドまたはフィールドの合成属性の問い合わせがサポートされているかどうかを判定します。
    boolean canPopFrames()
    ターゲットVMでスレッド・スタックからのフレームのポップがサポートされているかどうかを判定します。
    boolean canRedefineClasses()
    ターゲットVMで任意のレベルのクラス再定義がサポートされているかどうかを判定します。
    boolean canRequestMonitorEvents()
    ターゲットVMで、MonitorContendedEnterRequestの作成がサポートされているかどうかを判定します。
    boolean canRequestVMDeathEvent()
    ターゲットVMで、VMDeathRequestの作成がサポートされているかどうかを判定します。
    boolean canUnrestrictedlyRedefineClasses()
    ターゲットVMが、redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)によって制限されるクラスの再定義を実行するときに変更をサポートするかどうかを決定します。
    boolean canUseInstanceFilters()
    ターゲットVMで特定のインスタンス・オブジェクトによるイベントのフィルタ処理がサポートされているかどうかを判定します。
    boolean canUseSourceNameFilters()
    ターゲットVMで、ソース名によるクラス準備イベントのフィルタがサポートされているかどうかを判定します。
    boolean canWatchFieldAccess()
    ターゲットVMでフィールド・アクセスのウォッチポイントがサポートされているかどうかを判定します。
    boolean canWatchFieldModification()
    ターゲットVMでフィールド変更のウォッチポイントがサポートされているかどうかを判定します。
    List<ReferenceType> classesByName​(String className)
    指定された名前に一致するロード済みの参照型を返します。
    String description()
    ターゲットVM、およびターゲットVMをミラー化するデバッガのサポートについてのテキスト情報を返します。
    void dispose()
    この仮想マシンのミラーを無効にします。
    EventQueue eventQueue()
    この仮想マシンのイベント・キューを返します。
    EventRequestManager eventRequestManager()
    この仮想マシンのイベント要求マネージャを返します。
    void exit​(int exitCode)
    ミラー化されたVMが、特定のエラー・コードで終了します。
    String getDefaultStratum()
    VMのデフォルト層を返します。
    long[] instanceCounts​(List<? extends ReferenceType> refTypes)
    refTypesリスト内の各ReferenceTypeのインスタンス数を返します。
    BooleanValue mirrorOf​(boolean value)
    指定された値に対応するBooleanValueを作成します。
    ByteValue mirrorOf​(byte value)
    指定された値に対応するByteValueを作成します。
    CharValue mirrorOf​(char value)
    指定された値に対応するCharValueを作成します。
    DoubleValue mirrorOf​(double value)
    指定された値に対応するDoubleValueを作成します。
    FloatValue mirrorOf​(float value)
    指定された値に対応するFloatValueを作成します。
    IntegerValue mirrorOf​(int value)
    指定された値に対応するIntegerValueを作成します。
    LongValue mirrorOf​(long value)
    指定された値に対応するLongValueを作成します。
    ShortValue mirrorOf​(short value)
    指定された値に対応するShortValueを作成します。
    StringReference mirrorOf​(String value)
    この仮想マシン内に文字列を作成します。
    VoidValue mirrorOfVoid()
    VoidValueを作成します。
    String name()
    ターゲットVMの名前をプロパティjava.vm.nameに指定されている方法で返します。
    Process process()
    この仮想マシンがLaunchingConnectorで起動されている場合は、そのProcessオブジェクトを返します。
    void redefineClasses​(Map<? extends ReferenceType,​byte[]> classToBytes)
    指定されたクラスはすべて、提供される定義に従って再定義されます。
    void resume()
    この仮想マシンで動作中のアプリケーションの実行を再開します。
    void setDebugTraceMode​(int traceFlags)
    com.sun.jdi実装によって実行される動作をトレースします。
    void setDefaultStratum​(String stratum)
    このVMのデフォルト層を設定します(層についてはLocationを参照)。
    void suspend()
    この仮想マシンで実行中のアプリケーションの実行を中断します。
    List<ThreadGroupReference> topLevelThreadGroups()
    親を持たない各スレッド・グループを返します。
    String version()
    ターゲットVM内のJava Runtime Environmentのバージョンを、java.versionプロパティに指定されている方法で返します。

    インタフェース com.sun.jdi.Mirrorで宣言されたメソッド

    toString, virtualMachine
  • フィールド詳細

  • メソッドの詳細

    • allModules

      default List<ModuleReference> allModules()
      すべてのモジュールを返します。 ターゲットVMの各モジュールに対して、ModuleReferenceが返されるリストに配置されます。

      この操作は、ターゲット仮想マシンでサポートされていないことがあります。 canGetModuleInfo()を使用して、操作がサポートされているかどうかを判断します。

      実装要件:
      デフォルト実装はUnsupportedOperationExceptionをスローします。
      戻り値:
      ModuleReferenceオブジェクトのリスト。各オブジェクトはターゲットVM内のモジュールをミラー・リングします。
      例外:
      UnsupportedOperationException - ターゲット仮想マシンがこの操作をサポートしていない場合。
      導入されたバージョン:
      9
    • classesByName

      List<ReferenceType> classesByName​(String className)
      指定された名前に一致するロード済みの参照型を返します。 名前は、java.lang.Stringのように完全指定する必要があります。 返されるリストには、指定された名前を使用して検索された各クラスまたはインタフェースのReferenceTypeが含まれます。 ロード済みのクラス以外は検索されません。指定された名前のクラスはロードされません。

      返されるリストには、準備の段階でロード済みの参照型、および準備が定義されていない型(配列など)が含まれます。

      パラメータ:
      className - 検索するクラスとインタフェースの名前
      戻り値:
      ターゲットVMの指定された名前の型をミラー化するReferenceTypeオブジェクトのリスト。
    • allClasses

      List<ReferenceType> allClasses()
      ロード済みのすべての型を返します。 返されるリストには、ターゲットVMのロード済みの型ごとに、ReferenceTypeが出力されます。 このリストには、クラス、インタフェース、および配列の型をミラー化するReferenceTypeが含まれます。

      返されるリストには、準備の段階でロード済みの参照型、および準備が定義されていない型(配列など)が含まれます。

      戻り値:
      ターゲットVMのロード済みの型をミラー化するReferenceTypeオブジェクトのリスト。
    • redefineClasses

      void redefineClasses​(Map<? extends ReferenceType,​byte[]> classToBytes)
      指定されたクラスはすべて、提供される定義に従って再定義されます。 再定義されたクラスのメソッドは、次の場合に「(メソッドの旧バージョンに対して)等価である」と言います。
      • 双方のメソッドのバイト・コードが同じ(定数プールのインデックスを除く)
      • 参照定数が等しい。
      上記以外の場合、新しいメソッドは「非等価である」と言われます。 再定義されたメソッドにアクティブなスタック・フレームがあると、そのアクティブなフレームは旧バージョンのメソッドのバイト・コードを引き続き実行します。 新バージョンの再定義されたメソッドが非等価である場合、これらのアクティブなフレームのいずれかから呼び出されたメソッドは「廃止された」と言われ、この廃止されたメソッドのいずれかで呼び出されると、Method.isObsolete()はtrueを返します。 このスタック・フレームを再設定する必要がある場合は、ThreadReference.popFrames(StackFrame)を使用して、スタックから旧バージョンの廃止されたメソッド実行をポップします。 再定義されたメソッドを新しく呼び出すと、常に新しいバージョンが呼び出されます。

      この関数により、一般的なJVMセマンティックスのもとで行われる以外の初期化は起こりません。 つまり、クラスの再定義では、クラスの初期化子は実行されません。 既存のスタティック変数は、呼出し前の状態のままです。 ただし、まったく初期化されていない(新しい)スタティック変数には、デフォルト値が割り当てられます。

      再定義したクラスにインスタンスがある場合、そのインスタンスのフィールドは呼出し完了時に再定義したクラスで定義されます。 既存のフィールドは以前の値を保持します。 新しいフィールドはデフォルト値となります。インスタンス・イニシャライザやコンストラクタは実行しません。

      スレッドを中断する必要はありません。

      この関数によって生成されるイベントはありません。

      再定義されたクラス内のブレークポイントはすべて削除されます。

      この操作は、ターゲット仮想マシンでサポートされていないことがあります。 この操作がサポートされているかどうかを確認するには、canRedefineClasses()を使用します。 再定義によってメソッドを追加できるかどうかを確認するには、canAddMethod()を使用してください。 再定義によってスキーマの変更、メソッドの削除、クラス階層の変更などが可能かどうかを確認するには、canUnrestrictedlyRedefineClasses()を使用してください。

      パラメータ:
      classToBytes - ReferenceTypeからバイト配列へのマップ。 バイトは、新しいクラス定義を示す。また、Java仮想マシンのクラス・ファイル形式である。
      例外:
      UnsupportedOperationException - ターゲット仮想マシンがこの操作をサポートしていない場合。
      • canRedefineClasses()がfalseの場合にこのメソッドを呼び出すと、この例外がスローされる。
      • canAddMethod()がfalseの場合にメソッドを追加しようとすると、この例外がスローされる。
      • canUnrestrictedlyRedefineClasses()がfalseの場合に次のいずれかの操作を試行すると、この例外がスローされる
        • スキーマ(フィールド)の変更
        • 階層(スーパークラス、インタフェース)の変更
        • メソッドの削除
        • クラス修飾子の変更
        • メソッド修飾子の変更
        • NestHostNestMembersまたはRecordクラス属性の変更
      NoClassDefFoundError - バイトが参照型と対応していない(名前が一致していない)場合。
      VerifyError - 「ベリファイア」が、正しい形式ではあるが、内部に整合性またはセキュリティに関する問題を含むクラスを検出した場合。
      ClassFormatError - バイトが有効なクラスを表現していない場合。
      ClassCircularityError - クラスの初期化中に循環が検出された場合。
      UnsupportedClassVersionError - バイト内のメジャー・バージョン番号とマイナー・バージョン番号がVMによってサポートされていない場合。
      VMCannotBeModifiedException - VirtualMachineが読取り専用の場合(canBeModified()を参照)。
      導入されたバージョン:
      1.4
      関連項目:
      Method.isObsolete(), ThreadReference.popFrames(com.sun.jdi.StackFrame), canRedefineClasses(), canAddMethod(), canUnrestrictedlyRedefineClasses()
    • allThreads

      List<ThreadReference> allThreads()
      現在実行中のスレッドのリストを返します。 リストには、ターゲットVMの実行中のスレッドごとに、そのスレッドをミラー化するThreadReferenceが出力されます。 返されるリストには、java.lang.Threadで作成されたスレッド、JNIを介してターゲットVMに接続されたすべてのネイティブ・スレッド、およびターゲットVMにより作成されたシステム・スレッドが含まれます。 開始していないスレッド・オブジェクト(Thread.start()を参照)、および実行が完了したスレッド・オブジェクトは、返されるリスト内に含まれません。
      戻り値:
      ThreadReferenceオブジェクトのリスト。ミラー化されたVM内で実行されている各スレッドに1つ。
    • suspend

      void suspend()
      この仮想マシンで実行中のアプリケーションの実行を中断します。 現在実行中のすべてのスレッドが中断されます。

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

      例外:
      VMCannotBeModifiedException - VirtualMachineが読取り専用の場合(canBeModified()を参照)。
    • resume

      void resume()
      この仮想マシンで動作中のアプリケーションの実行を再開します。 すべてのスレッドは、ThreadReference.resume()に記述されている方法で再開されます。
      例外:
      VMCannotBeModifiedException - VirtualMachineが読取り専用の場合(canBeModified()を参照)。
      関連項目:
      suspend()
    • topLevelThreadGroups

      List<ThreadGroupReference> topLevelThreadGroups()
      親を持たない各スレッド・グループを返します。 返されるリストには、トップ・レベルのスレッド・グループごとにThreadGroupReferenceが出力されます。

      このコマンドは、既存のスレッド・グループの(1つまたは複数の)ツリーを構築する最初のステップとして使用できます。

      戻り値:
      ThreadGroupReferenceオブジェクトのリスト。トップ・レベルの各スレッド・グループに1つ。
    • eventQueue

      EventQueue eventQueue()
      この仮想マシンのイベント・キューを返します。 仮想マシンはEventQueueオブジェクトを1つだけ持ち、このメソッドは呼び出されるたびに同じインスタンスを返します。
      戻り値:
      この仮想マシンのEventQueue
      例外:
      VMCannotBeModifiedException - VirtualMachineが読取り専用の場合(canBeModified()を参照)。
    • eventRequestManager

      EventRequestManager eventRequestManager()
      この仮想マシンのイベント要求マネージャを返します。 EventRequestManagerは、ブレークポイントなどのユーザーが設定可能なイベントを制御します。 仮想マシンはEventRequestManagerオブジェクトを1つだけ持ち、このメソッドは呼び出されるたびに同じインスタンスを返します。
      戻り値:
      この仮想マシンのEventRequestManager
      例外:
      VMCannotBeModifiedException - VirtualMachineが読取り専用の場合(canBeModified()を参照)。
    • mirrorOf

      BooleanValue mirrorOf​(boolean value)
      指定された値に対応するBooleanValueを作成します。 この値を使用して、この仮想マシンの変数またはフィールドから取得した値の設定および比較を行うことができます。
      パラメータ:
      value - 値を作成するboolean値
      戻り値:
      指定された値に対応するBooleanValue
    • mirrorOf

      ByteValue mirrorOf​(byte value)
      指定された値に対応するByteValueを作成します。 この値を使用して、この仮想マシンの変数またはフィールドから取得した値の設定および比較を行うことができます。
      パラメータ:
      value - 値を作成するbyte値
      戻り値:
      指定された値に対応するByteValue
    • mirrorOf

      CharValue mirrorOf​(char value)
      指定された値に対応するCharValueを作成します。 この値を使用して、この仮想マシンの変数またはフィールドから取得した値の設定および比較を行うことができます。
      パラメータ:
      value - 値を作成するchar値
      戻り値:
      指定された値に対応するCharValue
    • mirrorOf

      ShortValue mirrorOf​(short value)
      指定された値に対応するShortValueを作成します。 この値を使用して、この仮想マシンの変数またはフィールドから取得した値の設定および比較を行うことができます。
      パラメータ:
      value - 値を作成するshort値
      戻り値:
      指定された値に対応するShortValue
    • mirrorOf

      IntegerValue mirrorOf​(int value)
      指定された値に対応するIntegerValueを作成します。 この値を使用して、この仮想マシンの変数またはフィールドから取得した値の設定および比較を行うことができます。
      パラメータ:
      value - 値を作成するint値
      戻り値:
      指定された値に対応するIntegerValue
    • mirrorOf

      LongValue mirrorOf​(long value)
      指定された値に対応するLongValueを作成します。 この値を使用して、この仮想マシンの変数またはフィールドから取得した値の設定および比較を行うことができます。
      パラメータ:
      value - 値を作成するlong値
      戻り値:
      指定された値に対応するLongValue
    • mirrorOf

      FloatValue mirrorOf​(float value)
      指定された値に対応するFloatValueを作成します。 この値を使用して、この仮想マシンの変数またはフィールドから取得した値の設定および比較を行うことができます。
      パラメータ:
      value - 値を作成するfloat値
      戻り値:
      指定された値に対応するFloatValue
    • mirrorOf

      DoubleValue mirrorOf​(double value)
      指定された値に対応するDoubleValueを作成します。 この値を使用して、この仮想マシンの変数またはフィールドから取得した値の設定および比較を行うことができます。
      パラメータ:
      value - 値を作成するdouble値
      戻り値:
      指定された値に対応するDoubleValue
    • mirrorOf

      StringReference mirrorOf​(String value)
      この仮想マシン内に文字列を作成します。 この文字列を使用して、この仮想マシンの変数またはフィールドから取得した文字列値の設定および比較を行うことができます。
      パラメータ:
      value - 作成する文字列
      戻り値:
      ターゲットVM内に新しく作成された文字列をミラー化するStringReference
      例外:
      VMCannotBeModifiedException - VirtualMachineが読取り専用の場合(canBeModified()を参照)。
    • mirrorOfVoid

      VoidValue mirrorOfVoid()
      VoidValueを作成します。 voidメソッドを終了するとき、この値をThreadReference.forceEarlyReturn(com.sun.jdi.Value)に渡すことができます。
      戻り値:
      VoidValue
    • process

      Process process()
      この仮想マシンがLaunchingConnectorで起動されている場合は、そのProcessオブジェクトを返します。
      戻り値:
      この仮想マシンのProcessオブジェクト。この仮想マシンがLaunchingConnectorで起動されていない場合はnull。
      例外:
      VMCannotBeModifiedException - VirtualMachineが読取り専用の場合(canBeModified()を参照)。
    • dispose

      void dispose()
      この仮想マシンのミラーを無効にします。 ターゲットVMへの通信チャネルが閉じられ、ターゲットVMは、このデバッガまたは別のデバッガからの次の接続を受け付ける準備をします。これには、次のような作業が含まれます。
      • すべてのイベント要求が取り消される。
      • suspend()またはThreadReference.suspend()で中断されたすべてのスレッドを、実行に必要な回数だけ再開します。
      • ガベージ・コレクションがObjectReference.disableCollection()によって無効になっている場合は、すべて有効にします。
      ターゲットVMで実行中のすべてのメソッド呼出しは、切断後も継続されます。 そのようなメソッド呼出しが完了すると、呼出し元のスレッドは、もともと停止した場所から実行を継続します。

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

    • exit

      void exit​(int exitCode)
      ミラー化されたVMが、特定のエラー・コードで終了します。 この仮想マシンに関連したすべてのリソースが解放されます。 ミラー化されたVMがリモートの場合は、通信チャネルが閉じます。 この仮想マシンを起源とするリソース(オブジェクト参照や参照型など)は、無効になります。

      ミラー化されたVM内で実行中のスレッドは、強制終了します。 スレッド終了例外はスローされないため、finallyブロックは実行されません。

      パラメータ:
      exitCode - ターゲットVMの終了コード。 プラットフォームによっては、終了コードが下位8ビットなどに切り詰められる場合がある。
      例外:
      VMCannotBeModifiedException - VirtualMachineが読取り専用の場合(canBeModified()を参照)。
    • canWatchFieldModification

      boolean canWatchFieldModification()
      ターゲットVMでフィールド変更のウォッチポイントがサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
    • canWatchFieldAccess

      boolean canWatchFieldAccess()
      ターゲットVMでフィールド・アクセスのウォッチポイントがサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
    • canGetBytecodes

      boolean canGetBytecodes()
      ターゲットVMでメソッドのバイト・コードの検索がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
    • canGetSyntheticAttribute

      boolean canGetSyntheticAttribute()
      ターゲットVMでメソッドまたはフィールドの合成属性の問い合わせがサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
    • canGetOwnedMonitorInfo

      boolean canGetOwnedMonitorInfo()
      ターゲットVMでスレッドが所有しているモニターの検索がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
    • canGetCurrentContendedMonitor

      boolean canGetCurrentContendedMonitor()
      ターゲットVMでスレッドが現在待機しているモニターの検索がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
    • canGetMonitorInfo

      boolean canGetMonitorInfo()
      ターゲットVMでオブジェクトのモニター情報の検索がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
    • canUseInstanceFilters

      boolean canUseInstanceFilters()
      ターゲットVMで特定のインスタンス・オブジェクトによるイベントのフィルタ処理がサポートされているかどうかを判定します。 例については、BreakpointRequest.addInstanceFilter(com.sun.jdi.ObjectReference)を参照してください。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
    • canRedefineClasses

      boolean canRedefineClasses()
      ターゲットVMで任意のレベルのクラス再定義がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.4
      関連項目:
      redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)
    • canAddMethod

      boolean canAddMethod()
      ターゲットVMでクラス再定義の実行時にメソッドを追加できるかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.4
      関連項目:
      redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)
    • canUnrestrictedlyRedefineClasses

      boolean canUnrestrictedlyRedefineClasses()
      ターゲットVMが、redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)によって制限されるクラスの再定義を実行するときに変更をサポートするかどうかを決定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.4
      関連項目:
      redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)
    • canPopFrames

      boolean canPopFrames()
      ターゲットVMでスレッド・スタックからのフレームのポップがサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.4
      関連項目:
      ThreadReference.popFrames(com.sun.jdi.StackFrame)
    • canGetSourceDebugExtension

      boolean canGetSourceDebugExtension()
      ターゲットVMでソース・デバッグ拡張機能の取得がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.4
      関連項目:
      ReferenceType.sourceDebugExtension()
    • canRequestVMDeathEvent

      boolean canRequestVMDeathEvent()
      ターゲットVMで、VMDeathRequestの作成がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.4
      関連項目:
      EventRequestManager.createVMDeathRequest()
    • canGetMethodReturnValues

      boolean canGetMethodReturnValues()
      ターゲットVMで、MethodExitEventに戻り値を含める機能がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.6
      関連項目:
      EventRequestManager.createMethodExitRequest()
    • canGetInstanceInfo

      boolean canGetInstanceInfo()
      ターゲットVMで、クラス・インスタンス、インスタンス数、および参照オブジェクトのアクセスがサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.6
      関連項目:
      instanceCounts(java.util.List<? extends com.sun.jdi.ReferenceType>), ReferenceType.instances(long), ObjectReference.referringObjects(long)
    • canUseSourceNameFilters

      boolean canUseSourceNameFilters()
      ターゲットVMで、ソース名によるクラス準備イベントのフィルタがサポートされているかどうかを判定します。ClassPrepareRequest.addSourceNameFilter(java.lang.String)を参照してください。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.6
    • canForceEarlyReturn

      boolean canForceEarlyReturn()
      ターゲットVMでメソッドの強制的な早期復帰がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.6
      関連項目:
      ThreadReference.forceEarlyReturn(Value)
    • canBeModified

      boolean canBeModified()
      ターゲットVMが読取り専用VMであるかどうかを判定します。 VMの状態を変更するメソッドが読取り専用VMで呼び出されると、VMCannotBeModifiedExceptionがスローされます。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.5
    • canRequestMonitorEvents

      boolean canRequestMonitorEvents()
      ターゲットVMで、MonitorContendedEnterRequestの作成がサポートされているかどうかを判定します。 MonitorContendedEnteredRequests. MonitorWaitRequests. MonitorWaitedRequests.
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.6
      関連項目:
      EventRequestManager.createMonitorContendedEnterRequest(), EventRequestManager.createMonitorContendedEnteredRequest(), EventRequestManager.createMonitorWaitRequest(), EventRequestManager.createMonitorWaitedRequest()
    • canGetMonitorFrameInfo

      boolean canGetMonitorFrameInfo()
      ターゲットVMで、モニター獲得フレームの情報の取得がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.6
      関連項目:
      ThreadReference.ownedMonitorsAndFrames()
    • canGetClassFileVersion

      boolean canGetClassFileVersion()
      ターゲットVMで、クラス・ファイルのメジャー・バージョン番号とマイナー・バージョン番号の読取りがサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.6
      関連項目:
      ReferenceType.majorVersion(), ReferenceType.minorVersion()
    • canGetConstantPool

      boolean canGetConstantPool()
      ターゲットVMで、クラスの定数プール情報の取得がサポートされているかどうかを判定します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.6
      関連項目:
      ReferenceType.constantPoolCount(), ReferenceType.constantPool()
    • canGetModuleInfo

      default boolean canGetModuleInfo()
      ターゲットVMがモジュールに関する情報を取得できるかどうかを判定します。
      実装要件:
      デフォルトの実装ではfalseを返します。
      戻り値:
      指定した機能がサポートされる場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      9
      関連項目:
      allModules(), ReferenceType.module(), ModuleReference
    • setDefaultStratum

      void setDefaultStratum​(String stratum)
      このVMのデフォルト層を設定します(層についてはLocationを参照)。 この設定は、クラス・ファイルで設定されたクラスごとのデフォルトよりも優先されます。

      このメソッドは、Location.sourceName()などの位置問い合わせと、ステップ実行時に使用する行の境界線に影響を与えます。

      パラメータ:
      stratum - VMのデフォルトとして設定する層。クラスごとのデフォルトを使用する場合はnull。
      例外:
      UnsupportedOperationException - ターゲット仮想マシンがこの操作をサポートしていない場合。
      導入されたバージョン:
      1.4
    • getDefaultStratum

      String getDefaultStratum()
      VMのデフォルト層を返します。
      戻り値:
      setDefaultStratum(String)によってデフォルト層が設定されていない場合はnull。この場合、クラスごとのデフォルト(ReferenceType.defaultStratum())が使用される。
      導入されたバージョン:
      1.4
      関連項目:
      setDefaultStratum(String), ReferenceType.defaultStratum()
    • instanceCounts

      long[] instanceCounts​(List<? extends ReferenceType> refTypes)
      refTypesリスト内の各ReferenceTypeのインスタンス数を返します。 ガベージ・コレクト目的で到達可能なインスタンスだけがカウントされます。

      この操作は、ターゲット仮想マシンでサポートされていないことがあります。 この操作がサポートされているかどうかを確認するには、canGetInstanceInfo()を使用します。

      パラメータ:
      refTypes - カウントを取得するReferenceTypeオブジェクトのリスト。
      戻り値:
      refTypesリスト内の各要素につき要素を1つずつ含むlongの配列。 配列要素iには、refTypesリスト内の位置iにあるReferenceTypeのターゲットVM内のインスタンス数が含まれます。 refTypesリストが空リストの場合、長さゼロの配列が返されます。 refTypesリスト内のReferenceTypeがガベージ・コレクトされている場合、インスタンス数としてゼロが返されます。
      例外:
      UnsupportedOperationException - ターゲット仮想マシンがこの操作をサポートしていない場合(次を参照)。canGetInstanceInfo()
      NullPointerException - refTypesリストがnullである場合。
      導入されたバージョン:
      1.6
      関連項目:
      ReferenceType.instances(long), ObjectReference.referringObjects(long)
    • description

      String description()
      ターゲットVM、およびターゲットVMをミラー化するデバッガのサポートについてのテキスト情報を返します。 この情報に特定の形式は保証されていません。 通常は、ターゲットVMとデバッガ・インタフェースのバージョン情報が含まれます。 VMおよびJDIの正確なバージョン情報は、version()VirtualMachineManager.majorInterfaceVersion()、およびVirtualMachineManager.minorInterfaceVersion()を使って取得できます。
      戻り値:
      説明。
    • version

      String version()
      ターゲットVM内のJava Runtime Environmentのバージョンを、java.versionプロパティに指定されている方法で返します。 JDIインタフェースのバージョンを取得するには、VirtualMachineManager.majorInterfaceVersion()およびVirtualMachineManager.minorInterfaceVersion()を使用します。
      戻り値:
      ターゲットVMのバージョン。
    • name

      String name()
      ターゲットVMの名前をプロパティjava.vm.nameに指定されている方法で返します。
      戻り値:
      ターゲットVM名。
    • setDebugTraceMode

      void setDebugTraceMode​(int traceFlags)
      com.sun.jdi実装によって実行される動作をトレースします。 すべてのトレース情報は、System.errに出力されます。 トレース・フラグは、出力する情報を制限するときに使用します。 指定したフラグは、このメソッドが次に呼び出されるまで有効で、対応するトレースが継続して行われます。

      出力は実装によって異なります。トレース・モードが無視される場合もあります。

      パラメータ:
      traceFlags - 有効にするトレースの種類を特定する。