DkmStackFrame Класс

Определение

DkmStackFrame представляет кадр в стеке вызовов после фильтрации и преобразования.

public ref class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[System.Runtime.InteropServices.Guid("9e32fe11-196e-a0ec-b83c-0792427e91a2")]
public class DkmStackFrame : Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame
[<System.Runtime.InteropServices.Guid("9e32fe11-196e-a0ec-b83c-0792427e91a2")>]
type DkmStackFrame = class
    inherit DkmStackWalkFrame
Public Class DkmStackFrame
Inherits DkmStackWalkFrame
Наследование
DkmStackFrame
Атрибуты

Свойства

AnnotatedModule

[Необязательно] Если у нас есть кадр с заметками, указывает необязательный экземпляр модуля для связи с этим кадром. Если он присутствует, пользователь сможет загрузить двоичные файлы или символы для этого модуля, щелкнув правой кнопкой мыши этот кадр в окне стека вызовов. Это значение равно NULL для кадров без аннотированных.

Этот API появился в Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Унаследовано от DkmStackWalkFrame)
Annotations

[Необязательно] Коллекция заметок кадра стека только для чтения. Они определяются с помощью средства очистки и относятся к конкретному объекту очистки. Пример использования — передача данных встроенного кадра из фильтра встроенного стека в модуль форматирования.

(Унаследовано от DkmStackWalkFrame)
AsyncContext

[Необязательно] Необязательный контекст для обхода асинхронных стеков возврата и создания задач.

Этот API появился в Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Унаследовано от DkmStackWalkFrame)
BasicSymbolInfo

[Необязательно] Содержит основные сведения о объекте DkmInstructionSymbol, соответствующему элементу InstructionAddress кадра. Для собственных кадров это будет вычисляться StackProvider перед передачей кадра в фильтр стека.

Для DkmStackFrame всегда будет иметь значение NULL.

Этот API появился в Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

(Унаследовано от DkmStackWalkFrame)
CompilerId

LanguageId/VendorId для компилятора, создающего код для этого кадра стека. Если это неизвестно (например, для этого модуля не загружены символы), оба значения будут иметь значение Guid.Empty. В противном случае оба значения должны быть ненулевыми.

Connection

Это представляет собой соединение между монитором и интегрированной среды разработки. Это может быть локальное подключение, если монитор выполняется в том же процессе, что и интегрированная среда разработки, или удаленное подключение. В процессе мониторинга имеется только одно подключение.

(Унаследовано от DkmStackWalkFrame)
Data

[Необязательно] Необязательный объект для присоединения к элементу DkmStackWalkFrame, позволяющий компонентам связывать дополнительные частные данные с кадром.

Этот API появился в Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Унаследовано от DkmStackWalkFrame)
Description

[Необязательно] Описание кадра, который будет отображаться в окне стека вызовов. Он должен быть указан для кадров с заметками.

(Унаследовано от DkmStackWalkFrame)
Flags

Помечает свойства DkmStackWalkFrame.

(Унаследовано от DkmStackWalkFrame)
FrameBase

Указатель базового стека кадра. Он используется SDM для сортировки кадра, а также при слиянии стека для оценки хода выполнения, поэтому это значение требуется даже для кадров с заметками. Это значение должно быть недопустимым только в случае повреждения стека отладчика.

(Унаследовано от DkmStackWalkFrame)
FrameName

Имя кадра стека. DkmStackFrame.FormatOptions определяет формат имени функции.

FrameSize

Количество байтов стека, потребляемых этим кадром. Это значение будет равно нулю для аннотированных кадров или , если значение неизвестно.

(Унаследовано от DkmStackWalkFrame)
InstructionAddress

[Необязательно] Инструкция для этого кадра. Это значение можно опустить для кадров с заметками.

(Унаследовано от DkmStackWalkFrame)
IsStale

Указывает, является ли этот кадр стека устаревшим после операции "Изменить и продолжить".

Этот API появился в Visual Studio 15 с обновлением 6 (DkmApiVersion.VS15Update6).

ModuleInstance

