DkmPendingBreakpoint Класс

Определение

Объект точки останова высокого уровня, привязанный к конструкции уровня пользователя (например, исходному файлу, имени функции), которая может сопоставляться с нулевыми или более конструкциями уровня кода (DkmBoundBreakpoint) и может отслеживаться с течением времени.

Производные классы: DkmPendingAddressBreakpoint, DkmPendingAddressNameBreakpoint, DkmPendingDataBreakpoint, DkmPendingFileLineBreakpoint, DkmPendingFunctionBreakpoint

public ref class DkmPendingBreakpoint abstract : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("c9e1ffa4-f943-14bc-5566-00a802dfc66f")]
public abstract class DkmPendingBreakpoint : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("c9e1ffa4-f943-14bc-5566-00a802dfc66f")>]
type DkmPendingBreakpoint = class
    inherit DkmDataContainer
    interface IDisposable
Public MustInherit Class DkmPendingBreakpoint
Inherits DkmDataContainer
Implements IDisposable
Наследование
DkmPendingBreakpoint
Наследование
DkmPendingBreakpoint
Производный
Атрибуты
Реализации

Свойства

CompilerId

Определяет исходный язык (например, C#) и поставщика компилятора (например, Майкрософт), к которым должна быть привязана точка останова. Значение LanguageId можно оставить как Guid.Empty, чтобы указать, что точка останова должна быть привязана ко всем языкам. "VendorId" почти всегда остается как Guid.Empty, что указывает, что известен только язык (не компилятор).

IsBarrier

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

IsUnloaded

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

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

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

SourceId

Идентифицирует источник объекта . SourceIds используются для включения фильтрации в сценариях, когда несколько компонентов могут создавать экземпляры класса. Например, идентификаторы источника можно использовать для определения того, поступает ли точка останова из AD7 AL (например, точка останова пользователя или другая точка останова, видимая на уровне SDM), а не точка останова, которая может быть создана другим компонентом (например, внутренней точкой останова, используемой для пошагового выполнения).

TagValue

DkmPendingBreakpoint — это абстрактный базовый класс. Это перечисление указывает, какой производный класс является экземпляром этого объекта.

Thread

[Необязательно] Поток, в котором должна запускаться эта точка останова. Если значение равно null, точка останова срабатывает во всех потоках.

UniqueId

Guid, который однозначно идентифицирует этот объект точки останова, ожидающий выполнения.

Методы

Close()

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

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

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

Disable(DkmWorkList, DkmCompletionRoutine<DkmDisablePendingBreakpointAsyncResult>)

Отключите объект точки останова, чтобы он больше не запускал. Если ожидающая точка останова уже привязана, все связанные точки останова будут неявно отключены.

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

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

Enable(DkmWorkList, DkmCompletionRoutine<DkmEnablePendingBreakpointAsyncResult>)

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

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

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

Enroll(DkmWorkList, DkmCompletionRoutine<DkmEnrollPendingBreakpointAsyncResult>)

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

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

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

GetBoundBreakpoints()

GetBoundBreakpoints перечисляет элементы DkmBoundBreakpoint этого объекта DkmPendingBreakpoint.

GetDataItem<T>()

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

(Унаследовано от DkmDataContainer)
OnBreakpointBound(DkmBoundBreakpoint[])

Уведомление от диспетчера точек останова о привязке точки останова. В случае установленных пользователем точек останова это уведомление будет отправлено в AD7 AL, а AD7 AL запустит IDebugBreakpointBoundEvent2 в пользовательском интерфейсе отладчика Visual Studio.

OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, Byte, String)

Уведомление от диспетчера точек останова о состоянии привязки точки останова.

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

OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, String)

Уведомление от диспетчера точек останова о состоянии привязки точки останова.

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

OnBreakpointMessage(DkmBreakpointMessageLevel, String)

Уведомление от диспетчера точек останова о состоянии привязки точки останова.

OnBreakpointUnbound(DkmBoundBreakpoint[], DkmBreakpointUnboundReason)

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

OnHitWithError(DkmThread, Boolean, DkmBreakpointMessageLevel, String)

Создайте событие BreakpointHitWithError. Компоненты, реализующие интерфейс приемника событий, получат уведомление о событии. Этот метод поставить событие в очередь, а элемент управления немедленно вернется вызывающей объекту.

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

RemoveDataItem<T>()

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

(Унаследовано от DkmDataContainer)
SetCondition(DkmWorkList, DkmBreakpointCondition, DkmCompletionRoutine<DkmSetPendingBreakpointConditionAsyncResult>)

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

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

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

SetDataItem<T>(DkmDataCreationDisposition, T)

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

(Унаследовано от DkmDataContainer)
SetHitCountCondition(DkmWorkList, DkmBreakpointHitCountCondition, DkmCompletionRoutine<DkmSetPendingBreakpointHitCountConditionAsyncResult>)

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

Обратите внимание, что условие счетчика попаданий действует независимо на каждой связанной точке останова, а не агрегируется вместе в ожидающей точке останова. Например, если для счетчика попаданий настроена остановка при попадании 2, а точка останова — в двух отдельных расположениях, каждое из которых попадает в точку останова один раз, пользовательский интерфейс по-прежнему не перейдет в режим останова, так как ни один из отдельных привязанных точек останова не достиг дважды.

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

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

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

IDisposable.Dispose()

Объект точки останова высокого уровня, привязанный к конструкции уровня пользователя (например, исходному файлу, имени функции), которая может сопоставляться с нулевыми или более конструкциями уровня кода (DkmBoundBreakpoint) и может отслеживаться с течением времени.

Производные классы: DkmPendingAddressBreakpoint, DkmPendingAddressNameBreakpoint, DkmPendingDataBreakpoint, DkmPendingFileLineBreakpoint, DkmPendingFunctionBreakpoint

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