Compartilhar via


DkmModule Classe

Definição

A classe DkmModule representa um pacote de código (ex: dll ou exe) que é ou uma vez foi carregado em um ou mais processos. A classe DkmModule é o objeto central para as APIs de símbolo e é 1:1 com a notação do manipulador de símbolos do que é carregado. Se um pacote de código for carregado em três processos diferentes (ou no mesmo processo, mas com três endereços base diferentes ou três domínios de aplicativo diferentes), mas o manipulador de símbolos considerar todos eles idênticos, haverá apenas um objeto de módulo.

public ref class DkmModule : Microsoft::VisualStudio::Debugger::DkmDataContainer
[System.Runtime.InteropServices.Guid("9fdf7d9f-e5ab-b363-6282-1da170173343")]
public class DkmModule : Microsoft.VisualStudio.Debugger.DkmDataContainer
[<System.Runtime.InteropServices.Guid("9fdf7d9f-e5ab-b363-6282-1da170173343")>]
type DkmModule = class
    inherit DkmDataContainer
Public Class DkmModule
Inherits DkmDataContainer
Herança
Herança
Atributos

Propriedades

CompilerId

LanguageId/VendorId para o compilador que produziu todo o código neste módulo. Este será Guid.Empty/Guid.Empty se o módulo puder conter uma mistura de idiomas. Isso quase sempre será Guid.Empty/Guid.Empty para módulos baseados em PDB. Ele geralmente é usado por linguagens dinâmicas para evitar viagens de ida e volta de rede para descobrir o idioma de cada símbolo.

Connection

[Opcional] Para módulos em que os símbolos são carregados remotamente, a propriedade de conexão é usada para determinar de onde a Conexão se originou. Caso contrário, será NULL.

FilePath

[Opcional] Se especificado, ele contém o caminho completo para o arquivo de símbolo que apoia o DkmModule (por exemplo: c:\myproj\bin\Debug\myproj.pdb).

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

Flags

Sinalizadores que indicam características desse objeto DkmModule.

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

Id

Par guid usado para identificar exclusivamente uma instância de DkmModule específica.

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, pois, sem sincronização, o status retornado pode não ser mais preciso após a leitura.

(Herdado de DkmDataContainer)
Name

Nome do módulo.

SymbolsConnection

[Opcional] Se não for nulo, isso especificará uma conexão com um processo de trabalho em que os símbolos para esse DkmModule são processados. Isso será nulo se os símbolos forem carregados no processo IDE ou se forem carregados no depurador remoto (DkmModule.Connection não é nulo).

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

Métodos

Create(DkmModuleId, String, DkmCompilerId, DkmTransportConnection, DkmDataItem)

Cria um novo objeto DkmModule, que representa os símbolos de um ou mais módulos carregados (instâncias de módulo). Esses objetos são criados por provedores de símbolos. Depois que o objeto DkmModule for criado, os provedores de símbolos deverão chamar DkmModuleInstance.SetModule para associar dkmModuleInstance e DkmModule juntos.

Esse método enviará um evento ModuleCreate.

Create(DkmModuleId, String, DkmCompilerId, DkmTransportConnection, DkmWorkerProcessConnection, String, DkmDataItem)

Cria um novo objeto DkmModule, que representa os símbolos de um ou mais módulos carregados (instâncias de módulo). Esses objetos são criados por provedores de símbolos. Depois que o objeto DkmModule for criado, os provedores de símbolos deverão chamar DkmModuleInstance.SetModule para associar dkmModuleInstance e DkmModule juntos.

Esse método enviará um evento ModuleCreate.

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

Create(DkmModuleId, String, DkmCompilerId, DkmTransportConnection, DkmWorkerProcessConnection, String, DkmModuleSymbolFlags, DkmDataItem)

Cria um novo objeto DkmModule, que representa os símbolos de um ou mais módulos carregados (instâncias de módulo). Esses objetos são criados por provedores de símbolos. Depois que o objeto DkmModule for criado, os provedores de símbolos deverão chamar DkmModuleInstance.SetModule para associar dkmModuleInstance e DkmModule juntos.

Esse método enviará um evento ModuleCreate.

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

EnumSymbolsDocuments()

Enumera os documentos de símbolo do arquivo de símbolos associado ao módulo.

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

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

EnumSymbolsDocuments(DkmWorkList, DkmCompletionRoutine<DkmEnumSymbolsDocumentsAsyncResult>)

Enumera os documentos de símbolo do arquivo de símbolos associado ao 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).

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

FindDocuments(DkmSourceFileId)

Retorna objetos de documento de parâmetros de pesquisa contidos na consulta de documento. Se o arquivo de símbolo não contiver uma referência a este documento, o objeto de documento retornado será NULL (S_FALSE código de retorno nativamente). Os objetos de documento retornados devem ser explicitamente fechados pelo chamador quando o chamador terminar de usar o documento.

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

