DkmRuntimeHardwareDataBreakpoint Classe

Definição

Ponto de interrupção de dados de nível baixo que é definido usando os registros de ponto de interrupção de hardware da CPU.

public ref class DkmRuntimeHardwareDataBreakpoint : Microsoft::VisualStudio::Debugger::Breakpoints::DkmRuntimeBreakpoint
[System.Runtime.InteropServices.Guid("3346103d-7c30-4ee9-c3dd-e8e7e9f66a5e")]
public class DkmRuntimeHardwareDataBreakpoint : Microsoft.VisualStudio.Debugger.Breakpoints.DkmRuntimeBreakpoint
[<System.Runtime.InteropServices.Guid("3346103d-7c30-4ee9-c3dd-e8e7e9f66a5e")>]
type DkmRuntimeHardwareDataBreakpoint = class
    inherit DkmRuntimeBreakpoint
Public Class DkmRuntimeHardwareDataBreakpoint
Inherits DkmRuntimeBreakpoint
Herança
DkmRuntimeHardwareDataBreakpoint
Atributos

Propriedades

Access

Máscara de motivos pelos quais o ponto de interrupção de dados deve ser acionado. Por exemplo, se ' write ' estiver definido, o ponto de interrupção será acionado quando o local da memória for gravado.

Address

Endereço para parar. Esse endereço deve ser adequadamente alinhado para corresponder ao parâmetro de tamanho (exemplo: se o tamanho for 4, o endereço deverá ser um múltiplo de 4).

IsUnloaded

Retornará true se um evento ' Unloaded ' tiver sido gerado para este objeto (exemplo: DkmThread:: Unload é chamado) ou se o objeto foi 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 na instrução após sua leitura.

(Herdado de DkmDataContainer)
Process

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

(Herdado de DkmRuntimeBreakpoint)
RuntimeInstance

A classe DkmRuntimeInstance representa um ambiente de execução que é carregado em um DkmProcess e que contém o código a ser depurado.

(Herdado de DkmRuntimeBreakpoint)
Size

Especifica o tamanho do local, em bytes, para monitorar o acesso. Em um processador baseado em x86, esse parâmetro pode ser 1, 2 ou 4. No entanto, se o acesso for DkmDataAccessStopMask.Exegraciosos, o tamanho deverá ser 1. Em um processador baseado em x64, esse parâmetro pode ser 1, 2, 4 ou 8. No entanto, se o acesso for igual a acesso for DkmDataAccessStopMask.Exegraciosos, o tamanho deverá ser 1. Em um processador baseado em Itanium, esse parâmetro pode ser qualquer potência de 2, de 1 a 0x80000000.

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 é proveniente do AD7 AL (ex: ponto de interrupção do usuário ou de 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 depuração).

(Herdado de DkmRuntimeBreakpoint)
TagValue

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

(Herdado de DkmRuntimeBreakpoint)
Thread

Adicional Thread no qual esse ponto de interrupção deve ser acionado. Se for NULL, o ponto de interrupção será acionado em todos os threads.

(Herdado de DkmRuntimeBreakpoint)
UniqueId

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

(Herdado de DkmRuntimeBreakpoint)

Métodos

ClearConditions()

Limpe qualquer condição compilada/de avaliação associada ao DkmRuntimeBreakpoint especificado. Esse método é chamado implicitamente quando o DkmRuntimeBreakpoint é fechado.

(Herdado de DkmRuntimeBreakpoint)
ClearConditions(DkmWorkList, DkmCompletionRoutine<DkmClearRuntimeBreakpointConditionsAsyncResult>)

Limpe qualquer condição compilada/de avaliação associada ao DkmRuntimeBreakpoint especificado. Esse método é chamado implicitamente quando o DkmRuntimeBreakpoint é fechado.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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.

(Herdado de DkmRuntimeBreakpoint)
ClearHitCountCondition(DkmBreakpointHitCountCondition, Int32)

Limpa a condição de contagem de pressionamentos em um ponto de interrupção.

(Herdado de DkmRuntimeBreakpoint)
ClearHitCountCondition(DkmWorkList, DkmBreakpointHitCountCondition, DkmCompletionRoutine<DkmClearRuntimeBreakpointHitCountConditionAsyncResult>)

Limpa a condição de contagem de pressionamentos em um ponto de interrupção.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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.

(Herdado de DkmRuntimeBreakpoint)
Close()

