Compartilhar via


DkmCustomInstructionSymbol Classe

Definição

DkmCustomInstructionSymbol é usado para representar uma instrução executável em qualquer tipo de ambiente de runtime personalizado.

public ref class DkmCustomInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmCustomInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
class DkmCustomInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[System.Runtime.InteropServices.Guid("c154cde9-82a7-6e6f-f4f4-8dbb776da068")]
public class DkmCustomInstructionSymbol : Microsoft.VisualStudio.Debugger.Symbols.DkmInstructionSymbol
[<System.Runtime.InteropServices.Guid("c154cde9-82a7-6e6f-f4f4-8dbb776da068")>]
type DkmCustomInstructionSymbol = class
    inherit DkmInstructionSymbol
Public Class DkmCustomInstructionSymbol
Inherits DkmInstructionSymbol
Herança
DkmCustomInstructionSymbol
Atributos

Propriedades

AdditionalData

[Opcional] Dados adicionais específicos do runtime associados a um endereço. Esses dados não serão usados ao comparar endereços.

EntityId

[Opcional] Essa é uma estrutura de dados específica do runtime que os runtimes personalizados podem usar para armazenar o local desta instrução. Junto com 'offset', esse campo será usado para comparar duas instruções do mesmo módulo.

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

Junto com 'EntityId', o campo 'Offset' é usado para identificar exclusivamente uma instrução. Isso pode conter um valor de ponteiro (como um ponteiro para a instrução) ou um deslocamento do início da função/módulo.

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)
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, Guid, ReadOnlyCollection<Byte>, UInt64, ReadOnlyCollection<Byte>)

Create uma nova instância de objeto DkmCustomInstructionSymbol.

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