DkmCustomModuleInstance Classe

Definição

' DkmCustomModuleInstance ' é usado para módulos de um ambiente de tempo de execução personalizado (não nativo ou baseado em CLR). Por exemplo, isso pode ser usado em um interpretador personalizado ou compilador just-in-time.

public ref class DkmCustomModuleInstance : Microsoft::VisualStudio::Debugger::DkmModuleInstance
[System.Runtime.InteropServices.Guid("28a2ee07-bdcf-31f8-66e9-09b958e66fe8")]
public class DkmCustomModuleInstance : Microsoft.VisualStudio.Debugger.DkmModuleInstance
[<System.Runtime.InteropServices.Guid("28a2ee07-bdcf-31f8-66e9-09b958e66fe8")>]
type DkmCustomModuleInstance = class
    inherit DkmModuleInstance
Public Class DkmCustomModuleInstance
Inherits DkmModuleInstance
Herança
Atributos

Propriedades

BaseAddress

Adicional O endereço de memória inicial do qual o módulo foi carregado. Esse valor será zero se o módulo não foi carregado em um bloco contíguo de memória.

(Herdado de DkmModuleInstance)
Connection

Isso representa uma conexão entre o monitor e o IDE. Pode ser uma conexão local se o monitor estiver em execução no mesmo processo que o IDE, ou pode ser uma conexão remota. No processo de monitor, há apenas uma conexão.

(Herdado de DkmModuleInstance)
Flags

Sinalizadores que indicam características de um DkmModuleInstance.

(Herdado de DkmModuleInstance)
FullName

Nome do módulo totalmente qualificado. Para módulos baseados em arquivo, este é o caminho completo para o módulo (por exemplo: c:\windows\system32\kernel32.dll.

(Herdado de DkmModuleInstance)
IsDisabled

Indica se esta instância do módulo foi desabilitada. Módulos desabilitados são amplamente ignorados pelo depurador. Para módulos nativos, o intervalo de endereços do módulo desabilitado é tratado como se ele não estiver mapeado. Para módulos CLR, todos os quadros desses módulos ficam ocultos da pilha de chamadas.

(Herdado de DkmModuleInstance)
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)
LoadContext

Descrição da cadeia de caracteres do contexto no qual este módulo foi carregado. por exemplo: ' Win32 ' ou ' CLR v 2.0.50727: domínio padrão '.

(Herdado de DkmModuleInstance)
LoadOrder

A contagem de inteiros do número de instâncias de módulo que foram carregadas até e incluindo este módulo. Cada instância de tempo de execução controla sua própria contagem de ordem de carregamento.

(Herdado de DkmModuleInstance)
MemoryLayout

Enumeração que indica como um módulo é apresentado na memória.

(Herdado de DkmModuleInstance)
MinidumpInfoPart

Adicional ' MinidumpInfoPart ' é usado para transmitir informações adicionais sobre módulos em um DkmProcess para um minidespejo.

(Herdado de DkmModuleInstance)
Module

Adicional A representação do manipulador de símbolo de um módulo (DkmModule) que está associado a esta instância de módulo. Esse valor é inicialmente nulo e será atribuído se e quando os símbolos estiverem associados a essa instância do módulo.

(Herdado de DkmModuleInstance)
Name

Representação curta do nome do módulo. Para módulos baseados em arquivo, esse é o nome do arquivo e a extensão (ex: kernel32.dll).

(Herdado de DkmModuleInstance)
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 DkmModuleInstance)
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 DkmModuleInstance)
Size

Adicional O número de bytes na região de memória do módulo. Esse valor será zero se o módulo não foi carregado em um bloco contíguo de memória.

(Herdado de DkmModuleInstance)
SymbolFileId

Adicional Contém as informações necessárias para localizar os símbolos para este módulo. No Win32, essas informações estão contidas no IMAGE_DEBUG_DIRECTORY.

(Herdado de DkmModuleInstance)
TagValue

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

(Herdado de DkmModuleInstance)
TimeDateStamp

Data/hora de quando o módulo carregado foi criado. Esse valor é obtido da IMAGE_NT_HEADERS do módulo carregado. A unidade de medida é um valor FILETIME, que é um valor de 64 bits que representa o número de intervalos de 100 nanossegundos desde 1º de janeiro de 1601 (UTC).

(Herdado de DkmModuleInstance)
UniqueId

Identifica exclusivamente o objeto DkmModuleInstance.

(Herdado de DkmModuleInstance)
Version