Fecha a instância do objeto de ponto de interrupção. Isso liberará todos os recursos associados a esse objeto em todos os componentes. Se o ponto de interrupção estiver habilitado no momento, ele será desabilitado implicitamente.

Os objetos DkmRuntimeBreakpoint são fechados automaticamente quando seu objeto DkmRuntimeInstance associado é fechado.

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

(Herdado de DkmRuntimeBreakpoint)
Create(DkmRuntimeInstance, Guid, DkmThread, UInt64, DkmDataAccessStopMask, Int32, DkmDataItem)

Cria um novo objeto DkmRuntimeHardwareDataBreakpoint. Após a criação, o ponto de interrupção está no estado desabilitado e deve ser habilitado explicitamente. O chamador é responsável por fechar o objeto criado depois que eles são concluídos.

Disable()

Desabilita um ponto de interrupção. A desabilitação de um ponto de interrupção é normalmente implementada modificando o estado do processo de destino para que o ponto de interrupção não seja mais acionado. Por exemplo, remover um ' Int3 ' inserido anteriormente do fluxo de instrução. Se o ponto de interrupção já estiver desabilitado, essa operação não terá efeito. Além desse método, um ponto de interrupção é desabilitado implicitamente quando é fechado.

Se vários pontos de interrupção forem definidos na mesma instrução, desabilitar um ponto de interrupção não afetará os outros pontos de interrupção definidos nessa instrução.

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

(Herdado de DkmRuntimeBreakpoint)
Disable(DkmWorkList, DkmCompletionRoutine<DkmDisableRuntimeBreakpointAsyncResult>)

Desabilita um ponto de interrupção. A desabilitação de um ponto de interrupção é normalmente implementada modificando o estado do processo de destino para que o ponto de interrupção não seja mais acionado. Por exemplo, remover um ' Int3 ' inserido anteriormente do fluxo de instrução. Se o ponto de interrupção já estiver desabilitado, essa operação não terá efeito. Além desse método, um ponto de interrupção é desabilitado implicitamente quando é fechado.

Se vários pontos de interrupção forem definidos na mesma instrução, desabilitar um ponto de interrupção não afetará os outros pontos de interrupção definidos nessa instrução.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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.

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

(Herdado de DkmRuntimeBreakpoint)
Enable()

Habilita um ponto de interrupção. Os pontos de interrupção começam a ser desabilitados inicialmente, portanto, esse método deve ser chamado antes que o ponto de interrupção possa ser definido. A habilitação de um ponto de interrupção normalmente é implementada no monitor de depuração modificando o estado do processo de destino. Por exemplo, inserir uma instrução ' Int3 ' no fluxo de código. Se o ponto de interrupção já estiver habilitado, essa operação não terá efeito.

Depois que um ponto de interrupção tiver sido habilitado, o monitor de depuração gerará um evento RuntimeBreakpoint para esse objeto DkmRuntimeBreakpoint sempre que a condição de gatilho (ex.: instrução de destino for executada) for atendida. Vários DkmRuntimeBreakpoints podem ser definidos na mesma instrução. Nesse caso, o monitor de depuração irá gerar um evento RuntimeBreakpoint diferente para cada objeto de ponto de interrupção. Da mesma forma, se uma etapa for concluída e um ponto de interrupção for concluído na mesma instrução, o monitor de depuração irá disparar ambos os eventos.

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

(Herdado de DkmRuntimeBreakpoint)
Enable(DkmWorkList, DkmCompletionRoutine<DkmEnableRuntimeBreakpointAsyncResult>)

Habilita um ponto de interrupção. Os pontos de interrupção começam a ser desabilitados inicialmente, portanto, esse método deve ser chamado antes que o ponto de interrupção possa ser definido. A habilitação de um ponto de interrupção normalmente é implementada no monitor de depuração modificando o estado do processo de destino. Por exemplo, inserir uma instrução ' Int3 ' no fluxo de código. Se o ponto de interrupção já estiver habilitado, essa operação não terá efeito.

Depois que um ponto de interrupção tiver sido habilitado, o monitor de depuração gerará um evento RuntimeBreakpoint para esse objeto DkmRuntimeBreakpoint sempre que a condição de gatilho (ex.: instrução de destino for executada) for atendida. Vários DkmRuntimeBreakpoints podem ser definidos na mesma instrução. Nesse caso, o monitor de depuração irá gerar um evento RuntimeBreakpoint diferente para cada objeto de ponto de interrupção. Da mesma forma, se uma etapa for concluída e um ponto de interrupção for concluído na mesma instrução, o monitor de depuração irá disparar ambos os eventos.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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.

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

