DkmPendingBreakpoint Classe

Definição

Objeto de ponto de interrupção de alto nível que está vinculado a um constructo de nível de usuário (por exemplo: arquivo de origem, nome da função) que pode ser mapeado para zero ou mais constructos de nível de código (DkmBoundBreakpoint) e que podem ser rastreados ao longo do tempo.

Classes derivadas: 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
Herança
DkmPendingBreakpoint
Herança
DkmPendingBreakpoint
Derivado
Atributos
Implementações

Propriedades

CompilerId

Identifica a linguagem de origem (por exemplo: C#) e o fornecedor do compilador (por exemplo: Microsoft) com o qual o ponto de interrupção deve ser associado. 'LanguageId' pode ser deixado como Guid.Empty para indicar que o ponto de interrupção deve ser associado a todos os idiomas. 'VendorId' quase sempre é deixado como Guid.Empty, o que indica que apenas o idioma é conhecido (não o compilador).

IsBarrier

Indica se esse ponto de interrupção é uma barreira que deve ser definida no hardware, isso funciona para depuração de GPU.

IsUnloaded

Retornará true se um evento 'descarregado' tiver sido gerado para este objeto (exemplo: DkmThread::Unload for chamado) ou se o objeto tiver sido fechado. Observe que o cuidado deve ser usado ao verificar esse status como, sem sincronização, o status retornado pode não ser mais preciso após a leitura.

(Herdado de DkmDataContainer)
Process

O DkmProcess representa um processo de destino que está sendo depurado. O depurador depura processos, portanto, essa é a unidade básica de depuração. Um DkmProcess pode representar um processo do sistema ou um processo virtual, como minidumps.

SourceId

Identifica a origem de um objeto . SourceIds são usados para habilitar a filtragem em cenários quando vários componentes podem estar criando instâncias de uma classe. Por exemplo, as IDs de origem podem ser usadas para determinar se um ponto de interrupção vem do AD7 AL (por exemplo: ponto de interrupção do usuário ou outro ponto de interrupção visível no nível do SDM) em vez de um ponto de interrupção que pode ser criado por outro componente (por exemplo, um ponto de interrupção interno usado para pisar).

TagValue

DkmPendingBreakpoint é uma classe base abstrata. Essa enumeração indica de qual classe derivada esse objeto é uma instância do .

Thread

[Opcional] Thread no qual esse ponto de interrupção deve ser acionado. Se for nulo, o ponto de interrupção será acionado em todos os threads.

UniqueId

Guid que identifica exclusivamente esse objeto de ponto de interrupção pendente.

Métodos

Close()

Fecha uma instância de objeto DkmPendingBreakpoint. Isso liberará todos os recursos associados a esse objeto em todos os componentes. Isso inclui recursos em limites de marshalling gerenciados/nativos ou computador.

Os objetos DkmPendingBreakpoint são fechados automaticamente quando o objeto DkmProcess associado é fechado.

Esse método só pode ser chamado pelo componente que criou o objeto .

Disable(DkmWorkList, DkmCompletionRoutine<DkmDisablePendingBreakpointAsyncResult>)

Desabilite o objeto de ponto de interrupção pendente para que ele não seja mais acionado. Se o ponto de interrupção pendente já estiver associado, todos os pontos de interrupção associados serão desabilitados implicitamente.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará depois que o item de trabalho for acrescentado. O processamento real do item de trabalho é assíncrono. O chamador será notificado de que a solicitação foi concluída por meio da rotina de conclusão.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

Enable(DkmWorkList, DkmCompletionRoutine<DkmEnablePendingBreakpointAsyncResult>)

Define o estado do ponto de interrupção pendente para que as instâncias do ponto de interrupção que se associam no futuro sejam atingidas. Se o ponto de interrupção pendente ainda não estiver registrado, esse método também registrará o ponto de interrupção. Registrar um ponto de interrupção pendente consiste em tentar resolve o ponto de interrupção em relação a todos os módulos carregados no momento e adicionar o ponto de interrupção à lista de pontos de interrupção que o gerenciador de pontos de interrupção associará em qualquer carga de módulo. Se o ponto de interrupção pendente já estiver registrado, os pontos de interrupção associados existentes não serão habilitados automaticamente. Os pontos de interrupção associados devem ser habilitados separadamente.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará depois que o item de trabalho for acrescentado. O processamento real do item de trabalho é assíncrono. O chamador será notificado de que a solicitação foi concluída por meio da rotina de conclusão.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

Enroll(DkmWorkList, DkmCompletionRoutine<DkmEnrollPendingBreakpointAsyncResult>)

Esse método registrará o ponto de interrupção pendente sem habilitá-lo. O resultado é um ponto de interrupção que o gerente de ponto de interrupção tentará resolve, mas que não será acionado. Registrar um ponto de interrupção pendente consiste em tentar resolve o ponto de interrupção em relação a todos os módulos carregados no momento e adicionar o ponto de interrupção à lista de pontos de interrupção que o gerenciador de pontos de interrupção associará em qualquer carga de módulo.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará depois que o item de trabalho for acrescentado. O processamento real do item de trabalho é assíncrono. O chamador será notificado de que a solicitação foi concluída por meio da rotina de conclusão.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

GetBoundBreakpoints()

GetBoundBreakpoints enumera os elementos DkmBoundBreakpoint deste objeto DkmPendingBreakpoint.

GetDataItem<T>()

Obtém a instância de 'T' que foi adicionada a essa instância de contêiner. Se esse contêiner não contiver um 'T', essa função retornará nulo.

(Herdado de DkmDataContainer)
OnBreakpointBound(DkmBoundBreakpoint[])

Notificação do gerenciador do ponto de interrupção quando um ponto de interrupção foi associado. No caso de pontos de interrupção definidos pelo usuário, essa notificação será enviada para o AD7 AL e o AD7 AL disparará um IDebugBreakpointBoundEvent2 para a interface do usuário do Depurador do Visual Studio.

OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, Byte, String)