[Необязательно] Модуль, содержащий этот адрес. Адреса без модуля не могут содержать символы (даже для пользовательских адресов). Адреса СРЕДЫ CLR всегда будут иметь модуль. В собственных адресах не будет модуля, если ЦП перешел на недопустимый адрес (например, NULL) или если ЦП выполняет динамически создаваемый код.

(Унаследовано от DkmStackWalkFrame)
Options

Коллекция параметров, влияющих на форматирование DkmStackFrame поставщиком стека.

Priority

Приоритет кадра шага стека. Обычно используется для аннотированных кадров, в которых обнаружена проблема.

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

(Унаследовано от DkmStackWalkFrame)
Process

DkmProcess представляет отлаживаемый целевой процесс. Отладчик отлаживать процессы, поэтому это базовая единица отладки. DkmProcess может представлять системный или виртуальный процесс, например минидампы.

(Унаследовано от DkmStackWalkFrame)
Registers

[Необязательно] Регистры пошагового кадра. Они должны быть предоставлены для кадров без аннотированных.

(Унаследовано от DkmStackWalkFrame)
ReturnType

[Необязательно] Имя возвращаемого типа кадра стека. Это предоставляется только в том случае, если задан параметр DkmFrameNameFormatOptions.ReturnTypeField.

RuntimeInstance

[Необязательно] Класс DkmRuntimeInstance представляет среду выполнения, которая загружается в DkmProcess и содержит отлаживаемый код.

(Унаследовано от DkmStackWalkFrame)
SourcePosition

[Необязательно] Расположение исходного кода для этого кадра стека. Это предоставляется только в том случае, если задан параметр DkmFrameNameFormatOptions.DocumentPositionField.

Thread

Поток, в который включен этот кадр стека.

(Унаследовано от DkmStackWalkFrame)
UniqueId

Уникальный идентификатор DkmStackWalkFrame. В сценариях удаленной отладки это может быть GUID_NULL/Guid.Empty, если кадр был маршалирован из более старой интегрированной среды разработки или удаленного отладчика.

Этот API появился в Visual Studio 16 с обновлением 10 (DkmApiVersion.VS16Update10).

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

Методы

CanSetNextStatement(DkmInstructionAddress)

CanSetNextStatement определяет, можно ли переместить IP-адрес кадра стека. Кадр стека всегда является конечным кадром стека в определенном потоке. Этот API может быть реализован только в процессе обработчика. Параметр Result out должен быть S_OK или значение ошибки HRESULT, которое пользовательский интерфейс может сопоставить с сообщением об ошибке.

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

(Унаследовано от DkmStackWalkFrame)
ComputeUserStatus(DkmInspectionSession, Boolean)

Определяет, является ли фрейм пользовательским кодом.

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

Этот API появился в Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Унаследовано от DkmStackWalkFrame)
Create(DkmStackWalkFrame, DkmFrameFormatOptions, DkmCompilerId, String, String, DkmSourcePosition)

Create новый экземпляр объекта DkmStackFrame.

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

Create(DkmStackWalkFrame, DkmFrameFormatOptions, DkmCompilerId, String, String, DkmSourcePosition, Boolean)

Create новый экземпляр объекта DkmStackFrame.

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

Этот API появился в Visual Studio 15 с обновлением 6 (DkmApiVersion.VS15Update6).

ExtractFromAD7Object(IDebugStackFrame2)

Получает DkmStackFrame из объекта кадра стека AD7. Этот API используется пакетами или надстройками Visual Studio, которые хотят получить доступ к API Concord для получения более подробных сведений об отлаживаемом процессе. Этот API будет правильно работать только из потока main Visual Studio.

ExtractFromDTEObject(StackFrame)

Получает DkmStackFrame из объекта кадра стека DTE (автоматизации отладчика). Этот API используется пакетами или надстройками Visual Studio, которые хотят получить доступ к API Concord для получения более подробных сведений об отлаживаемом процессе. Объект автоматизации часто получается из события автоматизации OnContextChanged или из свойства Debugger.CurrentStackFrame. Этот API будет правильно работать только из потока main Visual Studio.

Format(DkmInspectionSession, DkmFrameFormatOptions)