(Herdado de DkmRuntimeBreakpoint)
EvaluateConditionAndSelectThread(DkmThread)

O monitor de depuração de base solicita que o processador de condição de ponto de interrupção seja avaliado em todos os threads interrompidos e seleciona o thread cuja condição é verdadeira.

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

Essa API foi introduzida no Visual Studio 11 atualização 1 (DkmApiVersion. VS11FeaturePack1).

(Herdado de DkmRuntimeBreakpoint)
EvaluateConditionAndSelectThread(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmEvaluateConditionAndSelectThreadAsyncResult>)

O monitor de depuração de base solicita que o processador de condição de ponto de interrupção seja avaliado em todos os threads interrompidos e seleciona o thread cuja condição é verdadeira.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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 de monitor (nível de componente < 100.000).

Essa API foi introduzida no Visual Studio 11 atualização 1 (DkmApiVersion. VS11FeaturePack1).

(Herdado de DkmRuntimeBreakpoint)
GetCompiledCondition(DkmInstructionAddress, DkmBreakpointConditionOperator)

Chame novamente chamado do processador condição do ponto de interrupção para o Gerenciador de ponto de interrupção (ou outro componente que chama SetCompiledConditionPending) quando a condição do ponto de interrupção precisar ser compilada novamente para um novo endereço de instrução.

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

(Herdado de DkmRuntimeBreakpoint)
GetDataItem<T>()

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

(Herdado de DkmDataContainer)
GetHitCountConditionStatus(DkmWorkList, DkmCompletionRoutine<DkmGetRuntimeBreakpointHitCountConditionAsyncResult>)

Obtém o valor da contagem de sucessos atual para um DkmRuntimeBreakpoint que tem uma condição de contagem de pressionamentos. Essa função falhará se o DkmRuntimeBreakpoint não tiver uma condição de contagem de acesso no momento.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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.

(Herdado de DkmRuntimeBreakpoint)
GetHitCountConditionStatus(Int32)

Obtém o valor da contagem de sucessos atual para um DkmRuntimeBreakpoint que tem uma condição de contagem de pressionamentos. Essa função falhará se o DkmRuntimeBreakpoint não tiver uma condição de contagem de acesso no momento.

(Herdado de DkmRuntimeBreakpoint)
OnBreakpointConditionFailed(DkmILFailureReason)

Chame novamente chamado do processador condição do ponto de interrupção para o Gerenciador de ponto de interrupção quando uma condição de ponto de interrupção encontrar um erro de tempo de execução.

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

Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion. VS14RTM).

(Herdado de DkmRuntimeBreakpoint)
OnBreakpointConditionFailed(DkmThread, String, DkmILFailureReason)

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

Essa API foi introduzida no Visual Studio 16 atualização 3 (DkmApiVersion. VS16Update3).

(Herdado de DkmRuntimeBreakpoint)
OnBreakpointConditionFailed(String)

Chame novamente chamado do processador condição do ponto de interrupção para o Gerenciador de ponto de interrupção quando uma condição de ponto de interrupção encontrar um erro de tempo de execução.

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

(Herdado de DkmRuntimeBreakpoint)
OnDataBreakpointHit(DkmThread, Boolean, String)

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

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

(Herdado de DkmRuntimeBreakpoint)
OnError(DkmBreakpointMessageLevel, String)

Esse método será chamado quando um ponto de interrupção for inválido e precisar informar a interface do usuário.

Restrição de local: isso pode ser chamado de qualquer componente.

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

(Herdado de DkmRuntimeBreakpoint)
OnHit(DkmThread, Boolean)

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

(Herdado de DkmRuntimeBreakpoint)
OnHitWithError(DkmThread, Boolean, DkmBreakpointMessageLevel, String)

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

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

(Herdado de DkmRuntimeBreakpoint)
RemoveDataItem<T>()

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

(Herdado de DkmDataContainer)
RequestBreakpointEventOnModifiedThread(DkmThread)

O processador de condição de ponto de interrupção decide não interromper o thread determinado, mas outro thread da mesma distorção, portanto, o processador de condição de ponto de interrupção instrui o monitor de depuração base a enviar novamente o evento de ponto de interrupção no outro thread.