Adicional Informações de versão do arquivo.

(Herdado de DkmModuleInstance)

Métodos

ClearTransitionModuleFlag()

As instâncias de tempo de execução chamam esse método para marcar um módulo como um módulo de limite. Durante a depuração, os tempos de execução devem verificar se a etapa atingiu um módulo de limite e iniciar a depuração de arbitragem, se houver. Observe que alguns tempos de execução podem não ser capazes de honrar essa solicitação. O Dispatcher manterá uma contagem do número de vezes que FlagAsTransitionModule foi chamado. Somente quando um número correspondente de chamadas para ClearTransitionModuleFlag, o módulo não será mais considerado um módulo de transição.

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

(Herdado de DkmModuleInstance)
Create(String, String, UInt64, DkmRuntimeInstance, DkmModuleVersion, DkmSymbolFileId, DkmModuleFlags, DkmModuleMemoryLayout, UInt64, UInt32, UInt32, String, Boolean, DkmModule, DkmModuleInstance+MinidumpInfo, DkmDataItem)

Crie uma nova instância do objeto DkmCustomModuleInstance.

Esse método enviará um evento ModuleInstanceLoad.

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

Decompile()

Descompila o código de um módulo em C# e cria um novo PDB portátil com essa fonte inserida. Todos os módulos que compartilham este arquivo de símbolo começarão a usar esses símbolos atualizados.

Restrição de local: esse método pode ser chamado de um IDE.

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

(Herdado de DkmModuleInstance)
Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult>)

Descompila o código de um módulo em C# e cria um novo PDB portátil com essa fonte inserida. Todos os módulos que compartilham este arquivo de símbolo começarão a usar esses símbolos atualizados.

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: esse método pode ser chamado de um IDE.

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

(Herdado de DkmModuleInstance)
FlagAsTransitionModule()

As instâncias de tempo de execução chamam esse método para marcar um módulo como um módulo de limite. Durante a depuração, os tempos de execução devem verificar se a etapa atingiu um módulo de limite e iniciar a depuração de arbitragem, se houver. Observe que alguns tempos de execução podem não ser capazes de honrar essa solicitação. O Dispatcher manterá uma contagem do número de vezes que isso foi chamado. Somente quando um número correspondente de chamadas para ClearTransitionModuleFlag tiver sido feito, o módulo não será mais considerado um módulo de transição.

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

(Herdado de DkmModuleInstance)
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)
GetGPUDisassembly(UInt64, UInt32, Boolean, Boolean)

Obtenha a desmontagem do intervalo de endereços na instância do módulo depurador.

(Herdado de DkmModuleInstance)
GetGPUDisassemblySize()

Retorna o tamanho da desmontagem na instância do módulo depurador.

(Herdado de DkmModuleInstance)
GetNextGPUInstructionAddress(UInt64)

Retorna o endereço da próxima instrução relativa a um endereço inicial.

(Herdado de DkmModuleInstance)
GetSymbolLoadInformation()

Retorna uma cadeia de caracteres que descreve os vários locais nos quais os símbolos foram pesquisados e o resultado da verificação desse local. Essas informações são usadas para preencher as ' informações de carregamento de símbolo ' na janela módulos.

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

(Herdado de DkmModuleInstance)
GetSymbolStatusMessage(Boolean)

Obtenha uma descrição de cadeia de caracteres localizada do status atual do símbolo.

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

(Herdado de DkmModuleInstance)
IsSuppressed()

Esse método permite que um componente determine se o evento de carregamento de módulo de um módulo foi suprimido.

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

(Herdado de DkmModuleInstance)
IsTransitionModule()

Retornará true se qualquer instância de tempo de execução tiver sinalizado este módulo como um módulo de transição.

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

(Herdado de DkmModuleInstance)
IsUserCode()

Determina se um módulo é considerado código de usuário.

Restrição de local: esse método pode ser chamado de um componente IDE. A partir do Visual Studio 2013 atualização 2, também é possível chamá-lo de um componente de monitor para código gerenciado. No Visual Studio 2017 atualização 8, o CallDirection da API foi tornado ' bidirecional ' de ' normal ' e agora pode ser chamado de qualquer componente, AsyncCaller foi definido como ' true ' e CallerLocationConstraint foi definido como ' none ' de ' nomarshaling '.

Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

(Herdado de DkmModuleInstance)
IsUserCode(DkmWorkList, DkmCompletionRoutine<DkmModuleInstanceIsUserCodeAsyncResult>)

