Java Debug Interface

com.sun.jdi
インタフェース VirtualMachine

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

public interface VirtualMachine
extends Mirror

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

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

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

ターゲット VM が切断された場合、VirtualMachine を引数に取る VirtualMachine 上の任意のメソッドは、VMDisconnectedException をスローし、VMDisconnectEventEventQueue から読み出せるようになります。

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()
          ロード済みのすべての型を返します。
 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 に戻り値を含める機能がサポートされているかどうかを判定します。
 boolean canGetMonitorFrameInfo()
          ターゲット VM で、モニター獲得フレームの情報の取得がサポートされているかどうかを判定します。
 boolean canGetMonitorInfo()
          ターゲット VM でオブジェクトのモニター情報の検索がサポートされているかどうかを判定します。
 boolean canGetOwnedMonitorInfo()
          ターゲット VM でスレッドが所有しているモニターの検索がサポートされているかどうかを判定します。
 boolean canGetSourceDebugExtension()
          ターゲット VM でソースデバッグ拡張機能の取得がサポートされているかどうかを判定します。
 boolean canGetSyntheticAttribute()
          ターゲット VM でメソッドまたはフィールドの合成属性の問い合わせがサポートされているかどうかを判定します。
 boolean canPopFrames()
          ターゲット VM でスレッドスタックからのフレームのポップがサポートされているかどうかを判定します。
 boolean canRedefineClasses()
          ターゲット VM で任意のレベルのクラス再定義がサポートされているかどうかを判定します。
 boolean canRequestMonitorEvents()
          ターゲット VM で、MonitorContendedEnterRequestMonitorContendedEnteredRequestMonitorWaitRequestMonitorWaitedRequest の生成がサポートされているかどうかを判定します。
 boolean canRequestVMDeathEvent()
          ターゲット VM で VMDeathRequest の作成がサポートされているかどうかを判定します。
 boolean canUnrestrictedlyRedefineClasses()
          ターゲット VM でクラス再定義の実行時に無制限に変更を加えることができるかどうかを判定します。
 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
 

フィールドの詳細

TRACE_NONE

static final int TRACE_NONE
すべてのトレースが無効になります。

関連項目:
定数フィールド値

TRACE_SENDS

static final int TRACE_SENDS
ターゲット VM に送信される JDWP パケットのトレースが有効になります。

関連項目:
定数フィールド値

TRACE_RECEIVES

static final int TRACE_RECEIVES
ターゲット VM から受信される JDWP パケットのトレースが有効になります。

関連項目:
定数フィールド値

TRACE_EVENTS

static final int TRACE_EVENTS
内部イベント処理のトレースが有効になります。

関連項目:
定数フィールド値

TRACE_REFTYPES

static final int TRACE_REFTYPES
参照型の内部管理のトレースが有効になります。

関連項目:
定数フィールド値

TRACE_OBJREFS

static final int TRACE_OBJREFS
オブジェクト参照の内部管理のトレースが有効になります。

関連項目:
定数フィールド値

TRACE_ALL

static final int TRACE_ALL
すべてのトレースが有効になります。

関連項目:
定数フィールド値
メソッドの詳細

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 - ターゲット Virtual Machine がこの操作をサポートしていない場合。
  • canRedefineClasses() が false の場合にこのメソッドを呼び出すと、この例外がスローされる。
  • canAddMethod() が false の場合にメソッドを追加しようとすると、この例外がスローされる。
  • canUnrestrictedlyRedefineClasses() が false の場合に次のいずれかの操作を試行すると、この例外がスローされる。
    • スキーマ (フィールド) の変更
    • クラス階層 (サブクラス、インタフェース) の変更
    • メソッドの削除
    • クラス修飾子の変更
    • メソッド修飾子の変更
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 内で実行されているスレッドが対応する。

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 オブジェクトのリスト。各オブジェクトに、トップレベルの各スレッドグループが対応する。

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 値
戻り値:
指定された int 値に対応する IntegerValue

mirrorOf

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

パラメータ:
value - 値を作成する long 値
戻り値:
指定された long 値に対応する LongValue

mirrorOf

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

パラメータ:
value - 値を作成する float 値
戻り値:
指定された float 値に対応する FloatValue

mirrorOf

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

パラメータ:
value - 値を作成する double 値
戻り値:
指定された 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 は、このデバッガまたは別のデバッガからの次の接続を受け付ける準備をします。それには、次のような作業が含まれます。 ターゲット 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)

canAddMethod

boolean canAddMethod()
ターゲット VM でクラス再定義の実行時にメソッドを追加できるかどうかを判定します。

戻り値:
機能がサポートされている場合は true、それ以外の場合は false
導入されたバージョン:
1.4
関連項目:
redefineClasses(java.util.Map)

canUnrestrictedlyRedefineClasses

boolean canUnrestrictedlyRedefineClasses()
ターゲット VM でクラス再定義の実行時に無制限に変更を加えることができるかどうかを判定します。

戻り値:
機能がサポートされている場合は true、それ以外の場合は false
導入されたバージョン:
1.4
関連項目:
redefineClasses(java.util.Map)

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), 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 で、MonitorContendedEnterRequestMonitorContendedEnteredRequestMonitorWaitRequestMonitorWaitedRequest の生成がサポートされているかどうかを判定します。

戻り値:
機能がサポートされている場合は 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()

setDefaultStratum

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

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

パラメータ:
stratum - VM のデフォルトとして設定する層。クラスごとのデフォルトを使用する場合は null。
例外:
UnsupportedOperationException - ターゲット Virtual Machine がこの操作をサポートしていない場合。
導入されたバージョン:
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 - 有効にするトレースの種類を特定する

Java Debug Interface