DkmMonitorStackWalkContext Класс

Определение

DkmMonitorStackWalkContext позволяет использовать различные компоненты DkmSymbolStackWalkContext с этим стеком вызовов.

public ref class DkmMonitorStackWalkContext : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("4ce2f85d-5b40-4a4c-5eba-79e9228e48b1")]
public class DkmMonitorStackWalkContext : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("4ce2f85d-5b40-4a4c-5eba-79e9228e48b1")>]
type DkmMonitorStackWalkContext = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmMonitorStackWalkContext
Inherits DkmDataContainer
Implements IDisposable
Наследование
DkmMonitorStackWalkContext
Наследование
DkmMonitorStackWalkContext
Атрибуты
Реализации

Свойства

Flags

Флаги для управления кадрами, возвращаемыми во время выполнения стека.

Этот API появился в Visual Studio 17 с обновлением 3 (DkmApiVersion.VS17Update3).

IsUnloaded

Возвращает значение true, если для этого объекта было вызвано событие "unloaded" (например, вызывается DkmThread::Unload) или если объект был закрыт. Обратите внимание, что при проверке этого состояния необходимо соблюдать осторожность, так как без синхронизации возвращаемое состояние может быть не точным после прочтения инструкции.

(Унаследовано от DkmDataContainer)
RuntimeInstance

Класс DkmRuntimeInstance представляет среду выполнения, которая загружается в DkmProcess и содержит код для отладки.

Thread

DkmThread представляет поток, выполняющийся в целевом процессе.

ThreadContext

[Необязательно] Начальный контекст Win32, используемый при выполнении шага по стеку. Обычно это значение равно null, но его можно задать для просмотра другого стека вызовов (например, .cxr).

UniqueId

Guid, который однозначно идентифицирует этот DkmMonitorStackWalkContext.

Методы

Close()

Закрывает экземпляр объекта DkmMonitorStackWalkContext. Это приведет к освобождению всех ресурсов, связанных с этим объектом, во всех компонентах. К ним относятся ресурсы в пределах компьютера или управляемых или собственных границ маршалинга.

Объекты DkmMonitorStackWalkContext автоматически закрываются при закрытии связанного с ними объекта DkmThread.

Этот метод может вызываться только компонентом, создавший объект .

Ограничение расположения. API должен вызываться из компонента Monitor (уровень < компонента 100 000).

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

Create новый экземпляр объекта DkmMonitorStackWalkContext. Вызывающий объект отвечает за закрытие созданного объекта после их завершения.

Ограничение расположения. API должен вызываться из компонента Monitor (уровень < компонента 100 000).

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

Create новый экземпляр объекта DkmMonitorStackWalkContext. Вызывающий объект отвечает за закрытие созданного объекта после их завершения.

Ограничение расположения. API должен вызываться из компонента Monitor (уровень < компонента 100 000).

Этот API появился в Visual Studio 17 с обновлением 3 (DkmApiVersion.VS17Update3).

GetDataItem<T>()

Возвращает экземпляр T, который был добавлен в этот экземпляр контейнера. Если этот контейнер не содержит "T", эта функция возвращает значение NULL.

(Унаследовано от DkmDataContainer)
Initialize(DkmFrameRegisters, UInt32)

Инициализация вызывается для каждого обходчика ровно один раз в начале процесса пошагового выполнения. Это дает каждому walker возможность инициализировать любое состояние.

Ограничение расположения. API должен вызываться из компонента Monitor (уровень < компонента 100 000).

RemoveDataItem<T>()

Удалите экземпляр T из этого контейнера. Обычно не требуется вызывать этот метод, так как контейнер данных автоматически очищается при закрытии объекта.

(Унаследовано от DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

Поместите новый элемент в контейнер данных.

(Унаследовано от DkmDataContainer)
UpdatePosition(DkmFrameRegisters, UInt32)

UpdatePosition вызывается слиянием стека после того, как другой ходок прошел один или несколько кадров, поэтому этот ходок необходимо обновить перед вызовом WalkNextFrame. Среды выполнения, которые сохраняют собственное внутреннее состояние диапазона стека в целевом процессе, скорее всего, не будут иметь ничего общего с этим методом.

Ограничение расположения. API должен вызываться из компонента Monitor (уровень < компонента 100 000).

WalkNextFrame()

Попробуйте перейти к следующему кадру стека. Структура DkmMonitorStackWalkResult указывает, удалось ли этому монитору пройти кадр.

Ограничение расположения. API должен вызываться из компонента Monitor (уровень < компонента 100 000).

Явные реализации интерфейса

IDisposable.Dispose()

DkmMonitorStackWalkContext позволяет использовать различные компоненты DkmSymbolStackWalkContext с этим стеком вызовов.

Применяется к