トランスポートは、一連の関数としてダイナミック・ライブラリ(DLLまたは共用ライブラリと呼ばれることもある)に実装されます。 ライブラリは、起動時にJDWPエージェント(またはほかのエージェント)によって呼び出されるonload関数をエクスポートします。
JVMTIと同様に、jdwpTransport関数には、環境ポインタと呼ばれるインタフェース・ポインタを介してアクセスします。 環境ポインタは環境へのポインタであり、型はjdwpTransportEnv*
です。 環境ポインタは、onload関数からJDWPエージェント(またはほかのエージェント)に返されます。
トランスポートは、1つの環境または複数の環境をサポートする場合があります。 つまり、トランスポートは同時に1つのエージェントだけで使用されることも、複数のエージェントで使用されることもあります。 トランスポートが複数の環境をサポートする場合は、onload関数を呼び出すたびに新しい環境ポインタが返されます。 トランスポートが1つの環境のみをサポートする場合、onload関数の2回目以降の呼出しはエラーを返します。
トランスポートはスレッドセーフです。また、jdwpTransport関数は複数の並列スレッドで使用できます。 たとえば、あるスレッドがパケットを待機するjdwpTransport ReadPacket
関数でブロックされ、別のスレッドがWritePacket
関数を呼び出してパケットを書き込むことができます。
ほとんどの場合、jdwpTransport関数は戻りステータスを示すjdwpTransportError
値を返します。 関数によっては、呼出し側の関数で指定されたポインタにより、これ以外の値を返します。 戻り値の値がjdwpTransport関数によって割り当てられる場合、この関数は、エージェントが指定するメモリー割当てルーチンを使用します。 メモリー割当てルーチンは、onload関数を介して、起動時にトランスポートに対して指定されます。
エラー(つまり、jdwpTransport関数の1つがJDWPTRANSPORT_ERROR_NONE
以外の値を返します)の場合、その後、エラーを表す文字列は、jdwpTransport関数GetLastError
へのコールによって取得できます。 エラーは、スレッドごとに記録されます。 GetLastError
関数は、現在のスレッドで発生した最後のエラーのみを表す文字列を返します。
トランスポートの実装の開発
トランスポート・ライブラリの開発には、各種規則とC/C++の定義を呼び出すC言語をサポートする任意のネイティブ言語を使用できます。
jdwpTransportインタフェースの使用に必要な関数、データ・タイプ、および定数定義は、インクルード・ファイルjdwpTransport.hで定義されています。これらの定義を使用するには、インクルード・パスにJava SEインクルード・ディレクトリを追加します:
#include "jdwpTransport.h"
トランスポートの起動
トランスポート・ライブラリは、次のプロトタイプを使用してonload関数をエクスポートする必要があります:
JNIEXPORT jint JNICALL
jdwpTransport_OnLoad(JavaVM *jvm,
jdwpTransportCallback *callback,
jint version,
jdwpTransportEnv** env);
この関数は、ライブラリのロード時にJDWPなどのエージェントによって呼び出されます。
jvm
引数は、JNIのGetJavaVM
関数を呼び出すことでエージェントによって取得される「JNI起動インタフェース」です。
callback
引数は、トランスポート実装によって割り当てられた戻り値にメモリーを割り当てるためにトランスポートが使用する必要があるメモリー管理ルーチンの関数表へのポインタです:
typedef struct jdwpTransportCallback {
void* (*alloc)(jint numBytes);
void (*free)(void *buffer);
} jdwpTransportCallback;
callback
引数の存続期間はonload関数であるため、トランスポートはjdwpTransport_OnLoad
関数のファンクション表のコピーを取得する必要があります。
関数表には2つのエントリがあります。 alloc
関数は、メモリー領域を割り当てます。 この関数には、割り当てるバイト数を指定するための1つの引数があります。 割り当てられたメモリーの先頭へのポインタを返します。メモリー・リクエストを受け付けられない場合はNULLを返します。 要求されたバイト数が0の場合は、NULLが返されます。 free
関数は、alloc
関数を使用して以前に割り当てられたメモリー領域の割当てを解除します。
エージェントが提供するメモリー管理関数はスレッド・セーフであり、これらの関数への呼出しを同期するのにトランスポートの実装は必要ありません。 メモリー管理関数の実装では、jdwpTransport関数を呼び出さないことが保証されています。
version
は、エージェントが予期するトランスポート・インタフェースのバージョンです。 これは、JDWPTRANSPORT_VERSION_1_0
として指定する必要があります。
env
は、関数によって返される環境ポインタへのポインタです。
トランスポートが正常に初期化されると、jdwpTransport_OnLoad
関数はJNI_OK
を返します。 初期化に失敗すると、次のエラーのいずれかが返されます:
JNI_ENOMEM
JNI_EVERSION
JNI_EEXIST
初期化を完了するための十分なメモリーがない場合、JNI_ENOMEM
が返されます。
version
引数のバージョンがJDWPTRANSPORT_VERSION_1_0
でない場合は、JNI_EVERSION
が返されます。
JNI_EEXIST
は、トランスポートが単一の環境のみをサポートし、onload関数への最初のコールによって環境ポインタが以前に返された場合に返されます。
関数
jdwpTransport関数は、次のようなカテゴリに分類されます。
接続管理
接続管理関数は、デバッガとの接続を確立および切断するときに使用されます。 接続は、デバッガへのおよびデバッガからのJDWPパケットの確実な流れを提供します。 接続に書き込まれるパケットは、書き込まれたとおりの順序でデバッガによって読み取られます。 同様に、デバッガから接続に書き込まれたパケットは、書き込まれたとおりの順序で読み取られます。
接続は、能動的に、または受動的に確立されます。 「アクティブに」接続を確立すると、jdwpTransportのAttach
関数がコールされ、デバッガに接続が開始されます。 「パッシブに」接続を確立すると、jdwpTransportのStartListening
関数を使用してトランスポートを「リスニング・モード」に配置し、デバッガからの接続をリスニングします。 リスニング・モードになると、Accept
関数を使用して接続を受け入れます。 接続の確立方法に関係なく、Close
関数を使用して接続をクローズし、IsOpen
を使用してデバッガに接続がオープンしているかどうかをテストします。
Attach
jdwpTransportError
Attach(jdwpTransportEnv* env, const char* address,
jlong attachTimeout, jlong handshakeTimeout)
デバッガに接続します。 デバッガへの接続は、2つのステップで行われます。 最初に、指定されたaddress
への接続が確立されます。 接続が確立されると、デバッガへの接続が実際に確立されたことを確認するためにハンドシェークが実行されます。 ハンドシェークでは、Java Debug Wire Protocol仕様で指定されているASCII文字列JDWP-Handshakeの交換が行われます。
address
引数は、デバッガのアドレスを表す文字列へのポインタです。 正確な形式は、トランスポートに固有です(TCP/IPベースのトランスポートの場合は、アドレスにデバッガのホスト名とポート番号が含まれることがある。 シリアル・ポートを介した接続をサポートするトランスポートの場合は、シリアル・ポートのデバイス名になることがある)。
attachTimeout
引数は、アタッチ時に使用するタイムアウトを指定します。 トランスポートが接続タイムアウト (GetCapabilitiesを参照してください)をサポートし、attachTimeout
が正の場合は、デバッガに接続するときに使用するタイムアウトをミリ秒 (多少)で指定します。 トランスポートが接続タイムアウトをサポートしていない場合、またはattachTimeout
が0として指定されている場合は、接続時にタイムアウトは使用されません。
handshakeTimeout
引数は、デバッガとのハンドシェイク時に使用するタイムアウトを指定します。 トランスポートがハンドシェイク・タイムアウト (GetCapabilitiesを参照してください)をサポートし、handshakeTimeout
が正の場合は、デバッガとのハンドシェイク時に使用するタイムアウトをミリ秒 (多少)で指定します。 ハンドシェーク・タイムアウトの正確な使用法は、トランスポートに固有です。たとえば、ある実装では、デバッガからのJDWP-Handshakeメッセージを待機する間の文字間タイムアウトとしてタイムアウトが使用される場合があります。 別の実装では、タイムアウトを使用してハンドシェークの交換のために許可される合計時間を示します。 一般に、ハンドシェーク・タイムアウトの目的は、トランスポートが有効なデバッガ以外に接続する場合のエラー処理を可能にすることです。 トランスポートがハンドシェイク・タイムアウトをサポートしていない場合、またはhandshakeTimeout
がゼロとして指定されている場合は、ハンドシェイク時にタイムアウトは使用されません。
この関数は、汎用エラー、または次のエラーのいずれかを返します。
JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT
JDWPTRANSPORT_ERROR_ILLEGAL_STATE
JDWPTRANSPORT_ERROR_IO_ERROR
JDWPTRANSPORT_ERROR_TIMEOUT
address
が無効であるか、timeout
が負の場合、JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT
が返されます。
JDWPTRANSPORT_ERROR_ILLEGAL_STATE
は、トランスポートが現在「リスニング・モード」 (StartListeningを参照してください)にある場合、またはデバッガ(IsOpenを参照してください)へのオープン接続がすでにある場合に返されます。
JDWPTRANSPORT_ERROR_IO_ERROR
は、デバッガに接続している(アタッチ・タイムアウト以外)エラーが発生した場合に返されます。 初期ハンドシェーク中のエラー(ハンドシェーク・タイムアウトを含む)は、I/Oエラーとみなされます。 I/Oエラーは、トランスポートに固有です。 GetLastErrorを使用すると、エラーの文字列表現を取得できます。
JDWPTRANSPORT_ERROR_TIMEOUT
は、トランスポートがアタッチ・タイムアウトをサポートする場合、およびattachTimeout
値が正の場合、およびデバッガへの接続をそのattachTimeout期間内に確立できない場合、返されます。
StartListening
jdwpTransportError
StartListening(jdwpTransportEnv* env, const char* address, char** actualAddress);
トランスポートを待機モードにして、デバッガからの接続を待機します。
address
引数は、トランスポートがリスニングするローカル・アドレスを表す文字列へのポインタです。 正確な形式は、トランスポートに固有です(TCP/IPベースのトランスポートの場合は、アドレスにローカルTCPポート番号が含まれることがある。 シリアル・ポートを介した接続をサポートするトランスポートの場合は、シリアル・ポートのデバイス名になることがある)。 address
引数は、NULL
または空の文字列(最初の文字は\0
です)として指定できます。 その場合、トランスポートは、トランスポートに固有のデフォルトのアドレスで待機します。
actualAddress
がNULL
でない場合、StartListening
関数によって返される文字列のアドレスに設定されます。 返される文字列には、トランスポートが待機するアドレスの文字列表現が含まれます。 これは、address
引数で指定されたアドレスと異なる場合と異なる場合があります。 この文字列は、jdwpTransport_OnLoad
関数がコールされたときにトランスポートに提供された割当てコールバックを使用して割り当てられます。 呼出し側は、返された文字列を解放します。
この関数は、汎用エラー、または次のエラーのいずれかを返します。
JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT
JDWPTRANSPORT_ERROR_ILLEGAL_STATE
JDWPTRANSPORT_ERROR_IO_ERROR
address
が無効な場合、JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT
が返されます。
JDWPTRANSPORT_ERROR_ILLEGAL_STATE
は、デバッガ(IsOpenを参照してください)へのオープン接続がすでに存在する場合、またはトランスポートがすでにリスニング・モードの場合に返されます。
トランスポートをリスニング・モードにする際にエラーが発生すると、JDWPTRANSPORT_ERROR_IO_ERROR
が返されます。 エラーの性質はトランスポートに固有です。 GetLastErrorを使って、エラーの文字列表現を取得できます。
StopListening
jdwpTransportError
StopListening(jdwpTransportEnv* env)
トランスポートを待機モードから解放して、デバッガからの接続を待機しないようにします。
トランスポートが待機モードにある場合は、このモードから解放されます。 デバッガへの開いている接続が存在する場合(IsOpenを参照)、その接続はこの関数によって影響を受けません。 つまり、StopListening
はデバッガへの接続を閉じません。 トランスポートが待機モードに入っていない場合、この関数は何も実行せず、エラーは返されません。
この関数は、汎用エラー、または次のエラーのいずれかを返します。
JDWPTRANSPORT_ERROR_IO_ERROR
トランスポートのリスニング・モード解除でエラーが発生した場合、JDWPTRANSPORT_ERROR_IO_ERROR
が返されます。 エラーの性質はトランスポートに固有です。 GetLastErrorを使って、エラーの文字列表現を取得できます。
Accept
jdwpTransportError
Accept(jdwpTransportEnv* env, jlong acceptTimeout, jlong handshakeTimeout)
デバッガからの接続を受け入れます。 デバッガからの接続の受け入れは、2つのステップで行われます。 最初に、デバッガによって接続が確立されます。 接続が確立されると、デバッガによって接続が実際に確立されたことを確認するためにハンドシェークが実行されます。 ハンドシェークでは、Java Debug Wire Protocol仕様で指定されているASCII文字列JDWP-Handshakeの交換が行われます。
acceptTimeout
引数は、デバッガの接続を待機している間に使用するタイムアウトを指定します。 トランスポートが受け入れタイムアウト (GetCapabilitiesを参照してください)をサポートし、acceptTimeout
が正の場合は、デバッガからの接続の待機時に使用するタイムアウトをミリ秒 (多少)で指定します。 トランスポートが受け入れタイムアウトをサポートしない場合、またはtimeout
が0として指定されている場合は、接続を待機して無期限にブロックします。
handshakeTimeout
引数は、デバッガとのハンドシェイク時に使用するタイムアウトを指定します。 トランスポートがハンドシェイク・タイムアウト (GetCapabilitiesを参照してください)をサポートし、handshakeTimeout
が正の場合は、デバッガとのハンドシェイク時に使用するタイムアウトをミリ秒 (多少)で指定します。 ハンドシェーク・タイムアウトの正確な使用法は、トランスポートに固有です。たとえば、ある実装では、デバッガからのJDWP-Handshakeメッセージを待機する間の文字間タイムアウトとしてタイムアウトが使用される場合があります。 別の実装では、タイムアウトを使用してハンドシェークの交換のために許可される合計時間を示します。 一般に、ハンドシェーク・タイムアウトの目的は、デバッガ以外がデバッグ対象への接続を確立する場合のエラー処理を可能にすることです。 トランスポートがハンドシェイク・タイムアウトをサポートしていない場合、またはhandshakeTimeout
がゼロとして指定されている場合は、ハンドシェイク時にタイムアウトは使用されません。
この関数は、汎用エラー、または次のエラーのいずれかを返します。
JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT
JDWPTRANSPORT_ERROR_ILLEGAL_STATE
JDWPTRANSPORT_ERROR_IO_ERROR
JDWPTRANSPORT_ERROR_TIMEOUT
attachTimeout
またはhandshakeTimeout
が負の場合、JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT
が返されます。
JDWPTRANSPORT_ERROR_ILLEGAL_STATE
は、デバッガ(IsOpenを参照してください)へのオープン接続がすでに存在する場合、またはトランスポートがリスニング・モード(StartListeningを参照してください)でない場合に返されます。
デバッガからの接続の受入れ中にエラー(受け入れタイムアウト以外)が発生した場合は、JDWPTRANSPORT_ERROR_IO_ERROR
が返されます。 初期ハンドシェーク中のエラー(ハンドシェーク・タイムアウトを含む)は、I/Oエラーとみなされます。 エラーの性質はトランスポートに固有です。 GetLastErrorを使って、エラーの文字列表現を取得できます。
トランスポートが受け入れタイムアウトをサポートしている場合、およびacceptTimeout
値が正の場合、およびデバッガへの接続をそのタイムアウト期間内に確立できない場合、JDWPTRANSPORT_ERROR_TIMEOUT
が返されます。
ノート: デバッガからの接続を待機しているAccept
でブロックされているスレッドは、StopListening
を呼び出す別のスレッドによって中断できます。 その場合、Accept
をコールしたスレッドは、I/Oエラーが発生したことを示すJDWPTRANSPORT_ERROR_IO_ERROR
を返します。 Accept
でブロックされたスレッドが接続を受け入れ、デバッガとのハンドシェイク処理中である場合、StopListening
は接続を中断しません。
IsOpen
jboolean
isOpen(jdwpTransportEnv* env)
デバッガへの開いている接続が存在するかどうかを指定します。
デバッガにオープン接続がある場合のみ、JNI_TRUE
を返します。 それ以外の場合は、JNI_FALSE
を返します。
Close
jdwpTransportError
Close(jdwpTransportEnv* env)
デバッガへの開いている接続を閉じます。
デバッガへの開いている接続が存在しない場合(IsOpenを参照)、この関数は何も実行せず、エラーは返されません。
I/O関数(ReadPacketおよびWritePacket)でブロックされているスレッドがある場合、これらのI/O関数はクローズによって中断され、I/Oエラーが発生したことを示すJDWPTRANSPORT_ERROR_IO_ERROR
が返されます。
この関数は、汎用エラー、または次のエラーのいずれかを返します。
JDWPTRANSPORT_ERROR_IO_ERROR
接続のクローズ時にエラーが発生した場合は、JDWPTRANSPORT_ERROR_IO_ERROR
が返されます。 エラーの性質はトランスポートに固有です。 GetLastErrorを使って、エラーの文字列表現を取得できます。
I/O関数
I/O関数は、JDWPパケットのデバッガからの読み取りおよびデバッガへの書込みに使用されます。
ReadPacket
typedef struct {
jint len;
jint id;
jbyte flags;
jbyte cmdSet;
jbyte cmd;
jbyte *data;
} jdwpCmdPacket;
typedef struct {
jint len;
jint id;
jbyte flags;
jshort errorCode;
jbyte *data;
} jdwpReplyPacket;
typedef struct jdwpPacket {
union {
jdwpCmdPacket cmd;
jdwpReplyPacket reply;
} type;
} jdwpPacket;
jdwpTransportError
ReadPacket(jdwpTransportEnv* env, jdwpPacket* packet)
デバッガに対してオープン接続からJDWPパケットを読み取ります。
この関数は、開いている接続に対してブロック読み取りを実行します。 すべてのJDWPパケットが返されるまで、またはストリーム指向プロトコル・ベースのトランスポートの場合に、ストリームの終わりが検出されるまで無制限にブロックします。
packet
引数は、この関数によって移入されるjdwpPacket
構造のアドレスです。 packet.type.cmd.len
またはpacket.type.reply.len
フィールド(パケットがコマンドか応答パケットかによって異なります)には、パケットの長さが移入されます。 ストリームの終わりが検出された場合、lengthフィールドは0
に設定され、パケット内の他のすべてのフィールドは未定義になります。 ストリームの終わりが、すべてではない一部のバイトを読み取った後に検出された場合、パケットはI/Oエラーと見なされ、JDWPTRANSPORT_ERROR_IO_ERROR
が返されます。 その場合、長さのフィールドは設定されません。 パケット全体が読み取られると、パケットのすべてのフィールドには、ホスト順で値が設定されます。 これは、JDWPパケットを転送するときに必要なビッグ・エンディアンの順序と異なる場合と同じ場合があります。
packet.type.cmd.data
またはpacket.type.reply.data
フィールド(パケットがコマンドか応答パケットかによって異なります)には、NULL
またはこの関数によって割り当てられたパケット・データへのポインタが移入されます。 パケット・データは、jdwpTransport_OnLoad
関数がコールされたときにトランスポートに提供された割当てコールバックを使用して割り当てられます。 呼出し側は、パケット・データを解放します。 パケット・データ(ヘッダーが存在する場合はヘッダーの後のデータ)のレイアウトは、受信したときのバイト順で呼出し側に返されます。
ReadPacket
関数は、パケット (最初の4バイトで示されているように)の長さが>=
11バイトであることを確認する以外は、返されたパケットに対して整合性検査を行いません。 length
フィールドが11バイト未満の場合は、JDWPTRANSPORT_ERROR_IO_ERROR
が返されます。
この関数は、汎用エラー、または次のエラーのいずれかを返します。
JDWPTRANSPORT_ERROR_IO_ERROR
JDWPTRANSPORT_ERROR_ILLEGAL_STATE
JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT
JDWPTRANSPORT_ERROR_IO_ERROR
は、読取り時にI/Oエラーが発生した場合、「閉じる」関数をコールする別のスレッドによって接続が非同期的にクローズされた場合、または間違った形式のパケット(length
フィールドが11バイト未満)が受信された場合に返されます。 I/Oエラーは、トランスポートに固有です。 GetLastErrorを使って、エラーの文字列表現を取得できます。
デバッガ (IsOpenを参照してください)へのオープン接続がない場合、JDWPTRANSPORT_ERROR_ILLEGAL_STATE
が返されます。
packet
がNULL
の場合、JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT
が返されます
WritePacket
jdwpTransportError
WritePacket(jdwpTransportEnv* env, const jdwpPacket* packet)
オープン接続にJDWPパケットを書き込みます。
packet
引数は、jdwpPacket
構造体へのポインタです。 パケット・ヘッダーのすべてのフィールドは、ホスト順で格納される必要があります。 パケット・データ・フィールド(packet.type.cmd.data
またはpacket.type.reply.data
)は、NULL
、またはヘッダーの直後に続くパケット・データを含むロケーションへのポインタである必要があります。 パケット・データは、ネットワーク順(ビッグ・エンディアン)で転送の準備ができている必要があります。
この関数は、汎用エラー、または次のエラーのいずれかを返します。
JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT
JDWPTRANSPORT_ERROR_IO_ERROR
JDWPTRANSPORT_ERROR_ILLEGAL_STATE
packet
がNULL
の場合、またはパケット長フィールド(packet.type.cmd.len
またはpacket.type.reply.len
)が11未満の場合、または11より大きいがパケット・データ・フィールド(packet.type.cmd.data
またはpacket.type.reply.data
)がNULL
の場合、JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT
。
JDWPTRANSPORT_ERROR_IO_ERROR
は、書込み時にI/Oエラーが発生した場合、または「閉じる」関数をコールする別のスレッドによって接続が非同期にクローズされた場合に返されます。 I/Oエラーは、トランスポートに固有です。 GetLastErrorを使って、エラーの文字列表現を取得できます。
デバッガ (IsOpenを参照してください)へのオープン接続がない場合、JDWPTRANSPORT_ERROR_ILLEGAL_STATE
が返されます。
その他の関数
GetLastError
jdwpTransportError
GetLastError(jdwpTransportEnv* env, char** msg);
最後のエラーの文字列表現を返します。
エラーが発生した場合、そのエラーはスレッドごとに記録されます。 後続のGetLastError
をコールすると、最後のI/Oエラーの文字列表現が返されます。
msg
引数は、この関数によって返されるnullで終わる文字列へのポインタです。 この文字列は、jdwpTransport_OnLoad
関数がコールされたときにトランスポートに提供された割当てコールバックを使用して割り当てられます。 呼出し側は、返された文字列を解放します。
この関数は、汎用エラー、または次のエラーのいずれかを返します。
JDWPTRANSPORT_ERROR_MSG_NOT_AVAILABLE
JDWPTRANSPORT_ERROR_MSG_NOT_AVAILABLE
は、このスレッドでI/Oエラーが発生しなかった場合、または最後のエラーの文字列表現が使用可能でない場合に返されます。
GetCapabilities
typedef struct {
unsigned int can_timeout_attach :1;
unsigned int can_timeout_accept :1;
unsigned int can_timeout_handshake :1;
unsigned int reserved3 :1;
unsigned int reserved4 :1;
unsigned int reserved5 :1;
unsigned int reserved6 :1;
unsigned int reserved7 :1;
unsigned int reserved8 :1;
unsigned int reserved9 :1;
unsigned int reserved10 :1;
unsigned int reserved11 :1;
unsigned int reserved12 :1;
unsigned int reserved13 :1;
unsigned int reserved14 :1;
unsigned int reserved15 :1;
} JDWPTransportCapabilities;
jdwpTransportError
GetCapabilities(jdwpTransportEnv* env, JDWPTransportCapabilities* capabilitiesPtr)
このトランスポートでサポートされているオプションのjdwpTransport機能をcapabilitiesPtr
経由で返します。 capabilities構造体には、フラグ名に示されている機能がサポートされているかどうかを示す、いくつかのboolean型のフラグが含まれています。 現在のフラグのセットは、次のとおりです。
boolean型のフラグ | Meaning |
---|---|
can_timeout_attach |
トランスポートでタイム・アウトを使用する接続がサポートされるかどうかを示す |
can_timeout_accept |
トランスポートで受け入れタイム・アウトがサポートされるかどうかを示す |
can_timeout_handshake |
接続の確立時にデバッガと初期ハンドシェークを実行するときにトランスポートでタイム・アウトがサポートされるかどうかを示す |
この関数はエラーを返しません。
汎用エラー
エラー | Meaning |
---|---|
JDWPTRANSPORT_ERROR_NONE |
エラーは発生しなかった。 関数の実行が正常に終了したときに返されるエラー・コード。 |
JDWPTRANSPORT_ERROR_OUT_OF_MEMORY |
関数でメモリーの割当てが必要になったが、これ以上割り当てられるメモリーがなかった。 |
JDWPTRANSPORT_ERROR_INTERNAL |
予期しない内部エラーが発生した。 |