次の方法で共有


DkmGPUComputeThread クラス

定義

DkmGPUComputeThread は、GPU ターゲット プロセスで実行されているコンピューティング スレッドを表します。

public ref class DkmGPUComputeThread : Microsoft::VisualStudio::Debugger::DkmThread
[System.Runtime.InteropServices.Guid("40cbb26d-05f5-dc30-49f9-797b17f2ab9e")]
public class DkmGPUComputeThread : Microsoft.VisualStudio.Debugger.DkmThread
[<System.Runtime.InteropServices.Guid("40cbb26d-05f5-dc30-49f9-797b17f2ab9e")>]
type DkmGPUComputeThread = class
    inherit DkmThread
Public Class DkmGPUComputeThread
Inherits DkmThread
継承
継承
DkmGPUComputeThread
属性

プロパティ

ComputeKernel

DkmGPUComputeKernel は、ターゲット プロセスで実行されている GPU コンピューティング カーネルを表します。

Connection

これは、モニターと IDE の間の接続を表します。 モニターが IDE と同じプロセスで実行されている場合はローカル接続にすることも、リモート接続にすることもできます。 モニター プロセスでは、接続は 1 つだけです。

(継承元 DkmThread)
GlobalThreadIndex

カーネル コンピューティング スレッド インデックスに固有です。

IsMainThread

True の 場合は、このプロセスのメインスレッドです。 メイン スレッドは、最初に開始するスレッドです。

(継承元 DkmThread)
IsUnloaded

このオブジェクトに対して 'unloaded' イベントが発生した場合 (例: DkmThread::Unload が呼び出された場合)、またはオブジェクトが閉じている場合は true を返します。 この状態を同期せずに確認する場合は、読み取った後に返される状態が正確でなくなる可能性があるため、注意が必要です。

(継承元 DkmDataContainer)
NativeStartAddress

使用可能な場合、これはこのスレッドの Win32 開始アドレスです (CreateThread API に渡される値)。 値は常に使用できるわけではありません。たとえば、デバッガーがアタッチされた後、またはミニダンプでスレッドが開始されたシナリオでは一般に使用できません。

(継承元 DkmThread)
NativeThread

[省略可能]GPU デバッグ イベントが使用可能であることをデバッガーに通知するために例外が発生するネイティブ スレッド。

この API は Visual Studio 12 RTM (DkmApiVersion.VS12RTM) で導入されました。

Process

DkmProcess は、デバッグ中のターゲット プロセスを表します。 デバッガーはプロセスをデバッグするため、これはデバッグの基本的な単位です。 DkmProcess は、システム プロセスまたはミニダンプなどの仮想プロセスを表すことができます。

(継承元 DkmThread)
SystemInformation

このスレッドが実行されているコンピューター システムに関する情報が含まれます。 このスレッドが WOW (64 ビット OS 上の 32 ビット エミュレーション) で実行されている場合、この情報は 64 ビット サブシステムではなく 32 ビット サブシステム用になります。

(継承元 DkmThread)
SystemPart

[省略可能]完全な Win32 スレッドに関連するスレッドの特性について説明します。 現在、この値は必須であり、すべてのスレッドに 'System' ブロックがあります。 今後、DkmThread が完全な Win32 スレッド以外のものを表している場合、この値は NULL になる可能性があります。

(継承元 DkmThread)
TebAddress

Win32 スレッド環境ブロックが格納されているターゲット プロセス内のアドレス。 詳細については、MSDN の TEB 構造に関するドキュメントを参照してください。

(継承元 DkmThread)
UniqueId

このスレッド オブジェクトを一意に識別する Guid。

(継承元 DkmThread)

メソッド

BeginFuncEvalExecution(DkmFuncEvalFlags)

このメソッドは、関数の評価が行われるようにターゲット プロセスを再開するために使用されます。 この関数は、ターゲット プロセスを実行するために関数評価を設定した後、ランタイム デバッグ モニターによって呼び出されます。 ランタイム モニターは、最初にスレッド コンテキストを更新し、ターゲット プロセスで必要なメモリを更新し、関数の評価が完了した検出を設定します。

このメソッドの呼び出し元は、関数の評価をトリガーした操作から戻る前に、常に EndFuncEvalExecution を呼び出す必要があります。 呼び出し元が失敗した場合、動作は未定義です。

