IDataModelScriptDebug::GetCurrentPosition メソッド (dbgmodel.h)
GetCurrentPosition' メソッドは、スクリプト内の現在位置を返します。 これは、スクリプトがデバッガーに分割され、GetScriptState の呼び出しで ScriptDebugBreak が返される場合にのみ呼び出すことができます。 このメソッドの他の呼び出しは無効であり、失敗します。
スクリプトの位置は、文字のスパンとして定義されます。 スパンの先頭は常に返される必要があります (行番号と列番号の両方)。 特定のデバッガーがスクリプト内の "現在位置" の完全なスパンを返すことができる場合は、必要に応じて positionSpanEnd 引数で終了位置を返すことができます。 デバッガーでこれを実行できない場合は、スパンエンドの行と列の値 (要求された場合) を 0 に設定する必要があります。
デバッガーが壊れているコード行のソース コードをデバッガーが渡すことができる場合は、このメソッドから このような コードが返される可能性があります。 可能であれば、この情報を提供することを強くお勧めします。 ただし、ブレーク位置の開始行と列より多くの情報が返されるという要件はありません。 ソース行情報がサポートされていない場合は、その引数に対して nullptr 値が返される可能性があります。
構文
HRESULT GetCurrentPosition(
ScriptDebugPosition *currentPosition,
ScriptDebugPosition *positionSpanEnd,
BSTR *lineText
);
パラメーター
currentPosition
ここで、スクリプトの現在の中断位置を返す必要があります。 返される構造体の Line フィールドと Column フィールドは、1 つのベースです。 の 0 の値は、情報が使用できないことを示します。
positionSpanEnd
デバッガーが中断位置の完全なスパンを決定できる場合は、スパンの終了位置をここで返すことができます。 そうでない場合は、返される構造体の [行] フィールドと [列] フィールドに 0 の値を入力する必要があります。
lineText
デバッガーがブレークの行 (またはスパン) のソース コードを返すことができる場合は、SysAllocString 関数によって割り当てられた文字列として、 をここで返すことができます。 呼び出し元は、返された文字列を SysFreeString で解放する必要があります。 デバッガーでこのソース情報を生成できない場合は、nullptr を返す必要があります。
戻り値
このメソッドは、成功または失敗を示す HRESULT を返します。
要件
要件 | 値 |
---|---|
Header | dbgmodel.h |