Notificação do gerenciador de ponto de interrupção sobre o status de associar o ponto de interrupção.

Essa API foi introduzida no Visual Studio 17 Atualização 6 (DkmApiVersion.VS17Update6).

OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, String)

Notificação do gerenciador de ponto de interrupção sobre o status de associar o ponto de interrupção.

Essa API foi introduzida no Visual Studio 17 Atualização 4 (DkmApiVersion.VS17Update4).

OnBreakpointMessage(DkmBreakpointMessageLevel, String)

Notificação do gerenciador de ponto de interrupção sobre o status de associar o ponto de interrupção.

OnBreakpointUnbound(DkmBoundBreakpoint[], DkmBreakpointUnboundReason)

Notificação do gerenciador de ponto de interrupção que indica que o ponto de interrupção especificado está sendo desvinculado.

OnHitWithError(DkmThread, Boolean, DkmBreakpointMessageLevel, String)

Gerar um evento BreakpointHitWithError. Os componentes que implementam a interface do coletor de eventos receberão a notificação de evento. Esse método enfileirará o evento e o controle retornará imediatamente ao chamador.

Essa API foi introduzida no Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

RemoveDataItem<T>()

Remova a instância de 'T' desse contêiner. Geralmente, é desnecessário chamar esse método, pois um contêiner de dados será esvaziado automaticamente quando o objeto for fechado.

(Herdado de DkmDataContainer)
SetCondition(DkmWorkList, DkmBreakpointCondition, DkmCompletionRoutine<DkmSetPendingBreakpointConditionAsyncResult>)

Inicialize, atualize ou desmarque a condição no nível do idioma em todos os pontos de interrupção associados desse ponto de interrupção de condição. Se o mesmo ponto de interrupção tiver uma condição no nível do idioma e uma condição de contagem de ocorrências, a condição no nível do idioma será aplicada primeiro.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará depois que o item de trabalho for acrescentado. O processamento real do item de trabalho é assíncrono. O chamador será notificado de que a solicitação foi concluída por meio da rotina de conclusão.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

SetDataItem<T>(DkmDataCreationDisposition, T)

Coloque um novo item no contêiner de dados.

(Herdado de DkmDataContainer)
SetHitCountCondition(DkmWorkList, DkmBreakpointHitCountCondition, DkmCompletionRoutine<DkmSetPendingBreakpointHitCountConditionAsyncResult>)

Inicialize, atualize ou desmarque a condição de contagem de ocorrências em todos os pontos de interrupção associados desse ponto de interrupção pendente. Se o mesmo ponto de interrupção tiver uma condição no nível do idioma e uma condição de contagem de ocorrências, a condição no nível do idioma será aplicada primeiro.

Observe que a condição de contagem de ocorrências atua independentemente em cada ponto de interrupção associado, em vez de ser agregada no ponto de interrupção pendente. Por exemplo, se a contagem de ocorrências estiver configurada para parar no hit nº 2 e o ponto de interrupção para dois locais separados, cada um deles atingir o ponto de interrupção uma vez, a interface do usuário ainda não terá entrado no modo de interrupção porque nenhum ponto de interrupção associado individual atingiu duas vezes.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará depois que o item de trabalho for acrescentado. O processamento real do item de trabalho é assíncrono. O chamador será notificado de que a solicitação foi concluída por meio da rotina de conclusão.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

Implantações explícitas de interface

IDisposable.Dispose()

Objeto de ponto de interrupção de alto nível que está vinculado a um constructo de nível de usuário (por exemplo: arquivo de origem, nome da função) que pode ser mapeado para zero ou mais constructos de nível de código (DkmBoundBreakpoint) e que podem ser rastreados ao longo do tempo.

Classes derivadas: DkmPendingAddressBreakpoint, DkmPendingAddressNameBreakpoint, DkmPendingDataBreakpoint, DkmPendingFileLineBreakpoint, DkmPendingFunctionBreakpoint

Aplica-se a