DkmClrInstructionAddress 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.
DkmClrInstructionAddress é usado para endereços no código gerenciado.
Classes derivadas: DkmClrNcInstructionAddress
public ref class DkmClrInstructionAddress : Microsoft::VisualStudio::Debugger::DkmInstructionAddress
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmClrInstructionAddress : Microsoft::VisualStudio::Debugger::DkmInstructionAddress
[Windows::Foundation::Metadata::WebHostHidden]
class DkmClrInstructionAddress : Microsoft::VisualStudio::Debugger::DkmInstructionAddress
[System.Runtime.InteropServices.Guid("ef7a9773-03a1-0aab-55bb-ee6b870e6246")]
public class DkmClrInstructionAddress : Microsoft.VisualStudio.Debugger.DkmInstructionAddress
[<System.Runtime.InteropServices.Guid("ef7a9773-03a1-0aab-55bb-ee6b870e6246")>]
type DkmClrInstructionAddress = class
inherit DkmInstructionAddress
Public Class DkmClrInstructionAddress
Inherits DkmInstructionAddress
- Herança
- Derivado
- Atributos
Propriedades
CPUInstructionPart |
[Opcional] CPUInstructionPart fornece o endereço que a CPU executará. Isso sempre é fornecido para instruções nativas. Ele pode ser fornecido para CLR ou endereços personalizados, dependendo de como o objeto de endereço foi criado. (Herdado de DkmInstructionAddress) |
ILOffset |
ILOffset é o índice da instrução IL que esse endereço representa. Esse valor pode ser definido como UInt32.MaxValue para uma instrução que está dentro do método fornecido, mas não está vinculado a uma instrução IL específica. Isso é usado para instruções nativas clr que não são mapeadas para uma instrução IL. (ICorDebugILFrame::GetIP indica MAPPING_UNMAPPED_ADDRESS). |
MethodId |
O par de versão/token para esse método. |
ModuleInstance |
O módulo que contém o InstructionPointer. |
NativeOffset |
Para o .NET Framework padrão, NativeOffset é um deslocamento de bytes relativo ao início do método em que a instrução da CPU pode ser encontrada. Para fins desse valor, o método deve ser tratado como um bloco contíguo de bytes. Se o método não tiver sido compilado just-in-time ou se esse endereço estiver sendo usado para se referir puramente ao endereço IL, NativeOffset será definido como UInt32.MaxValue. Para módulos de .NET Framework compilados nativos, esse valor é o RVA da instrução nativa no módulo. |
Process |
O DkmProcess representa um processo de destino que está sendo depurado. O depurador depura processos, portanto, essa é a unidade básica de depuração. Um DkmProcess pode representar um processo do sistema ou um processo virtual, como minidumps. (Herdado de DkmInstructionAddress) |
RuntimeInstance |
Representa uma instância CLR em execução em um processo de destino. |
TagValue |
DkmInstructionAddress é uma classe base abstrata. Essa enumeração indica de qual classe derivada esse objeto é uma instância do . (Herdado de DkmInstructionAddress) |
Métodos
CompareTo(DkmInstructionAddress) |
Compara dois endereços de instrução e retorna um valor que indica se um é menor que, igual a ou maior que o outro. Os endereços devem ser do mesmo módulo. (Herdado de DkmInstructionAddress) |
Create(DkmClrRuntimeInstance, DkmClrModuleInstance, DkmClrMethodId, UInt32, UInt32, DkmInstructionAddress+CPUInstruction) |
Create uma nova instância de objeto DkmClrInstructionAddress. |
DecodeAsyncStateMachineAttribute() |
Obtém o tipo máquina de estado assíncrono e o token de método do método MoveNext nesse tipo. 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 17 RTM (DkmApiVersion.VS17RTM). |
GetCorFunction() |
Fornece acesso direto ao objeto ICorDebugFunction, que avaliadores de expressão ou outros componentes podem usar para inspecionar o domínio do aplicativo. A interface retornada só pode ser usada para inspecionar o processo de destino e NUNCA deve ser usada para controlar a execução (sem etapas, nenhum ponto de interrupção, nenhuma continuação etc. Isso não tem suporte e resultará em um comportamento indefinido. Restrição de local: a API deve ser chamada de um componente Monitor (nível < de componente 100.000). |
GetCurrentCPUAddress() |
Resolve um DkmInstructionAddress para uma instrução de CPUAddress. Esse é o mapeamento reverso de ResolveCPUInstructionAddress. Atualmente, essa API só tem suporte por objetos CLR DkmRuntimeInstance. Restrição de local: essa API geralmente deve ser chamada no cliente, mas pode ser chamada no servidor para traduzir endereços CLR (mas não compilados nativamente). (Herdado de DkmInstructionAddress) |
GetCurrentCPUAddress(DkmWorkList, DkmCompletionRoutine<DkmGetCurrentCPUAddressAsyncResult>) |
Resolve um DkmInstructionAddress para uma instrução de CPUAddress. Esse é o mapeamento reverso de ResolveCPUInstructionAddress. Atualmente, essa API só tem suporte por objetos CLR DkmRuntimeInstance. 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: essa API geralmente deve ser chamada no cliente, mas pode ser chamada no servidor para traduzir endereços CLR (mas não compilados nativamente). (Herdado de DkmInstructionAddress) |
GetNativeCodeMap(DkmStackWalkFrame) |
Fornece o mapa de como esse método foi compilado para código nativo. |
GetNonUserCodeMetadataFlags() |
Obtém status de código não usuário para este endereço de instrução. |
GetNonUserCodeMetadataFlags(DkmWorkList, DkmCompletionRoutine<DkmGetNonUserCodeMetadataFlagsAsyncResult>) |
Obtém status de código não usuário para este endereço de instrução. 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. |
GetSymbol() |
Converta um DkmInstructionAddress em um DkmInstructionSymbol. Se o DkmInstructionAddress não estiver em um DkmModule, GetSymbol retornará nulo (S_FALSE no código nativo). (Herdado de DkmInstructionAddress) |
IsInSameFunction(DkmInstructionAddress) |
Compara dois endereços de instrução e determina se eles estão dentro da mesma função. Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000). (Herdado de DkmInstructionAddress) |
IsUserCode(DkmWorkList, DkmCompletionRoutine<DkmIsUserCodeAsyncResult>) |
Determina se um determinado endereço de instrução é o código do usuário ou não. 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: observação: com a Atualização 8 do Visual Studio 2017, o CallDirection da API foi tornado 'Bidirecional' de 'Normal' e agora pode ser chamado de qualquer componente. Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion.VS12RTM). (Herdado de DkmInstructionAddress) |
IsUserCodeWithoutCheckingLineInfo() |
Método auxiliar implementado pelo DM gerenciado e usado pelo shim EE para determinar se um método é código do usuário enquanto estamos andando pilhas de retorno assíncronas. Não queremos usar o método IsUserCode() regular porque esse método faz uma viagem de ida e volta para o provedor de símbolos para ver se há informações de linha. Para evitar isso, usamos esse método para que o DM gerenciado faça suas outras verificações. Em seguida, quando o shim EE retornar ao provedor de símbolos, o provedor de símbolos marcar para obter informações de linha. Isso permite que toda a pilha de retorno gerenciada seja calculada em uma viagem de ida e volta para o lado remoto, sem a necessidade de conversar extra para frente e para trás apenas para determinar se os quadros de pilha de retorno são código do usuário ou nã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 12 RTM (DkmApiVersion.VS12RTM). |