このメソッドは、最初にターゲット プロセスを関数評価モード (DkmThread.OnBeginFuncEvalExecution) に更新してから、関数評価フラグで指定されたスレッドを中断または再開し、最後にターゲット プロセスを続行することによって、基本デバッグ モニターに実装されます。

このメソッドは任意のスレッドから呼び出すこともできますが、OnBeginFuncEvalExecution は停止中のイベント スレッドから呼び出す必要があるため、基本デバッグ モニターは、このメソッドの実装の一部としてスレッド スイッチとしてを実行する必要があります。 ターゲットが再開されるまで、基本デバッグ モニターは BeginFuncEvalExecution から返さないでください。

(継承元 DkmThread)
CanBeginFuncEvalExecution(DkmFuncEvalFlags)

CanBeginFuncEvalExecution を呼び出して、プロセスの現在の状態で関数の評価が可能かどうかを理解できます。 たとえば、基本 DM が StoppingEventProcessingBegin を呼び出したが、StoppingEventProcessingContinue を呼び出していない場合、これは false を返します。

場所の制約: API は Monitor コンポーネント (コンポーネント レベル < 100,000) から呼び出す必要があります。

この API は、Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5) で導入されました。

(継承元 DkmThread)
Create(DkmProcess, UInt64, Boolean, Int64, DkmGPUComputeKernel, DkmThread, DkmThread+System, DkmDataItem)

新しい DkmGPUComputeThread オブジェクト インスタンスをCreateします。

場所の制約: API は Monitor コンポーネント (コンポーネント レベル < 100,000) から呼び出す必要があります。

この API は Visual Studio 12 RTM (DkmApiVersion.VS12RTM) で導入されました。

Create(DkmProcess, UInt64, Boolean, Int64, DkmGPUComputeKernel, DkmThread+System, DkmDataItem)

新しい DkmGPUComputeThread オブジェクト インスタンスをCreateします。

場所の制約: API は Monitor コンポーネント (コンポーネント レベル < 100,000) から呼び出す必要があります。

CreateFrameRegisters(DkmUnwoundRegister[], UInt32)

DkmUnwoundRegisters の配列を DkmUnwoundRegisters の並べ替えられた DkmReadOnlyCollection を含む DkmFrameRegisters のインスタンスに変換します。

(継承元 DkmThread)
CreateRegistersObject(Byte[], DkmUnwoundRegister[], DkmUnwoundRegister[])

Win32 CONTEXT 構造体を含む指定されたバイト配列から DkmFrameRegisters オブジェクトを作成します。

(継承元 DkmThread)
EndFuncEvalExecution(DkmFuncEvalFlags)

EndFuncEvalExecution は、関数評価モードを終了するために、イベント スレッドのランタイム デバッグ モニターによって呼び出されます。 EndFuncEvalExecution は、DkmProcess オブジェクトの内部状態を更新して、関数の評価が終了したことを示します。 これにより、FuncEvalEnded イベントも送信され、プロセスは停止済みとしてマークされます。

このメソッドは、(1) 'received' 停止イベント通知の処理中、または (2) スレッド終了、-または (3) などの非停止イベントの処理中に呼び出される場合があります(たとえば、関数評価のセットアップが失敗した場合など)。

(継承元 DkmThread)
GetContext(Int32, Byte[])

スレッドの現在のコンテキスト (レジスタ値) を取得します。

(継承元 DkmThread)
GetContext(Int32, Void*, Int32)

スレッドの現在のコンテキスト (レジスタ値) を取得します。

(継承元 DkmThread)
GetCurrentFrameInfo(UInt64, UInt64, UInt64)

GetCurrentFrameInfo は、スレッドの現在のコンテキストのフレーム ベースとリターン アドレスを取得するために使用されます。 これには、フレーム ポインターの省略と、現在の命令ポインターがプロローグ、エピローグなどに含まれている場合が考慮されます。注: フレームにフレーム ポインターの省略があり、シンボルが読み込まれていない場合は、間違って表示される場合があります。

場所の制約: API は Monitor コンポーネント (コンポーネント レベル < 100,000) から呼び出す必要があります。

(継承元 DkmThread)
GetCurrentFuncEvalMode()

GetCurrentFuncEvalMode は、イベント処理の一環としてコンポーネントによって呼び出され、関数の評価が有効になっているかどうかを判断できます。 この関数は、イベント処理の一部としてのみ呼び出されます。