Determina se um módulo é considerado código de usuário.

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: esse método pode ser chamado de um componente IDE. A partir do Visual Studio 2013 atualização 2, também é possível chamá-lo de um componente de monitor para código gerenciado. No Visual Studio 2017 atualização 8, o CallDirection da API foi tornado ' bidirecional ' de ' normal ' e agora pode ser chamado de qualquer componente, AsyncCaller foi definido como ' true ' e CallerLocationConstraint foi definido como ' none ' de ' nomarshaling '.

Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

(Herdado de DkmModuleInstance)
OnBinaryLoaded(String)

Gerar um evento BinaryLoaded. Os componentes que implementam a interface do coletor de eventos receberão a notificação de eventos. O controle retornará assim que todos os componentes forem notificados.

Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

(Herdado de DkmModuleInstance)
OnBinaryReloadOpportunity()

Gerar um evento BinaryReloadOpportunity. Os componentes que implementam a interface do coletor de eventos receberão a notificação de eventos. O controle retornará assim que todos os componentes forem notificados.

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 12 atualização 2 (DkmApiVersion. VS12Update2).

(Herdado de DkmModuleInstance)
OnModuleModified()

Esse método é chamado quando um módulo é alterado devido ao EnC ou código emitido dinamicamente.

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 DkmModuleInstance)
OnSymbolsLoaded(DkmModule, Boolean)

Esse método é invocado por monitores de depuração base em resposta a uma chamada para IDkmModuleSymbolsLoaded. RaiseSymbolsLoadedEvent. Esse método deve ser invocado a partir do thread de eventos ou do thread de solicitação como parte de um recarregamento. Os monitores de depuração base devem alternar de forma síncrona para o thread do evento, pausar o processo de destino e invocar OnSymbolsLoaded.

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

(Herdado de DkmModuleInstance)
OnSymbolsUpdated(DkmModule)

Gerar um evento ModuleSymbolsUpdated. Os componentes que implementam a interface do coletor de eventos receberão a notificação de eventos. O controle retornará assim que todos os componentes forem notificados.

(Herdado de DkmModuleInstance)
ReadSymbols()

Esse método é invocado por manipuladores de símbolo para ler símbolos para DkmModuleInstances cujos símbolos residem na memória do depurador.

(Herdado de DkmModuleInstance)
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)
SetDataItem<T>(DkmDataCreationDisposition, T)

Coloque um novo item no contêiner de dados.

(Herdado de DkmDataContainer)
SetDisabled(Boolean)

Atualiza o status desabilitado em um módulo. Esse método só pode ser chamado a partir de um evento ModuleInstanceLoad. Ao desabilitar um módulo, é comum também suprimir o evento de carregamento do módulo.

(Herdado de DkmModuleInstance)
SetModule(DkmModule, Boolean)

Esse método é invocado por um provedor de símbolos para associar um DkmModule a um DkmModuleInstance e disparar um evento ModuleSymbolsLoaded. Ele pode ser chamado apenas uma vez para um objeto DkmModuleInstance. Chamar essa API estabelecerá a associação DkmModule < - > DkmModuleInstance, bem como fará com que um evento ModuleSymbolsLoaded seja gerado.

(Herdado de DkmModuleInstance)
TryLoadBinary()

Tentativa de carregar um binário que falhou anteriormente ao carregar usando caminhos de símbolo atualizados.

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

(Herdado de DkmModuleInstance)
TryLoadBinary(DkmWorkList, DkmCompletionRoutine<DkmTryLoadBinaryAsyncResult>)

Tentativa de carregar um binário que falhou anteriormente ao carregar usando caminhos de símbolo atualizados.

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 IDE (nível de componente > 100.000).

(Herdado de DkmModuleInstance)
TryLoadSymbols()

Chamado para iniciar o carregamento de símbolos para DkmModuleInstances cujos símbolos não foram encontrados quando o módulo foi carregado.

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

(Herdado de DkmModuleInstance)
TryLoadSymbols(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>)

Chamado para iniciar o carregamento de símbolos para DkmModuleInstances cujos símbolos não foram encontrados quando o módulo foi carregado.

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 IDE (nível de componente > 100.000).

(Herdado de DkmModuleInstance)
Unload()

Marque o objeto Unload como descarregado e notifique os componentes que implementam a interface do coletor de eventos. O controle retornará assim que todos os componentes forem notificados.

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

(Herdado de DkmModuleInstance)

Aplica-se a