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