(継承元 DkmThread)
GetCurrentLocation(DkmWorkList, DkmCompletionRoutine<DkmGetCurrentLocationAsyncResult>)

スレッド ウィンドウに表示されるスレッドの場所、またはデバッグ場所ツール バーの [スレッド] ドロップダウンを提供します。

このメソッドは、指定した作業リストに新しい作業項目を追加し、作業項目が追加されると を返します。 作業項目の実際の処理は非同期です。 呼び出し元には、完了ルーチンを介して要求が完了したことを通知されます。

場所の制約: API は IDE コンポーネント (コンポーネント レベル > 100,000) から呼び出す必要があります。

(継承元 DkmThread)
GetCurrentRegisters(DkmUnwoundRegister[])

スレッドの現在のレジスタ値を含む DkmFrameRegisters オブジェクトを返します。

(継承元 DkmThread)
GetDataItem<T>()

このコンテナー インスタンスに追加された 'T' のインスタンスを取得します。 このコンテナーに 'T' が含まれていない場合、この関数は null を返します。

(継承元 DkmDataContainer)
GetDebuggerSuspensionCount()

デバッガーによって発生した中断の合計数を返します (つまり、DkmThread::Suspend を呼び出さずに DkmThread::Suspend を呼び出します)。 これにより、デバッガーの外部の中断は除外されます。

(継承元 DkmThread)
GetExtendedRegisters()

スレッド コンテキストから拡張レジスタを取得します。

(継承元 DkmThread)
GetGroupId(Int32[], Int32)

スレッド ブロックのディメンションを取得します。

GetManagedThreadProperties(DkmWorkList, DkmCompletionRoutine<DkmGetManagedThreadPropertiesAsyncResult>)

マネージド スレッドのプロパティを取得します。

このメソッドは、指定した作業リストに新しい作業項目を追加し、作業項目が追加されると を返します。 作業項目の実際の処理は非同期です。 呼び出し元には、完了ルーチンを介して要求が完了したことを通知されます。

(継承元 DkmThread)
GetManagedThreadProperties(Int32)

マネージド スレッドのプロパティを取得します。

(継承元 DkmThread)
GetMinidumpThreadInfo(DkmMinidumpThreadInfo)

ミニダンプに格納されているスレッド状態情報を取得します。

この API は Visual Studio 17 RTM (DkmApiVersion.VS17RTM) で導入されました。

(継承元 DkmThread)
GetRegisterDescriptions()

GPU コンピューティング スレッドからすべてのレジスタの説明の一覧を取得します。

GetStackAddressRange()

指定されたスレッドのスタック制限/スタック ベースを取得します。 この値は時間の経過と同時に変化する可能性があることに注意してください。例えば、繊維の場合には。

(継承元 DkmThread)
GetSteppers()

GetSteppers は、この DkmThread オブジェクトの DkmStepper 要素を列挙します。

(継承元 DkmThread)
GetSuspensionCount(Boolean)

このスレッドの現在の中断数を返します。

(継承元 DkmThread)
GetSuspensionCount(DkmWorkList, Boolean, DkmCompletionRoutine<DkmGetSuspensionCountAsyncResult>)

このスレッドの現在の中断数を返します。

このメソッドは、指定した作業リストに新しい作業項目を追加し、作業項目が追加されると を返します。 作業項目の実際の処理は非同期です。 呼び出し元には、完了ルーチンを介して要求が完了したことを通知されます。

(継承元 DkmThread)
GetThisGroupDimension(Int32[], Int32)

スレッド ブロックのディメンションを取得します。

GetThisThreadDimension(Int32[], Int32)

スレッド ブロックのディメンションを取得します。

GetThreadCurrentWinRtErrorInfo()

GetThreadCurrentWinRtErrorInfo は、このスレッドの現在の IErrorInfo オブジェクトのアドレスを取得するために使用されます。

この API は Visual Studio 12 RTM (DkmApiVersion.VS12RTM) で導入されました。

(継承元 DkmThread)
GetThreadId(Int32[], Int32)

スレッド ブロックのディメンションを取得します。

GetTlsValue(Int32)

指定した TLS インデックスのデバッグ対象スレッドのスレッド ローカル ストレージ (TLS) スロットの値を取得します。 プロセスの各スレッドには TLS インデックスごとに専用のスロットがあります。