FindDocuments(DkmWorkList, DkmSourceFileId, DkmCompletionRoutine<DkmFindDocumentsAsyncResult>)

Retorna objetos de documento de parâmetros de pesquisa contidos na consulta de documento. Se o arquivo de símbolo não contiver uma referência a este documento, o objeto de documento retornado será NULL (S_FALSE código de retorno nativamente). Os objetos de documento retornados devem ser explicitamente fechados pelo chamador quando o chamador terminar de usar o documento.

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).

FindModule(DkmModuleId)

Localize um objeto DkmModule. Se nenhum objeto com a chave de entrada fornecida estiver presente, FindModule falhará.

GetAcceleratorTagTableSize(UInt32)

Obtém um endereço de C++ AMP para um registro.

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

GetCompilerOptions()

Esse método retorna sinalizadores do compilador do módulo de GPU especificado.

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)
GetEntryPointSymbols()

GetEntryPointSymbols é usado pelo gerenciador de pontos de interrupção para localizar os símbolos de ponto de entrada no executável de inicialização. Para código gerenciado, esse símbolo é definido usando ISymUnmanagedWriter::SetUserEntryPoint. Para código nativo, esse símbolo é encontrado procurando a função 'main' (main, WinMain etc.). Um terceiro pode substituir o ponto de entrada implementando seu próprio provedor de símbolos ou implementando IDkmEntryPointQuery.

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

GetExpensiveHashValue(DkmSourceFileId, DkmHashAlgorithmId)

Recupera um valor de hash 'caro' do DkmSourceFileId fornecido.

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

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

GetFirstMethodInFirstDocument()

Retorna o primeiro método no primeiro documento.

GetFunctionInfo(DkmWorkList, String, DkmCompletionRoutine<DkmGetFunctionInfoAsyncResult>)

Pesquisa os símbolos de um módulo para uma função com o nome especificado. Retorna o RVA e o tamanho se ele for encontrado.

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

GetFunctionInfo(String)

Pesquisa os símbolos de um módulo para uma função com o nome especificado. Retorna o RVA e o tamanho se ele for encontrado.

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

GetFunctionLabels(UInt64)

Obtém o nome do símbolo para o RVA.

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

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

GetFunctionRva(UInt64)

Obtém o RVA da função que contém o RVA especificado.

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

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

GetInstructionOffsetForRva(UInt32)

GetInstructionOffsetForRva é usado por componentes para consultar o provedor de símbolos para executar deslocamento de instrução e tradução de RVA para DPC++.

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

GetLinkerFixupRecords()

Busca os registros de correção do vinculador para o módulo.

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

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

GetMethodSymbolStoreData(DkmClrMethodId)

Retorna os escopos dentro de um método . Sempre haverá pelo menos um escopo.

GetMethodSymbolStoreData(DkmWorkList, DkmClrMethodId, DkmCompletionRoutine<DkmGetMethodSymbolStoreDataAsyncResult>)

Retorna os escopos dentro de um método . Sempre haverá pelo menos um escopo.

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.

GetMethodSymbolStoreDataPreRemap(DkmClrMethodId, Int32)

Retorna os escopos dentro de um método . Sempre haverá pelo menos um escopo.

GetMethodSymbolStoreDataPreRemap(DkmWorkList, DkmClrMethodId, DkmCompletionRoutine<DkmGetMethodSymbolStoreDataPreRemapAsyncResult>)

Retorna os escopos dentro de um método . Sempre haverá pelo menos um escopo.

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.

GetModuleInstances()

Um DkmModule é a representação do manipulador de símbolos de um módulo e não está associado a nenhum processo, conexão ou instância de runtime. Esse método retorna todos os DkmModuleInstances que são mapeados para este DkmModule. Um DkmModule pode ser associado a zero instâncias no caso de todos os módulos serem descarregados. Nesse caso, GetModuleInstances retornará uma matriz vazia (S_FALSE código de retorno nativamente).

GetModules()

GetModules enumera todos os objetos DkmModule criados.

GetPointerToHLSLRegister(Int32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, Boolean)

Obtém um endereço de C++ AMP para um registro.

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

GetPublicSymbolByNameCallback(DkmWorkList, String, DkmCompletionRoutine<DkmGetPublicSymbolByNameCallbackAsyncResult>)

Retornar o RVA de um S_PUBLIC32 para um nome específico por cadeia de caracteres.

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.

GetPublicSymbolByNameCallback(String)

Retornar o RVA de um S_PUBLIC32 para um nome específico por cadeia de caracteres.

GetRegisterRelativeSymbolName(DkmWorkList, UInt32, Int32, UInt32, DkmProcessorArchitecture, DkmCompletionRoutine<DkmGetRegisterRelativeSymbolNameAsyncResult>)

Obtém o nome do símbolo de um valor relativo de registro.

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).

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

