|
Java Debug Interface | ||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
ターゲット VM のスレッドオブジェクトです。ThreadReference は、ターゲット VM のスレッド固有の情報に追加アクセスできる ObjectReference です。
| フィールドの概要 | |
static int |
THREAD_STATUS_MONITOR
スレッドは Java モニターを待機中です。 |
static int |
THREAD_STATUS_NOT_STARTED
スレッドは開始されていません。 |
static int |
THREAD_STATUS_RUNNING
スレッドは実行可能です。 |
static int |
THREAD_STATUS_SLEEPING
スレッドはスリープ中です。 |
static int |
THREAD_STATUS_UNKNOWN
スレッドの状態が不明です。 |
static int |
THREAD_STATUS_WAIT
スレッドは待機中です。 |
static int |
THREAD_STATUS_ZOMBIE
スレッドは実行を完了しました。 |
| インタフェース com.sun.jdi.ObjectReference から継承したフィールド |
INVOKE_NONVIRTUAL, INVOKE_SINGLE_THREADED |
| メソッドの概要 | |
ObjectReference |
currentContendedMonitor()
このスレッドが現在モニターを待機している場合は、そのモニターへの ObjectReference を返します。 |
StackFrame |
frame(int index)
スレッドの現在の呼び出しスタック内の指定されたインデックスで StackFrame を返します。 |
int |
frameCount()
スレッドの現在の呼び出しスタック内のスタックフレーム数を返します。 |
java.util.List |
frames()
スレッドの現在の呼び出しスタック内にあるすべての StackFrame の List を返します。 |
java.util.List |
frames(int start,
int length)
スレッドの現在の呼び出しスタックにある StackFrame ミラーの範囲の List を返します。 |
void |
interrupt()
このスレッドに割り込みます。 |
boolean |
isAtBreakpoint()
スレッドがブレークポイントで中断しているかどうかを判定します。 |
boolean |
isSuspended()
デバッガによってスレッドが中断されているかどうかを判定します。 |
java.lang.String |
name()
このスレッドの名前を返します。 |
java.util.List |
ownedMonitors()
スレッドが所有する各モニターへの ObjectReference の List を返します。 |
void |
resume()
このスレッドを再開します。 |
int |
status()
スレッドの状態を返します。 |
void |
stop(ObjectReference throwable)
非同期の例外を使用してこのスレッドを停止します。 |
void |
suspend()
このスレッドを中断します。 |
int |
suspendCount()
このスレッドの保留状態の中断回数を返します。 |
ThreadGroupReference |
threadGroup()
このスレッドのスレッドグループを返します。 |
| インタフェース com.sun.jdi.ObjectReference から継承したメソッド |
disableCollection, enableCollection, entryCount, equals, getValue, getValues, hashCode, invokeMethod, isCollected, owningThread, referenceType, setValue, uniqueID, waitingThreads |
| インタフェース com.sun.jdi.Value から継承したメソッド |
type |
| インタフェース com.sun.jdi.Mirror から継承したメソッド |
toString, virtualMachine |
| フィールドの詳細 |
public static final int THREAD_STATUS_UNKNOWN
public static final int THREAD_STATUS_ZOMBIE
public static final int THREAD_STATUS_RUNNING
public static final int THREAD_STATUS_SLEEPING
public static final int THREAD_STATUS_MONITOR
public static final int THREAD_STATUS_WAIT
public static final int THREAD_STATUS_NOT_STARTED
| メソッドの詳細 |
public java.lang.String name()
ObjectCollectedException - このオブジェクトがガベージコレクトされている場合public void suspend()
resume() を使用して再開するか、VirtualMachine.resume() を使用してほかのスレッドから再開できます。
java.lang.Thread#suspend と異なり、Virtual Machine の中断と各スレッドの中断はどちらもカウントされます。スレッドは、再実行される前に、resume() または resume() を使用して、中断された回数と同じ回数だけ再開する必要があります。
このメソッドを使用して単一のスレッドを中断する場合、java.lang.Thread.suspend() を使用する場合と同様の注意が必要です。中断されたスレッドが保持しているモニターが、別の実行中のスレッドから要求された場合、ターゲット VM 内で (少なくとも中断されたスレッドが再開されるまでの間) デッドロックが発生する可能性があります。
中断されたスレッドは、上記の JDI 再開メソッドのいずれかを使用して再開するまで、中断状態が保証されます。ターゲット VM 内のアプリケーションから java.lang.Thread#resume を使用して、中断されたスレッドを再開することはできません。
ObjectCollectedException - このオブジェクトがガベージコレクトされている場合public void resume()
suspend() または VirtualMachine.suspend() によって中断されていない場合は、このメソッドを呼び出しても再開できません。これらのいずれかによって中断されたスレッドの場合は、このスレッドの保留状態の中断カウントが減ります。カウントが 0 になると、スレッドの実行が継続されます。ObjectCollectedException - このオブジェクトがガベージコレクトされている場合public int suspendCount()
suspend() を参照してください。ObjectCollectedException - このオブジェクトがガベージコレクトされている場合
public void stop(ObjectReference throwable)
throws InvalidTypeException
Throwable オブジェクトを使用してこのスレッドを停止します。throwable - スローする非同期の例外InvalidTypeException - throwable がターゲット VM 内の java.lang.Throwable のインスタンスでない場合ObjectCollectedException - このオブジェクトまたは非同期の例外がガベージコレクトされている場合java.lang.Thread#stop(Throwable)public void interrupt()
ObjectCollectedException - このオブジェクトがガベージコレクトされている場合java.lang.Thread#interrupt()public int status()
THREAD_STATUS_UNKNOWN を返します。スレッドが中断しているかどうかを判定するには、isSuspended() を使用します。THREAD_STATUS_UNKNOWN、
THREAD_STATUS_ZOMBIE、
THREAD_STATUS_RUNNING、
THREAD_STATUS_SLEEPING、
THREAD_STATUS_MONITOR、
THREAD_STATUS_WAIT、または
THREAD_STATUS_NOT_STARTED のいずれかObjectCollectedException - このオブジェクトがガベージコレクトされている場合public boolean isSuspended()
true、それ以外の場合は falseObjectCollectedException - このオブジェクトがガベージコレクトされている場合public boolean isAtBreakpoint()
true、それ以外の場合は falseObjectCollectedException - このオブジェクトがガベージコレクトされている場合public ThreadGroupReference threadGroup()
ThreadGroupReferenceObjectCollectedException - このオブジェクトがガベージコレクトされている場合
public int frameCount()
throws IncompatibleThreadStateException
IncompatibleThreadStateException - ターゲット VM 内でスレッドが中断していない場合ObjectCollectedException - このオブジェクトがガベージコレクトされている場合
public java.util.List frames()
throws IncompatibleThreadStateException
StackFrame の List を返します。この情報を取得するには、スレッドを中断する必要があります (通常は VM への割り込みによって)。この情報は、スレッドが再開されると無効になります。StackFrame の ListIncompatibleThreadStateException - ターゲット VM 内でスレッドが中断されていない場合ObjectCollectedException - このオブジェクトがガベージコレクトされている場合
public StackFrame frame(int index)
throws IncompatibleThreadStateException
StackFrame を返します。インデックス 0 は、現在のフレームです。0 より大きいインデックスの場合は、呼び出し側のフレームを示します。この情報を取得するには、スレッドを中断する必要があります (通常は VM への割り込みによって)。この情報は、スレッドが再開されると無効になります。index - 目的のフレームStackFrameIncompatibleThreadStateException - ターゲット VM 内でスレッドが中断していない場合java.lang.IndexOutOfBoundsException - インデックスが frameCount() 以上の場合、または負の場合ObjectCollectedException - このオブジェクトがガベージコレクトされている場合
public java.util.List frames(int start,
int length)
throws IncompatibleThreadStateException
StackFrame ミラーの範囲の List を返します。この情報を取得するには、スレッドを中断する必要があります (通常は VM への割り込みによって)。この情報は、スレッドが再開されると無効になります。start - 最初のフレームのインデックスlength - 取得するフレーム数StackFrame の ListIncompatibleThreadStateException - ターゲット VM 内でスレッドが中断していない場合IndexOutOfBoundsException - 指定された範囲が 0 〜 frameCount() - 1 にない場合ObjectCollectedException - このオブジェクトがガベージコレクトされている場合
public java.util.List ownedMonitors()
throws IncompatibleThreadStateException
ObjectReference の List を返します。synchronized 文または synchronized メソッドのエントリを使用してスレッドがモニターに入ってから、モニターが Object.wait(long) によって破棄されていない場合は、そのモニターはスレッドによって所有されています。
この操作は、ターゲット VM でサポートされていないことがあります。この操作がサポートされているかどうかを確認する方法については、VirtualMachine#canGetOwnedMonitorInfo を参照してください。
ObjectReference オブジェクトの List。このスレッドによってモニターが所有されていない場合は、このリストの長さはゼロになるjava.lang.UnsupportedOperationException - ターゲット VM がこの操作をサポートしていない場合IncompatibleThreadStateException - ターゲット VM 内でスレッドが中断していない場合ObjectCollectedException - このオブジェクトがガベージコレクトされている場合
public ObjectReference currentContendedMonitor()
throws IncompatibleThreadStateException
ObjectReference を返します。スレッドは、synchronized メソッドのエントリ、synchronized 文、または Object.wait(long) を使用して、モニターを待機している可能性があります。最初の 2 つの場合と Object.wait(long) による場合を識別するには、status() メソッドを使用します。
この操作は、ターゲット VM でサポートされていないことがあります。この操作がサポートされているかどうかを確認する方法については、VirtualMachine#canGetCurrentContendedMonitor を参照してください。
ObjectReference。スレッドがモニターを待機していない場合は nulljava.lang.UnsupportedOperationException - ターゲット VM でこの操作がサポートされていない場合IncompatibleThreadStateException - ターゲット VM 内でスレッドが中断していない場合ObjectCollectedException - このオブジェクトがガベージコレクトされている場合
|
Java Debug Interface | ||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||