(継承元 DkmThread)
GetTopStackFrame()

スレッドの最上位の呼び出し履歴フレームを返します。 この値は通常、最初のスタック ウォークの後にキャッシュされ、続行時にクリアされます。 これは、クライアント プロセスのスタック プロバイダーの上でのみ呼び出し可能です。 サーバー プロセスの最上位フレームを取得するには、GetTopStackWalkFrame を呼び出します。

場所の制約: API は IDE コンポーネント (コンポーネント レベル > 100,000) から呼び出す必要があります。

(継承元 DkmThread)
GetTopStackWalkFrame(DkmRuntimeInstance)

スレッドの最上位スタック フレームを返します。 このフレームは、ランタイム インスタンスまたはモニター アンワインダーから取得できます。 これは、サーバー プロセスからのみ呼び出すことができます。 クライアント プロセスの最上位フレームを取得するには、GetTopStackFrame を使用します。

場所の制約: API は Monitor コンポーネント (コンポーネント レベル < 100,000) から呼び出す必要があります。

(継承元 DkmThread)
GetVolatileFlags()

スレッドに関する揮発性フラグを取得します。 たとえば、スレッドがユーザー モードのスケジュールされたスレッドの場合は を返します。

(継承元 DkmThread)
GetVolatileFlags(DkmWorkList, DkmCompletionRoutine<DkmGetVolatileFlagsAsyncResult>)

スレッドに関する揮発性フラグを取得します。 たとえば、スレッドがユーザー モードのスケジュールされたスレッドの場合は を返します。

このメソッドは、指定した作業リストに新しい作業項目を追加し、作業項目が追加されると を返します。 作業項目の実際の処理は非同期です。 呼び出し元には、完了ルーチンを介して要求が完了したことを通知されます。

(継承元 DkmThread)
GetVolatileProperties(DkmWorkList, DkmCompletionRoutine<DkmGetVolatilePropertiesAsyncResult>)

スレッドの動的プロパティを取得します。

このメソッドは、指定した作業リストに新しい作業項目を追加し、作業項目が追加されると を返します。 作業項目の実際の処理は非同期です。 呼び出し元には、完了ルーチンを介して要求が完了したことを通知されます。

(継承元 DkmThread)
GetVolatileProperties(Int32, UInt64)

スレッドの動的プロパティを取得します。

(継承元 DkmThread)
IsStoppingEventQueued(Boolean)

指定されたスレッドがキューに停止イベントを持っているかどうかを示します。 この情報は、スレッドがスリップする可能性があるかどうかを判断するために実行マネージャーによって使用されます。

(継承元 DkmThread)
OnBeginFuncEvalExecution(DkmFuncEvalFlags)

OnBeginFuncEvalExecution は、イベント スレッドの基本デバッグ モニターによって呼び出されます。 このメソッドは、関数評価のプロセスを再開するために呼び出される IDkmBaseFuncEvalService.BeginFuncEvalExecution の実装の一部として呼び出されます。 OnBeginFuncEvalExecution は、DkmProcess オブジェクトの内部状態を更新して、関数の評価が進行中であることを示します。 これにより、FuncEvalStarting イベントも送信され、プロセスが実行中としてマークされるため、停止したプロセスを必要とする操作は許可されません。

(継承元 DkmThread)
OnContinueExecution()

OnContinueExecution は、イベント スレッドの基本デバッグ モニターによって呼び出されます。 このメソッドは、IDE でターゲット プロセスを続行するために使用される IDkmContinueExecution.ContinueExecution の実装の一部として呼び出されます。 このメソッドは、Dispatcher によって、以前に処理できなかった停止イベントをディスパッチするか、ターゲット プロセスが現在実行されていることを示すために DkmProcess オブジェクトの内部状態を更新するために使用されます。 プロセスを実行中としてマークする前に、Dispatcher によって Continue イベントが送信されます。

基本デバッグ モニターは、このメソッド内にある間に再入可能に呼び出されることを想定している必要があります。

(継承元 DkmThread)
OnEmbeddedBreakpointHit(DkmInstructionAddress, Boolean)

EmbeddedBreakpointHit イベントを発生させます。 イベント シンク インターフェイスを実装するコンポーネントは、イベント通知を受け取ります。 このメソッドはイベントをエンキューし、コントロールはすぐに呼び出し元に戻ります。

