Compartilhar via


DkmNativeInstructionSymbol Classe

Definição

DkmNativeInstructionSymbol representa uma instrução nativa dentro de um módulo do processo de destino. DkmNativeInstructionSymbol são 1:1 com as instruções nativas subjacentes. Portanto, se houver duas instanciações de modelo de um método (por exemplo: MyMethod<CString> e MyMethod<int>) se o vinculador mesclar as duas instanciações em uma única função por meio da dobragem COMDAT, os métodos serão idênticos. Se o vinculador não conseguir mesclar as duas instanciações, ambas as funções no nível do usuário aparecerão como um DkmNativeInstructionSymbol.

public ref class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[System.Runtime.InteropServices.Guid("0eb834ca-c591-449c-66ad-e016093977d2")]
public class DkmNativeInstructionSymbol : Microsoft.VisualStudio.Debugger.Symbols.DkmInstructionSymbol
[<System.Runtime.InteropServices.Guid("0eb834ca-c591-449c-66ad-e016093977d2")>]
type DkmNativeInstructionSymbol = class
    inherit DkmInstructionSymbol
Public Class DkmNativeInstructionSymbol
Inherits DkmInstructionSymbol
Herança
DkmNativeInstructionSymbol
Atributos

Propriedades

Module

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 que todos eles são idênticos, haverá apenas um objeto de módulo.

(Herdado de DkmInstructionSymbol)
RuntimeType

A ID do runtime identifica o ambiente de execução de uma determinada parte do código. As IDs de runtime são usadas pelo dispatcher para decidir para qual monitor expedir. Observe que a ordenação dos Guids de ID de runtime é um pouco significativa, pois isso determina qual runtime recebe a primeira chance durante a arbitragem. Portanto, se quiser declarar uma nova instância de runtime criada no CLR, a ID do runtime deverá ser menor que DkmRuntimeId.Clr.

(Herdado de DkmInstructionSymbol)
RVA

A RVA do InstructionPointer no Módulo.

TagValue

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

(Herdado de DkmInstructionSymbol)

Métodos

Bind(DkmModuleInstance)

Associa um símbolo de instrução a uma instância de módulo específica. Um símbolo de instrução é conectado a um DkmModule em vez de um DkmModuleInstance, portanto, ele não está associado a um determinado processo, domínio do aplicativo ou endereço base do módulo.

(Herdado de DkmInstructionSymbol)
Create(DkmModule, UInt32)

Create uma nova instância de objeto DkmNativeInstructionSymbol.

GetAlternateSourcePosition(DkmSourcePositionFlags)

Retorna uma posição alternativa do arquivo de origem (por exemplo: example.cs, linha 12) para este símbolo de instrução. Atualmente, isso é usado em cenários de mapa de origem para retornar o local de origem original (não mapeado). Essa API será chamada pela interface do usuário do depurador nos casos em que o local de origem primário não puder ser encontrado.

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 12 Atualização 3 (DkmApiVersion.VS12Update3).

(Herdado de DkmInstructionSymbol)
GetBasicInfo(DkmWorkList, DkmModuleInstance, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetBasicSymbolInfoAsyncResult>)

Calcula de forma assíncrona informações básicas de símbolo para um determinado DkmInstructionSymbol.

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

(Herdado de DkmInstructionSymbol)
GetCompilerId(DkmInspectionSession)

Retorna a ID do compilador (LanguageId/VendorId) de um determinado símbolo.

Para o leitor do Microsoft PDB, se o PDB tiver sido criado por um compilador que usou ISymUnmanagedWriter, o leitor do PDB poderá determinar o DkmCompilerId correto do par LanguageId/VendorId passado de ISymUnmanagedWriter.DefineDocument.

Se o PDB tiver sido criado por um compilador que não usou ISymUnmanagedWriter, o leitor do PDB poderá obter o DkmCompilerId dos registros PDB S_COMPILE*. Para que isso funcione, o compilador deve primeiro emitir o registro S_COMPILE* para cada compilador. O compilador precisa ter certeza de preencher corretamente o valor de enumeração de linguagem e a cadeia de caracteres do compilador. O compilador deve garantir que a cadeia de caracteres do compilador seja suficientemente específica para ser usada para selecionar um avaliador de expressão; É recomendável incluir um nome de empresa. Depois de emitir o par Enum/Name, a configuração do avaliador de expressão deve registrar esse par com o depurador. Para fazer isso, o avaliador de expressão deve definir essa chave do Registro: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% e definir o VendorId/LanguageId.

(Herdado de DkmInstructionSymbol)
GetCompilerId(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetCompilerIdAsyncResult>)

Retorna a ID do compilador (LanguageId/VendorId) de um determinado símbolo.

