次の方法で共有


DkmStackWalkContext クラス

定義

DkmStackWalkContext を使用すると、呼び出し履歴をウォーク、フィルター処理、または調査するさまざまなコンポーネントで、この呼び出し履歴に関連付けられているプライベート データを格納できます。

public ref class DkmStackWalkContext : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("33ebb282-734b-c2f3-66cd-c42eb8a3d490")]
public class DkmStackWalkContext : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("33ebb282-734b-c2f3-66cd-c42eb8a3d490")>]
type DkmStackWalkContext = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmStackWalkContext
Inherits DkmDataContainer
Implements IDisposable
継承
DkmStackWalkContext
継承
DkmStackWalkContext
属性
実装

プロパティ

Flags

スタック ウォーク中に返されるフレームを制御するためのフラグ。

この API は、Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) で導入されました。

IsUnloaded

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

(継承元 DkmDataContainer)
Process

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

Thread

DkmThread は、ターゲット プロセスで実行されているスレッドを表します。

ThreadContext

[省略可能]スタック ウォークの実行時に使用する最初の Win32 CONTEXT。 この値は通常は 'null' ですが、別の呼び出し履歴 (.cxr など) を表示するために設定できます。

TopStackPointer

トップ スタック フレームのスタック ポインター。

この API は、Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6) で導入されました。

UniqueId

この DkmStackWalkContext を一意に識別する Guid。

メソッド

Close()

DkmStackWalkContext オブジェクト インスタンスを閉じます。 これにより、すべてのコンポーネントにわたって、このオブジェクトに関連付けられているすべてのリソースが解放されます。 これには、コンピューターまたはマネージド/ネイティブマーシャリングの境界を越えたリソースが含まれます。

DkmStackWalkContext オブジェクトは、関連付けられている DkmThread オブジェクトが閉じられると自動的に閉じられます。

Create(DkmThread, ReadOnlyCollection<Byte>, DkmDataItem)

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

Create(DkmThread, ReadOnlyCollection<Byte>, UInt64, DkmDataItem)

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

この API は、Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6) で導入されました。

Create(DkmThread, ReadOnlyCollection<Byte>, UInt64, DkmStackWalkContextFlags, DkmDataItem)

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

この API は、Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) で導入されました。

FindSymbolStackWalkContext(Guid)

この DkmStackWalkContext 内で DkmSymbolStackWalkContext 要素を見つけます。 指定された入力キーを持つ要素が存在しない場合、FindSymbolStackWalkContext は失敗します。

GetDataItem<T>()

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

(継承元 DkmDataContainer)
HeuristicWalkFrames(DkmFrameRegisters, UInt32, UInt64, DkmFrameRegisters, Boolean)

ヒューリスティック スタック ウォーク アルゴリズムを使用して、スタックの領域をウォークしようとします。 これは、使用可能なシンボルがない場合に x86 で使用されます。 PDATA ではすべてのフレームのウォークが可能であるため、他のプラットフォームでは実装されません。

HeuristicWalkFrames(DkmWorkList, DkmFrameRegisters, UInt32, UInt64, DkmCompletionRoutine<DkmHeuristicWalkFramesAsyncResult>)

ヒューリスティック スタック ウォーク アルゴリズムを使用して、スタックの領域をウォークしようとします。 これは、使用可能なシンボルがない場合に x86 で使用されます。 PDATA ではすべてのフレームのウォークが可能であるため、他のプラットフォームでは実装されません。

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

RemoveDataItem<T>()

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

(継承元 DkmDataContainer)
RuntimeWalkNextFrames(DkmWorkList, UInt32, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAsyncResult>)

シンボルを使用せずにスタックをウォークしようとします。 これにより、スタックの一部をウォークする方法を知っているさまざまなコンポーネントが呼び出されます (例: CLR フレームは CLR デバッグ モニターによってウォークされます)。 "未解決" フレームは、シンボル ファイル内に情報が格納されていないとウォークできないスタックの一部に残されます。 これらの '未解決' フレームには、InstructionAddress または Description がありません。

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

RuntimeWalkNextFrames(UInt32, Boolean)

シンボルを使用せずにスタックをウォークしようとします。 これにより、スタックの一部をウォークする方法を知っているさまざまなコンポーネントが呼び出されます (例: CLR フレームは CLR デバッグ モニターによってウォークされます)。 "未解決" フレームは、シンボル ファイル内に情報が格納されていないとウォークできないスタックの一部に残されます。 これらの '未解決' フレームには、InstructionAddress または Description がありません。

RuntimeWalkNextFramesAndCheckCache(DkmWorkList, UInt32, UInt32, DkmStackHash, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCacheAsyncResult>)

非推奨になりました。 このメソッドは使用しないでください。古いハッシュ値が返されます。代わりに IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164 を使用してください。 呼び出し履歴のキャッシュされたコピーがまだ有効かどうかをチェックする RuntimeWalkNextFrames() のバージョン。

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

RuntimeWalkNextFramesAndCheckCache(UInt32, UInt32, DkmStackHash, Boolean, DkmStackHash, DkmStackWalkContext, Boolean)

非推奨になりました。 このメソッドは使用しないでください。古いハッシュ値が返されます。代わりに IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164 を使用してください。 呼び出し履歴のキャッシュされたコピーがまだ有効かどうかをチェックする RuntimeWalkNextFrames() のバージョン。

RuntimeWalkNextFramesAndCheckCache164(DkmWorkList, UInt32, UInt32, DkmStackHash164, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult>)

呼び出し履歴のキャッシュされたコピーがまだ有効かどうかをチェックする RuntimeWalkNextFrames() のバージョン。

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

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

RuntimeWalkNextFramesAndCheckCache164(UInt32, UInt32, DkmStackHash164, Boolean, DkmStackHash164, DkmStackWalkContext, Boolean)

呼び出し履歴のキャッシュされたコピーがまだ有効かどうかをチェックする RuntimeWalkNextFrames() のバージョン。

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

SetDataItem<T>(DkmDataCreationDisposition, T)

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

(継承元 DkmDataContainer)

明示的なインターフェイスの実装

IDisposable.Dispose()

DkmStackWalkContext を使用すると、呼び出し履歴をウォーク、フィルター処理、または調査するさまざまなコンポーネントで、この呼び出し履歴に関連付けられているプライベート データを格納できます。

適用対象