(Herdado de DkmRuntimeBreakpoint)
RequestBreakpointEventOnModifiedThread(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmRequestBreakpointEventOnModifiedThreadAsyncResult>)

O processador de condição de ponto de interrupção decide não interromper o thread determinado, mas outro thread da mesma distorção, portanto, o processador de condição de ponto de interrupção instrui o monitor de depuração base a enviar novamente o evento de ponto de interrupção no outro thread.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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.

(Herdado de DkmRuntimeBreakpoint)
SetCompiledConditionPending()

Esse método é semelhante a SetCompiledCondition, mas é usado nos casos em que o endereço de instrução não é conhecido com antecedência, como pontos de interrupção de dados. Nesses casos, quando o ponto de interrupção é obtido pela primeira vez em um endereço específico, uma chamada será feita ao cliente de ponto de interrupção para obter uma nova condição compilada para esse endereço (IDkmBreakpointConditionProcessorClient. GetCompiledCondition). Isso é usado para idiomas que são avaliados no processo IDE (ex.: C++).

(Herdado de DkmRuntimeBreakpoint)
SetCompiledConditionPending(DkmWorkList, DkmCompletionRoutine<DkmSetCompiledConditionPendingAsyncResult>)

Esse método é semelhante a SetCompiledCondition, mas é usado nos casos em que o endereço de instrução não é conhecido com antecedência, como pontos de interrupção de dados. Nesses casos, quando o ponto de interrupção é obtido pela primeira vez em um endereço específico, uma chamada será feita ao cliente de ponto de interrupção para obter uma nova condição compilada para esse endereço (IDkmBreakpointConditionProcessorClient. GetCompiledCondition). Isso é usado para idiomas que são avaliados no processo IDE (ex.: C++).

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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.

(Herdado de DkmRuntimeBreakpoint)
SetDataItem<T>(DkmDataCreationDisposition, T)

Coloque um novo item no contêiner de dados.

(Herdado de DkmDataContainer)
SetEvaluationCondition(DkmBreakpointCondition, String)

Define uma condição de ponto de interrupção que é avaliada no computador de destino. Isso é usado para linguagens .NET.

(Herdado de DkmRuntimeBreakpoint)
SetEvaluationCondition(DkmWorkList, DkmBreakpointCondition, DkmCompletionRoutine<DkmSetEvaluationConditionAsyncResult>)

Define uma condição de ponto de interrupção que é avaliada no computador de destino. Isso é usado para linguagens .NET.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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.

(Herdado de DkmRuntimeBreakpoint)
SetHitCountCondition(DkmBreakpointHitCountCondition, Int32)

Inicializar ou atualizar a condição/valor de contagem de acesso em um ponto de interrupção. Se o mesmo ponto de interrupção tiver uma condição de nível de idioma e uma condição de contagem de acesso, a condição de nível de idioma será aplicada primeiro. A condição será removida implicitamente se o DkmRuntimeBreakpoint for fechado.

(Herdado de DkmRuntimeBreakpoint)
SetHitCountCondition(DkmWorkList, DkmBreakpointHitCountCondition, Int32, DkmCompletionRoutine<DkmSetRuntimeBreakpointHitCountConditionAsyncResult>)

Inicializar ou atualizar a condição/valor de contagem de acesso em um ponto de interrupção. Se o mesmo ponto de interrupção tiver uma condição de nível de idioma e uma condição de contagem de acesso, a condição de nível de idioma será aplicada primeiro. A condição será removida implicitamente se o DkmRuntimeBreakpoint for fechado.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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.

(Herdado de DkmRuntimeBreakpoint)
Test()

Determina se o DkmRuntimeBreakpoint fornecido pode ser habilitado. Isso é usado de dentro da caixa de diálogo pontos de interrupção para validar os pontos de interrupção antes que a caixa de diálogo seja fechada.

(Herdado de DkmRuntimeBreakpoint)
Test(DkmWorkList, DkmCompletionRoutine<DkmTestRuntimeBreakpointAsyncResult>)

Determina se o DkmRuntimeBreakpoint fornecido pode ser habilitado. Isso é usado de dentro da caixa de diálogo pontos de interrupção para validar os pontos de interrupção antes que a caixa de diálogo seja fechada.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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.

(Herdado de DkmRuntimeBreakpoint)

Implantações explícitas de interface

IDisposable.Dispose()

A ser adicionado.

(Herdado de DkmRuntimeBreakpoint)

Aplica-se a