Share via


DkmInstructionSymbol Classe

Definição

DkmInstructionSymbol representa um método no processo de destino.

Classes derivadas: DkmClrInstructionSymbol, DkmClrNcInstructionSymbol, DkmCustomInstructionSymbol, DkmNativeInstructionSymbol, DkmScriptInstructionSymbol

public ref class DkmInstructionSymbol abstract
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmInstructionSymbol abstract
[Windows::Foundation::Metadata::WebHostHidden]
class DkmInstructionSymbol abstract
[System.Runtime.InteropServices.Guid("c55d7b4d-246f-0e5a-e37e-c9d9f2d996c6")]
public abstract class DkmInstructionSymbol
[<System.Runtime.InteropServices.Guid("c55d7b4d-246f-0e5a-e37e-c9d9f2d996c6")>]
type DkmInstructionSymbol = class
Public MustInherit Class DkmInstructionSymbol
Herança
DkmInstructionSymbol
Derivado
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.

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.

TagValue

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

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.

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

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

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.

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

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

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

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

GetGPUInstructionMetadataCallback(DkmInstructionAddress, DkmInstructionSymbol)

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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.

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.

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

Aplica-se a