Para o leitor do Microsoft PDB, se o PDB tiver sido criado por um compilador que usou ISymUnmanagedWriter, o leitor do PDB poderá determinar o DkmCompilerId correto do par LanguageId/VendorId passado de ISymUnmanagedWriter.DefineDocument.

Se o PDB tiver sido criado por um compilador que não usou ISymUnmanagedWriter, o leitor do PDB poderá obter o DkmCompilerId dos registros PDB S_COMPILE*. Para que isso funcione, o compilador deve primeiro emitir o registro S_COMPILE* para cada compilador. O compilador precisa ter certeza de preencher corretamente o valor de enumeração de linguagem e a cadeia de caracteres do compilador. O compilador deve garantir que a cadeia de caracteres do compilador seja suficientemente específica para ser usada para selecionar um avaliador de expressão; É recomendável incluir um nome de empresa. Depois de emitir o par Enum/Name, a configuração do avaliador de expressão deve registrar esse par com o depurador. Para fazer isso, o avaliador de expressão deve definir essa chave do Registro: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% e definir o VendorId/LanguageId.

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

(Herdado de DkmInstructionSymbol)
GetCurrentStatementRange()

Esse método retorna o intervalo de deslocamento il que contém o deslocamento il atual, conforme especificado no endereço de instrução.

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

(Herdado de DkmInstructionSymbol)
GetDisassemblyLabel(DkmInspectionSession)

Retorne o nome do símbolo, pois ele deve aparecer na janela de desmontagem. Para o código do Microsoft C++, isso se baseia no nome do símbolo público.

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

(Herdado de DkmInstructionSymbol)
GetEmbeddedDocument()

Retorna o documento inserido que contém esse símbolo. Retorna S_FALSE se o documento inserido não 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 15 Atualização 5 (DkmApiVersion.VS15Update5).

(Herdado de DkmInstructionSymbol)
GetGPUInstructionMetadataCallback(DkmInstructionAddress, DkmInstructionSymbol)

Esse método retorna informações de endereço para o monitor de depuração de GPU.

(Herdado de DkmInstructionSymbol)
GetInlineFramesCount(DkmBasicSymbolInfoRequestFlags)

Retorna o número de quadros embutidos no símbolo de instrução 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 16 RTM (DkmApiVersion.VS16RTMPreview).

(Herdado de DkmInstructionSymbol)
GetInlineFramesCount(DkmWorkList, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetInlineFramesCountAsyncResult>)

Retorna o número de quadros embutidos no símbolo de instrução fornecido.

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

(Herdado de DkmInstructionSymbol)
GetInlineSourcePosition(DkmStackWalkFrame, Boolean)

Retorna a posição do arquivo de origem (por exemplo: example.cs, linha 12) desse símbolo de instrução no número de quadro embutido especificado. Se esse símbolo de instrução não estiver associado a um arquivo de origem, será retornado nulo (S_FALSE código de retorno nativamente).

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

(Herdado de DkmInstructionSymbol)
GetInlineSourcePosition(DkmWorkList, DkmStackWalkFrame, DkmCompletionRoutine<DkmGetInlineSourcePositionAsyncResult>)

Retorna a posição do arquivo de origem (por exemplo: example.cs, linha 12) desse símbolo de instrução no número de quadro embutido especificado. Se esse símbolo de instrução não estiver associado a um arquivo de origem, será retornado nulo (S_FALSE código de retorno nativamente).

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 15 RTM (DkmApiVersion.VS15RTM).

(Herdado de DkmInstructionSymbol)
GetNativeInstructionMetadataCallback(DkmInstructionAddress)

Retorna informações de endereço para o monitor de depuração nativo.

GetNoSourceRanges()

Consulta o provedor de símbolos para determinar os intervalos de instruções que não correspondem a nenhuma instrução de origem do usuário e são usados pelo monitor de depuração base para sempre percorrer durante a etapa.

(Herdado de DkmInstructionSymbol)
GetSourcePosition(DkmSourcePositionFlags, DkmInspectionSession, Boolean)

Retorna a posição do arquivo de origem (por exemplo: example.cs, linha 12) deste símbolo de instrução. Se esse símbolo de instrução não estiver associado a um arquivo de origem, será retornado nulo (S_FALSE código de retorno nativamente).

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

(Herdado de DkmInstructionSymbol)
GetSourcePosition(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionAsyncResult>)

Retorna a posição do arquivo de origem (por exemplo: example.cs, linha 12) deste símbolo de instrução. Se esse símbolo de instrução não estiver associado a um arquivo de origem, será retornado nulo (S_FALSE código de retorno nativamente).

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

(Herdado de DkmInstructionSymbol)
GetSourcePositionCallback(DkmSourcePositionFlags, DkmInspectionSession, Boolean)