GetRegisterRelativeSymbolName(UInt32, Int32, UInt32, DkmProcessorArchitecture)

Obtém o nome do símbolo de um valor relativo de registro.

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

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

GetScriptDocuments()

GetScriptDocuments enumera os elementos DkmScriptDocument deste objeto DkmModule.

GetSourceLinkData(DkmModuleInstance)

Retorna o conteúdo dos dados de fluxo de link de origem para um módulo se o fluxo existir.

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

Essa API foi introduzida no Visual Studio 17 RTM (DkmApiVersion.VS17RTM).

GetSourceLinkData(DkmWorkList, DkmModuleInstance, DkmCompletionRoutine<DkmGetSourceLinkDataAsyncResult>)

Retorna o conteúdo dos dados de fluxo de link de origem para um módulo se o fluxo existir.

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).

Essa API foi introduzida no Visual Studio 17 RTM (DkmApiVersion.VS17RTM).

GetSourceLinkInfo(String)

Retorna informações de SourceLink do arquivo de símbolo para o caminho do arquivo solicitado.

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

Essa API foi introduzida no Visual Studio 15 RTM (DkmApiVersion.VS15RTM).

GetSourceServerData(DkmModuleInstance)

Retorna o conteúdo dos dados de fluxo do servidor de origem para um módulo se o fluxo existir.

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

GetSourceServerData(DkmWorkList, DkmModuleInstance, DkmCompletionRoutine<DkmGetSourceServerDataAsyncResult>)

Retorna o conteúdo dos dados de fluxo do servidor de origem para um módulo se o fluxo existir.

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).

GetSymbolFilePath()

Retorna o caminho para o arquivo de símbolo que apoia um objeto DkmModule.

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

GetSymbolFilePath(DkmWorkList, DkmCompletionRoutine<DkmGetSymbolFilePathAsyncResult>)

Retorna o caminho para o arquivo de símbolo que apoia um objeto DkmModule.

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).

GetSymbolFileRawBytes()

GetSymbolFileRawBytes é usado para recuperar os bytes brutos de um arquivo de símbolo do lado remoto. Atualmente, há suporte apenas para PDBs portáteis dinâmicos. Isso retornará no máximo 10 MB.

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

Essa API foi introduzida no Visual Studio 14 Atualização 3 Micro Atualização (DkmApiVersion.VS14Update3MicroUpdate).

GetSymbolInterface(Guid)

GetSymbolInterface é usado para obter uma interface COM bruta para um repositório de símbolos. Isso é útil para os chamadores que acham que a abstração de símbolo apresentada pelo depurador é muito restritiva para suas necessidades ou simplesmente indesejável devido à forma como seu componente é implementado.

Restrição de local: com exceção dos símbolos gerenciados, esse método deve ser chamado do mesmo processo em que o provedor de símbolos abriu o arquivo de símbolo. Para arquivos PDB nativos, isso significa que a API deve ser chamada do processo de IDE. Para símbolos gerenciados, um subconjunto da API do provedor de símbolos é fornecido em ambos os lados da conexão remota.

GetSymbolNameForRVA(DkmWorkList, UInt32, DkmCompletionRoutine<DkmGetSymbolNameForRVAAsyncResult>)

Obtém o nome do símbolo para o RVA.

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).

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

GetSymbolNameForRVA(UInt32, UInt64)

Obtém o nome do símbolo para o RVA.

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

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

GetTokenSymbolStoreAttribute(DkmWorkList, Int32, Boolean, String, DkmCompletionRoutine<DkmGetTokenSymbolStoreAttributeAsyncResult>)

Obtém um atributo personalizado com base no nome. Para não ser confundido com atributos personalizados de metadados, esses atributos são mantidos no repositório de símbolos.

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.

GetTokenSymbolStoreAttribute(Int32, Boolean, String)

Obtém um atributo personalizado com base no nome. Para não ser confundido com atributos personalizados de metadados, esses atributos são mantidos no repositório de símbolos.

IsValidAcceleratorTag(UInt32, UInt32)

Verifique se a marca de ponteiro do acelerador é válida.

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

OnModuleSymbolsReplaced()

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

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

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

Coloque um novo item no contêiner de dados.

(Herdado de DkmDataContainer)
SetPointerToHLSLRegister(UInt64, Int32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

Define um endereço C++ AMP para um registro.

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

SymbolsHaveEmbeddedDocuments()

Verifica se os símbolos associados ao módulo têm documentos inseridos.

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

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

TranslateAcceleratorTagByIP(UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

Traduza a marca do ponteiro do acelerador em atributos de registro HLSL.

TranslateAcceleratorTagByRva(UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

Traduza a marca de ponteiro do acelerador em atributos de registro HLSL usando endereço virtual relativo.

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

UndecorateName(String, UInt32)

Cancela a codificação de um nome de símbolo.

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

Aplica-se a