(継承元 DkmThread)
OnInterceptExceptionCompleted(UInt64)

InterceptExceptionCompleted イベントを発生させます。 イベント シンク インターフェイスを実装するコンポーネントは、イベント通知を受け取ります。 このメソッドはイベントをエンキューし、コントロールはすぐに呼び出し元に戻ります。

(継承元 DkmThread)
OnThreadNameChange()

DkmThread::NameChange がモニターによって呼び出されると、ThreadNameChange はディスパッチャーによって送信されます。

この API は Visual Studio 14 RTM (DkmApiVersion.VS14RTM) で導入されました。

(継承元 DkmThread)
RaiseExecutionControlException(UInt32)

IDkmSingleStepCompleteReceived または IDkmRuntimeBreakpointReceived 実装から呼び出され、実行が再開されたときにターゲット プロセスでEXCEPTION_BREAKPOINTまたはEXCEPTION_SINGLE_STEP例外がベース DM に強制的に実行されるようにする API。 通常、ブレークポイントまたは単一ステップの例外は暗黙的に抑制されます。 これにより、ターゲット プロセス内の例外ハンドラーによってEXCEPTION_BREAKPOINT/EXCEPTION_SINGLE_STEPを処理できます。 スレッドが現在ステップ完了イベントまたはブレークポイント イベントに座っていない場合、この API は失敗します。

場所の制約: API は Monitor コンポーネント (コンポーネント レベル < 100,000) から呼び出す必要があります。

(継承元 DkmThread)
ReadMemory(UInt64, UInt64, DkmReadMemoryFlags, Byte[])

ターゲット GPU プロセスのメモリを読み取る。 メソッドは、スレッド ローカル メモリ、グループ共有メモリ、またはグローバル メモリを読み取ることができるため、DkmGPUComputeThread 上にあります。

ReadMemory(UInt64, UInt64, DkmReadMemoryFlags, Void*, Int32)

ターゲット GPU プロセスのメモリを読み取る。 メソッドは、スレッド ローカル メモリ、グループ共有メモリ、またはグローバル メモリを読み取ることができるため、DkmGPUComputeThread 上にあります。

RemoveDataItem<T>()

このコンテナーから 'T' のインスタンスを削除します。 通常、オブジェクトが閉じられるとデータ コンテナーが自動的に空になるので、このメソッドを呼び出す必要があります。

(継承元 DkmDataContainer)
Resume(Boolean)

このスレッドを再開します。

(継承元 DkmThread)
SetContext(Byte[])

スレッドのコンテキスト (レジスタ値) を更新します。

(継承元 DkmThread)
SetDataItem<T>(DkmDataCreationDisposition, T)

データ コンテナーに新しい項目を配置します。

(継承元 DkmDataContainer)
SetExtendedRegisterValue(Int32, ReadOnlyCollection<Byte>)

スレッドのコンテキストで拡張レジスタの値を設定します。

(継承元 DkmThread)
SetRegisterValue(DkmGPURegisterDescription, ReadOnlyCollection<Byte>)

GPU コンピューティング スレッドでレジスタの値を設定します。

SetTlsValue(Int32, UInt64)

指定した TLS インデックスのデバッグ対象スレッドのスレッド ローカル ストレージ (TLS) スロットに値を格納します。 プロセスの各スレッドには TLS インデックスごとに専用のスロットがあります。

(継承元 DkmThread)
Suspend(Boolean)

このスレッドを中断します。

(継承元 DkmThread)
Unload(Int32)

DkmThread::Unload がモニターによって呼び出されると、ThreadExit はディスパッチャーによって送信されます。

このメソッドは、 オブジェクトを作成したコンポーネントによってのみ呼び出されます。

(継承元 DkmThread)
UpdateBufferTag(UInt32)

このカーネル実行のためにバッファーのタグが転送されているかどうかを確認します。

ValidateAddress(UInt64)

指定した GPU メモリ アドレスを検証します。

WriteMemory(UInt64, UInt64, Byte[])

ターゲット GPU プロセスにメモリを書き込みます。 メソッドは、スレッド ローカル メモリ、グループ共有メモリ、またはグローバル メモリを書き込む可能性があるため、DkmGPUComputeThread 上にあります。

適用対象