Retorna a posição do arquivo de origem (por exemplo: example.cs, linha 12) deste símbolo de instrução. Se esse símbolo de instrução não estiver associado a um arquivo de origem, será retornado nulo (S_FALSE código de retorno nativamente).

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

(Herdado de DkmInstructionSymbol)
GetSourcePositionCallback(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionCallbackAsyncResult>)

Retorna a posição do arquivo de origem (por exemplo: example.cs, linha 12) deste símbolo de instrução. Se esse símbolo de instrução não estiver associado a um arquivo de origem, será retornado nulo (S_FALSE código de retorno nativamente).

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

(Herdado de DkmInstructionSymbol)
GetSteppingNativeInstructionMetadata(DkmModuleInstance, DkmInstructionAddress)

Chamado pelo DM nativo para buscar dados sobre uma instrução que é usada para decidir como essa instrução deve ser intensificada.

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

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

GetSteppingRanges(DkmModuleInstance, DkmInstructionAddress, DkmSteppingRangeBoundary, Boolean)

Consulta o provedor de símbolos para determinar os intervalos de instruções que o monitor de depuração base deve percorrer para implementar uma etapa.

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

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

GetSteppingRanges(DkmSteppingRangeBoundary, Boolean)

Consulta o provedor de símbolos para determinar os intervalos de instruções que o monitor de depuração base deve percorrer para implementar uma etapa.

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

(Herdado de DkmInstructionSymbol)
GetSteppingRanges(DkmWorkList, DkmModuleInstance, DkmInstructionAddress, DkmSteppingRangeBoundary, Boolean, DkmCompletionRoutine<DkmGetSteppingRangesAsyncResult>)

Consulta o provedor de símbolos para determinar os intervalos de instruções que o monitor de depuração base deve percorrer para implementar uma etapa.

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

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

GetSteppingRanges(DkmWorkList, DkmSteppingRangeBoundary, Boolean, DkmCompletionRoutine<DkmGetSteppingRangesAsyncResult>)

Consulta o provedor de símbolos para determinar os intervalos de instruções que o monitor de depuração base deve percorrer para implementar uma etapa.

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

(Herdado de DkmInstructionSymbol)
GetUserCodeSourcePositionCallback(DkmInspectionSession)

Retorna a posição do arquivo de origem (por exemplo: example.cs, linha 12) deste símbolo de instrução. Se esse símbolo de instrução não estiver associado a um arquivo de origem ou não estiver no código do usuário, será retornado nulo (E_INSTRUCTION_NO_SOURCE código de retorno).

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

(Herdado de DkmInstructionSymbol)
GetUserCodeSourcePositionCallback(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetUserCodeSourcePositionCallbackAsyncResult>)

Retorna a posição do arquivo de origem (por exemplo: example.cs, linha 12) deste símbolo de instrução. Se esse símbolo de instrução não estiver associado a um arquivo de origem ou não estiver no código do usuário, será retornado nulo (E_INSTRUCTION_NO_SOURCE código de retorno).

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

(Herdado de DkmInstructionSymbol)
HasEmbeddedDocument()

Testa se o símbolo fornecido tem um documento inserido. Documentos inseridos são quando um arquivo de origem (por exemplo, main.cs) é inserido dentro do arquivo de símbolo (por exemplo, example.pdb).

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 Atualização 8 (DkmApiVersion.VS15Update8).

(Herdado de DkmInstructionSymbol)
HasLineInfo()

Consulta o provedor de símbolos para determinar se temos informações de linha. Usado pelo monitor de depuração para decidir se o local pode ser considerado código do usuário.

Restrição de local: para símbolos comuns, pode ser chamada de qualquer componente. Para símbolos dinâmicos, só pode ser chamado no lado do servidor.

(Herdado de DkmInstructionSymbol)
HasLineInfo(DkmWorkList, DkmCompletionRoutine<DkmHasLineInfoAsyncResult>)

Consulta o provedor de símbolos para determinar se temos informações de linha. Usado pelo monitor de depuração para decidir se o local pode ser considerado código do usuário.

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: para símbolos comuns, pode ser chamada de qualquer componente. Para símbolos dinâmicos, só pode ser chamado no lado do servidor.

(Herdado de DkmInstructionSymbol)
IsHiddenCode(DkmWorkList, DkmInspectionSession, DkmInstructionAddress, DkmCompletionRoutine<DkmIsHiddenCodeAsyncResult>)

Retornará se este símbolo de instrução estiver em código oculto. Por exemplo, no código gerenciado, o número de linha 0xfeefee marca uma linha de origem como oculta.

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

(Herdado de DkmInstructionSymbol)

Aplica-se a