Форматирование DkmStackWalkFrame в DkmStackFrame. Форматирование кадра — это один из шагов, которые поставщик стека выполняет во время getNextFrames. Этот метод можно использовать для форматирования кадра иначе, чем изначально выполнен поставщиком стека в GetNextFrames.

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

(Унаследовано от DkmStackWalkFrame)
GetClrGenericParameters()

Возвращает универсальные параметры для текущего кадра стека в виде списка полных имен сборок.

Этот API появился в Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

(Унаследовано от DkmStackWalkFrame)
GetClrGenericParameters(DkmWorkList, DkmCompletionRoutine<DkmGetClrGenericParametersAsyncResult>)

Возвращает универсальные параметры для текущего кадра стека в виде списка полных имен сборок.

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

Этот API появился в Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

(Унаследовано от DkmStackWalkFrame)
GetEffectiveAddresses(DkmInstructionAddress)

Метод, который вычисляет и возвращает действующие адреса для запрошенного адреса. Фактический адрес — это вычисляемый адрес, который представляет операнд инструкции. Например, в x86 инструкция может иметь вид dwordptr [esp-12]. Действующий адрес этого операнда будет результатом вычитания 12 из esp. Количество операндов и эффективных адресов зависит от архитектуры.

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

GetInspectionInterface(DkmInspectionSession, Guid)

GetInspectionInterface используется для получения ICorDebugFrame или других интерфейсов, относящихся к реализации, которые компонент может использовать для глубокой проверки кадра стека.

Возвращаемый интерфейс можно использовать ТОЛЬКО для проверки целевого процесса и НИКОГДА не должен использоваться для управления выполнением (без пошагового выполнения, без точек останова, без продолжения и т. д.). Это не поддерживается и приведет к неопределенному поведению. ПРИМЕЧАНИЕ. Использование этого метода из управляемого кода не рекомендуется для повышения производительности. Маршалинг DkmStackWalkFrame между собственным и управляемым кодом является дорогостоящим. Используйте вместо него DkmRuntimeInstance.GetFrameInspectionInterface.

Ограничение расположения. Этот API должен вызываться из того же процесса, в котором целевая среда выполнения реализует пошаговое руководство по стеку или где загружаются символы. Для управляемой отладки это означает, что при отладке 64-разрядных или удаленных процессов этот API должен вызываться из компонента монитора отладки.

(Унаследовано от DkmStackWalkFrame)
GetInstructionSymbol()

Возвращает DkmInstructionSymbol для кадра стека. Если у кадра стека нет адреса инструкции (кадр с заметками) или адрес инструкции не связан с DkmModule, метод GetInstructionSymbol вернет значение NULL (S_FALSE в машинном коде).

(Унаследовано от DkmStackWalkFrame)
GetProperty(ICorDebugValue, String)

Оценивает свойство для заданного значения ICorDebugValue. Тип значения должен быть загружен DkmClrAppDomain элемента DkmStackWalkFrame, к которому вызывается этот $Name$.

Ограничение расположения. Это должно быть на удаленной стороне, так как мы передаем значение ICorDebugHandleValue.

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

(Унаследовано от DkmStackWalkFrame)
GetUnwindAddress(DkmInstructionAddress)

Возвращает адрес, представляющий расположение, если исключение должно было быть перехвачено в этом кадре.

(Унаследовано от DkmStackWalkFrame)
InterceptCurrentException(DkmExceptionInterceptActionFlags, UInt64)

InterceptCurrentException используется для очистки этого кадра, как если бы в этом кадре был обработчик исключений.

(Унаследовано от DkmStackWalkFrame)
OnSetNextStatementCompleted(DkmInstructionAddress)

OnSetNextStatementCompleted — это метод общего назначения, позволяющий компонентам очищать состояние после завершения следующей инструкции set. DkmStackWalkFrame будет кадром перед вызовом SetNextStatement.

Ограничение расположения. Как правило, этот API следует вызывать только из клиентских компонентов. Однако компонент на стороне монитора безопасно вызывает этот API, если оператор set next вызывается из обработчика событий.

(Унаследовано от DkmStackWalkFrame)
SetNextStatement(DkmInstructionAddress)

SetNextStatement перемещает IP-адрес кадра стека. Рамка стека всегда является конечной рамкой стека в определенном потоке.

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

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