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
- Наследование
- Наследование
- Атрибуты
- Реализации
Свойства
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 с этим стеком вызовов. |