Поделиться через


DkmPendingFunctionBreakpoint Класс

Определение

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

public ref class DkmPendingFunctionBreakpoint : Microsoft::VisualStudio::Debugger::Breakpoints::DkmPendingBreakpoint
[System.Runtime.InteropServices.Guid("b463b9e3-5b9f-e0e4-f0e9-4f38c63ef443")]
public class DkmPendingFunctionBreakpoint : Microsoft.VisualStudio.Debugger.Breakpoints.DkmPendingBreakpoint
[<System.Runtime.InteropServices.Guid("b463b9e3-5b9f-e0e4-f0e9-4f38c63ef443")>]
type DkmPendingFunctionBreakpoint = class
    inherit DkmPendingBreakpoint
Public Class DkmPendingFunctionBreakpoint
Inherits DkmPendingBreakpoint
Наследование
Наследование
DkmPendingFunctionBreakpoint
Атрибуты

Свойства

CompilerId

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

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

Имя функции для привязки.

IsBarrier

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

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

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

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

Строка функции для привязки.

ModuleName

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

Process

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

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

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

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

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

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

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

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

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

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

Методы

Close()

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

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

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

(Унаследовано от DkmPendingBreakpoint)
Create(DkmProcess, Guid, DkmCompilerId, DkmThread, Boolean, String, String, UInt32, DkmDataItem)

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

Disable(DkmWorkList, DkmCompletionRoutine<DkmDisablePendingBreakpointAsyncResult>)

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

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

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

(Унаследовано от DkmPendingBreakpoint)
Enable(DkmWorkList, DkmCompletionRoutine<DkmEnablePendingBreakpointAsyncResult>)

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

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

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

(Унаследовано от DkmPendingBreakpoint)
Enroll(DkmWorkList, DkmCompletionRoutine<DkmEnrollPendingBreakpointAsyncResult>)

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

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

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

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

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

(Унаследовано от DkmPendingBreakpoint)
GetDataItem<T>()

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

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

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

(Унаследовано от DkmPendingBreakpoint)
OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, Byte, String)

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

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

(Унаследовано от DkmPendingBreakpoint)
OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, String)

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

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

(Унаследовано от DkmPendingBreakpoint)
OnBreakpointMessage(DkmBreakpointMessageLevel, String)

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

(Унаследовано от DkmPendingBreakpoint)
OnBreakpointUnbound(DkmBoundBreakpoint[], DkmBreakpointUnboundReason)

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

(Унаследовано от DkmPendingBreakpoint)
OnHitWithError(DkmThread, Boolean, DkmBreakpointMessageLevel, String)

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

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

(Унаследовано от DkmPendingBreakpoint)
RemoveDataItem<T>()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IDisposable.Dispose()

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

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

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