DkmInstructionSymbol Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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). |