DkmClrRuntimeInstance 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.
Representa uma instância CLR em execução em um processo de destino.
Classes derivadas: DkmClrNcRuntimeInstance
public ref class DkmClrRuntimeInstance : Microsoft::VisualStudio::Debugger::DkmRuntimeInstance
[System.Runtime.InteropServices.Guid("ea234770-c86f-1706-8842-c6fb5311ba79")]
public class DkmClrRuntimeInstance : Microsoft.VisualStudio.Debugger.DkmRuntimeInstance
[<System.Runtime.InteropServices.Guid("ea234770-c86f-1706-8842-c6fb5311ba79")>]
type DkmClrRuntimeInstance = class
inherit DkmRuntimeInstance
Public Class DkmClrRuntimeInstance
Inherits DkmRuntimeInstance
- Herança
- Derivado
- Atributos
Propriedades
| Capabilities |
Enumeração de recursos de tempo de execução.
(Herdado de DkmRuntimeInstance)
|
| Connection |
Isso representa uma conexão entre o monitor e o IDE. Pode ser uma conexão local se o monitor estiver em execução no mesmo processo que o IDE, ou pode ser uma conexão remota. No processo de monitor, há apenas uma conexão. (Herdado de DkmRuntimeInstance) |
| CORSystemDirectory |
Adicional O diretório de instalação da instância do Common Language Runtime (CLR). Por exemplo, ' c:\Windows\Microsoft.NET\Framework\v2.0.50727 ' . Esse é o mesmo caminho retornado da API GetCORSystemDirectory e sempre inclui a barra à direita. |
| Id |
Identifica um objeto DkmRuntimeInstance dentro de um processo. (Herdado de DkmRuntimeInstance) |
| IsUnloaded |
Retornará true se um evento ' Unloaded ' tiver sido gerado para este objeto (exemplo: DkmThread:: Unload é chamado) ou se o objeto foi fechado. Observe que o cuidado deve ser usado ao verificar esse status como, sem sincronização, o status retornado pode não ser mais preciso na instrução após sua leitura. (Herdado de DkmDataContainer) |
| ParentRuntime |
Adicional Para tempos de execução que são implementados sobre outro tempo de execução, opcionalmente, isso pode ser usado para o Índico do pai lógico. Isso pode ser usado para solicitar serviços do pai quando o tempo de execução filho não implementa o serviço. Atualmente, isso é usado apenas para obter o quadro de pilha superior para avaliar um ponto de interrupção condicional quando o tempo de execução filho não percorre as pilhas em si. Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion. VS12RTM). (Herdado de DkmRuntimeInstance) |
| Process |
DkmProcess representa um processo de destino que está sendo depurado. O depurador debugs processa, portanto, essa é a unidade básica de depuração. Um DkmProcess pode representar um processo do sistema ou um processo virtual, como minidespejos. (Herdado de DkmRuntimeInstance) |
| RuntimeVersion |
Adicional A cadeia de caracteres da versão para a instância do CLR (por exemplo: ' v 2.0.50727 '). |
| TagValue |
DkmRuntimeInstance é uma classe base abstrata. Essa enumeração indica a qual classe derivada esse objeto é uma instância do. (Herdado de DkmRuntimeInstance) |
Métodos
| AfterSteppingArbitration(DkmStepper, DkmStepArbitrationReason, DkmRuntimeInstance) |
AfterSteppingArbitration é chamado pelo Gerenciador de etapas na instância de tempo de execução de controle antigo depois que a arbitragem de depuração é concluída, mas antes da próxima instância de tempo de execução iniciar a depuração. Isso permite que os tempos de execução limpem qualquer estado de depuração se outro tempo de execução tiver assumido o controle. Se nenhum outro monitor de tempo de execução solicitou o local atual, o monitor original deve concluir a etapa. Isso é indicado por NewControllingRuntimeInstance sendo nulo. Por exemplo, uma instância de tempo de execução pode optar por voltar se um descarregou de etapa em um local sem símbolos e nenhum outro tempo de execução tiver assumido o controle. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). (Herdado de DkmRuntimeInstance) |
| BeforeEnableNewStepper(DkmStepper) |
BeforeEnableNewStepper é chamado pelo Gerenciador de etapas antes que um novo stepper seja habilitado. Isso dá aos tempos de execução a capacidade de fazer qualquer inicialização que possa ser necessária, como executar avaliações de função de pré-teste. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). (Herdado de DkmRuntimeInstance) |
| CanDoFuncEval(DkmThread) |
Verifica se o thread fornecido está em um estado no qual o CLR dá suporte a evals gerenciadas de Func. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). |
| ContinueForFuncEval(DkmThread, ICorDebugEval, DkmFuncEvalFlags, UInt32, String) |
Continue o processo e aguarde a conclusão de um Func-eval. O chamador deve sempre executar ' CanDoFuncEval ' antes de criar o ICorDebugEval e configurar a avaliação. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). |
| ContinueForFuncEval(DkmThread, ICorDebugEval, DkmFuncEvalFlags, UInt32, String, DkmClrInstructionAddress) |
Continue o processo e aguarde a conclusão de um Func-eval. O chamador deve sempre executar ' CanDoFuncEval ' antes de criar o ICorDebugEval e configurar a avaliação. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). Essa API foi introduzida no Visual Studio 15 RTM (DkmApiVersion. VS15RTM). |
| Create(DkmProcess, DkmRuntimeInstanceId, DkmRuntimeCapabilities, DkmRuntimeInstance, String, String, DkmDataItem) |
Cria um novo objeto de instância de tempo de execução a partir de um monitor de depuração. Esse método deve ser chamado a partir do thread de eventos quando um monitor de depuração detectar que uma nova instância de tempo de execução foi carregada (por exemplo, quando a DLL de tempo de execução correspondente for carregada no processo de destino). Esse método enviará um evento RuntimeInstanceLoad. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion. VS12RTM). |
| Create(DkmProcess, DkmRuntimeInstanceId, String, String, DkmDataItem) |
Cria um novo objeto de instância de tempo de execução a partir de um monitor de depuração. Esse método deve ser chamado a partir do thread de eventos quando um monitor de depuração detectar que uma nova instância de tempo de execução foi carregada (por exemplo, quando a DLL de tempo de execução correspondente for carregada no processo de destino). Esse método enviará um evento RuntimeInstanceLoad. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). |
| Disassemble(DkmInstructionAddress, UInt32) |
Desmontar um intervalo de endereços no tempo de execução de depuraçã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 12 RTM (DkmApiVersion. VS12RTM). (Herdado de DkmRuntimeInstance) |
| FindAppDomain(Int32) |
Encontre um elemento DkmClrAppDomain dentro deste DkmClrRuntimeInstance. Se nenhum elemento com a chave de entrada fornecida estiver presente, FindAppDomain falhará. |
| FindClrModuleInstance(ICorDebugModule) |
Obtém o DkmClrModuleInstance de um ICorDebugModule. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). |
| FindModulesByName(String) |
Esse método retorna todos os módulos que correspondem ao nome especificado. (Herdado de DkmRuntimeInstance) |
| GetActiveStatements(DkmActiveStatement[]) |
Fornece a pilha de todas as instruções ativas em todos os threads. Portanto, se a mesma função estiver em uma pilha de chamadas várias vezes, ela será duplicada nessa matriz. As entradas na pilha são agrupadas por thread. Restrição de local: pode ser chamada do cliente para o lado do servidor. Essa API foi introduzida no Visual Studio 15 atualização 5 (DkmApiVersion. VS15Update5). |
| GetActiveStatements(DkmWorkList, DkmCompletionRoutine<DkmGetActiveStatementsAsyncResult>) |
Fornece a pilha de todas as instruções ativas em todos os threads. Portanto, se a mesma função estiver em uma pilha de chamadas várias vezes, ela será duplicada nessa matriz. As entradas na pilha são agrupadas por thread. Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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: pode ser chamada do cliente para o lado do servidor. Essa API foi introduzida no Visual Studio 15 atualização 5 (DkmApiVersion. VS15Update5). |
| GetAliases(DkmInspectionContext) |
Obtém a lista de aliases que podem ser usados atualmente em expressões.
|
| GetAppDomains() |
Getappdomains enumera os elementos DkmClrAppDomain deste objeto DkmClrRuntimeInstance. |
| GetCodePathsInRange(ICorDebugFrame, UInt32, UInt32) |
GetCodePathsInRange é chamado para obter caminhos de código em um intervalo de IL específico.
(Herdado de DkmRuntimeInstance)
|
| GetCorFrame(DkmThread, UInt64, Guid) |
GetCorFrame é usado para obter um ICorDebugFrame que um componente pode usar para inspecionar profundamente o quadro de pilha. A interface retornada só pode ser usada para inspecionar o processo de destino e nunca deve ser usada para controlar a execução (sem depuração, sem pontos de interrupção, sem continuação, etc). Isso não é suportado e resultará em um comportamento indefinido. Restrição de local: essa API deve ser chamada no mesmo processo em que o tempo de execução de destino implementa a movimentação de pilha. Para a depuração gerenciada, isso significa que, durante a depuração de processos de 64 bits ou remotos, essa API deve ser chamada a partir de um componente de monitor de depuração. Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion. VS14RTM). |
| GetCorProcess() |
Fornece acesso direto ao objeto ICorDebugProcess, que avaliadores de expressão ou outros componentes podem usar para inspeção. A interface retornada só pode ser usada para inspecionar o processo de destino e nunca deve ser usada para controlar a execução (sem depuração, sem pontos de interrupção, sem continuação, etc). Isso não é suportado e resultará em um comportamento indefinido. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). |
| GetCorThread(DkmThread) |
Fornece acesso direto ao objeto ICorDebugThread, que avaliadores de expressão ou outros componentes podem usar para inspecionar o domínio de 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 depuração, sem pontos de interrupção, sem continuação, etc). Isso não é suportado e resultará em um comportamento indefinido. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). |
| GetDataItem<T>() |
Obtém a instância de ' T' que foi adicionada a esta instância de contêiner. Se esse contêiner não contiver um ' T', essa função retornará NULL. (Herdado de DkmDataContainer) |
| GetEncAvailability(String) |
Verifica se há suporte para editar e continuar na instância de tempo de execução correspondente. 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 atualização 1 (DkmApiVersion. VS16Update1). |
| GetInstructionAddress(DkmInstructionAddress, Int32) |
Retorna o endereço da instrução enésimo em relação a um endereço inicial. Para conjuntos de instruções de comprimento constante, isso é aritmética simples. Para conjuntos de instruções de comprimento variável, a desmontagem reversa é necessária para obter esse endereç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 12 RTM (DkmApiVersion. VS12RTM). (Herdado de DkmRuntimeInstance) |
| GetIntrinsicAssemblyMetaDataBytesPtr(UInt32) |
Obtenha metadados para o "assembly de métodos intrínsecos". Os métodos intrínsecos são métodos especiais que o mecanismo de depuração compreende ao executar uma consulta de inspeção CLR. Exemplo: ao avaliar "$exception" no avaliador de expressão C#, o compilador de expressão C# emitirá uma chamada para GetException no assembly de métodos intrínsecos. Em vez de executar a chamada normalmente, o depurador irá simular a chamada do método e retornar a exceção no thread atual. Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion. VS14RTM). |
| GetManagedHeapSamplers() |
GetManagedHeapSamplers enumera os elementos DkmManagedHeapSampler desse objeto DkmRuntimeInstance. Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion. VS12RTM). (Herdado de DkmRuntimeInstance) |
| GetManagedHeapWalkers() |
GetManagedHeapWalkers enumera os elementos DkmManagedHeapWalker desse objeto DkmRuntimeInstance. Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion. VS12RTM). (Herdado de DkmRuntimeInstance) |
| GetMethodReturnAddresses(DkmClrModuleInstance, DkmClrMethodId) |
Método auxiliar interno para localizar todos os endereços de instrução RET em um determinado método. LAPTOP! Os endereços apontam para o IL real, não para o ponto de sequência atual/anterior! Restrição de local: nenhuma. Essa API foi introduzida no Visual Studio 16 atualização 6 (DkmApiVersion. VS16Update6). |
| GetModuleInstances() |
GetModuleInstances enumera os elementos DkmModuleInstance desse objeto DkmRuntimeInstance. (Herdado de DkmRuntimeInstance) |
| GetOutOfProcStepAddresses(DkmStepper, DkmStackWalkFrame, DkmSteppingRange[]) |
Método auxiliar interno para localizar endereços candidatos para a etapa em/acima.
|
| GetScriptDocumentTreeNodes() |
GetScriptDocumentTreeNodes enumera os elementos DkmScriptDocumentTreeNode desse objeto DkmRuntimeInstance. (Herdado de DkmRuntimeInstance) |
| GetSymbolNameForAddress(DkmWorkList, UInt64, DkmCompletionRoutine<DkmGetSymbolNameForAddressAsyncResult>) |
Obtém o nome do símbolo para o endereço especificado usando informações de tempo de execução em vez de símbolos. Atualmente, isso é apenas implementado para a instância do CLR Runtime. Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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 atualização 7 (DkmApiVersion. VS16Update7). (Herdado de DkmRuntimeInstance) |
| GetTaskProviders() |
GetTaskProviders enumera os elementos DkmTaskProvider desse objeto DkmRuntimeInstance. (Herdado de DkmRuntimeInstance) |
| GetThreadDisplayProperties(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmGetThreadDisplayPropertiesAsyncResult>) |
Obtém as propriedades de exibição do thread, incluindo o nome de exibição e a categoria do thread. Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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 DkmRuntimeInstance) |
| GetThreadName(DkmThread) |
Compute o nome de um thread. (Herdado de DkmRuntimeInstance) |
| GetThreadName(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmGetThreadNameAsyncResult>) |
Compute o nome de um thread. Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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. (Herdado de DkmRuntimeInstance) |
| NotifyStepComplete(DkmStepper) |
NotifyStepComplete é chamado pelo Gerenciador de etapas em todas as instâncias de tempo de execução sem controle quando uma etapa é concluída. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). (Herdado de DkmRuntimeInstance) |
| OnFuncEvalQuickAbortDllLoaded(DkmThread, Boolean) |
Notifica o resultado da tentativa de carregar a DLL FEQA. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). |
| OnLoadComplete() |
Esse método é chamado por um monitor de depuração para gerar um evento RuntimeInstanceLoadComplete. No momento, o RuntimeInstanceLoadComplete é enviado apenas para a instância de tempo de execução nativa, embora isso possa ser alterado no futuro. O evento é emitido após a criação de objetos DkmModuleInstance para o conjunto inicial de módulos na instância de tempo de execução. Esse método só pode ser chamado pelo componente que criou o objeto. Essa API foi introduzida no Visual Studio 12 atualização 2 (DkmApiVersion. VS12Update2). (Herdado de DkmRuntimeInstance) |
| OnNewControllingRuntimeInstance(DkmStepper, DkmStepArbitrationReason, DkmRuntimeInstance) |
OnNewControllingRuntimeInstance é chamado pelo Gerenciador de etapas em todas as instâncias de tempo de execução não controladas depois que a arbitragem de etapa selecionar uma nova instância de tempo de execução de controle. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). (Herdado de DkmRuntimeInstance) |
| OwnsCurrentExecutionLocation(DkmStepper, DkmStepArbitrationReason) |
OwnsCurrentExecutionLocation é chamado pelo Gerenciador de etapas enquanto procura monitores para executar uma etapa. Se o local atual no depurado for compreendido por esse monitor, ele poderá retornar true aqui para assumir o controle da etapa. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). (Herdado de DkmRuntimeInstance) |
| PrepareForFuncEvalQuickAbort(DkmThread, Boolean, UInt64) |
Verifica se devemos carregar a DLL FEQA. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). |
| RemoveDataItem<T>() |
Remova a instância de ' T' deste contêiner. Normalmente, é desnecessário chamar esse método, pois um contêiner de dados será automaticamente esvaziado quando o objeto for fechado. (Herdado de DkmDataContainer) |
| ResolveCPUInstructionAddress(DkmWorkList, UInt64, DkmCompletionRoutine<DkmResolveCPUInstructionAddressAsyncResult>) |
Resolve um InstructionAddress de CPU para um objeto DkmInstructionAddress específico de tempo de execução. Atualmente, essa API só tem suporte por objetos DkmRuntimeInstance do CLR, e a instância do CLR Runtime só pode encontrar endereços de instrução que estejam em um método que esteja atualmente na pilha de chamadas de um dos threads no processo de destino. Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará assim que o item de trabalho tiver sido anexado. 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 deve ser geralmente chamada no cliente, mas pode ser chamada no servidor para converter endereços CLR (mas não compilados nativamente). (Herdado de DkmRuntimeInstance) |
| ResolveCPUInstructionAddress(UInt64, Boolean) |
Resolve um InstructionAddress de CPU para um objeto DkmInstructionAddress específico de tempo de execução. Atualmente, essa API só tem suporte por objetos DkmRuntimeInstance do CLR, e a instância do CLR Runtime só pode encontrar endereços de instrução que estejam em um método que esteja atualmente na pilha de chamadas de um dos threads no processo de destino. Restrição de local: essa API deve ser geralmente chamada no cliente, mas pode ser chamada no servidor para converter endereços CLR (mas não compilados nativamente). (Herdado de DkmRuntimeInstance) |
| SetDataItem<T>(DkmDataCreationDisposition, T) |
Coloque um novo item no contêiner de dados. (Herdado de DkmDataContainer) |
| SetRegisterValue(DkmStackWalkFrame, Int32, ReadOnlyCollection<Byte>) |
Define o valor do registro no contexto do thread. Os subregistros compostos de registros maiores têm suporte. (Herdado de DkmRuntimeInstance) |
| Step(DkmStepper, DkmStepArbitrationReason) |
A etapa é chamada pelo Gerenciador de etapas depois de determinar que esse monitor é o monitor correto para executar a etapa. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). (Herdado de DkmRuntimeInstance) |
| StepControlRequested(DkmStepper, DkmStepArbitrationReason, DkmRuntimeInstance) |
StepControlRequested é chamado pelo Gerenciador de etapas quando uma instância de tempo de execução sem controle detecta que o thread atingiu uma transição para seu tempo de execução. Se a instância atual de tempo de execução de controle puder parar de avançar, ela deverá definir concedido como true. O controle real não é fornecido até que o tempo de execução solicitante chame DkmStepper. TakeStepControl. Esse processo de duas partes permite que os chamadores solicitem controle de vários ao mesmo tempo. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). (Herdado de DkmRuntimeInstance) |
| StopStep(DkmStepper) |
StopStep é chamado pelo Gerenciador de etapas quando o processo está sendo continuado para limpar qualquer estado de depuração restante para um stepper. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). (Herdado de DkmRuntimeInstance) |
| TakeStepControl(DkmStepper, Boolean, DkmStepArbitrationReason, DkmRuntimeInstance) |
TakeStepControl é chamado pelo Gerenciador de etapas quando uma instância de tempo de execução sem controle detecta que o thread atingiu uma transição para seu tempo de execução. O Gerenciador de etapas encaminhará a chamada para a instância atual de tempo de execução de controle. A instância de tempo de execução que solicita o controle deve primeiro chamar StepControlRequested em todos os que desejarem controlar. Se todos eles definirem concedido como true, a instância de tempo de execução deverá chamar esse método em cada stepper que estiver assumindo o controle de. Restrição de local: a API deve ser chamada de um componente de monitor (nível de componente < 100.000). (Herdado de DkmRuntimeInstance) |
| Unload() |
RuntimeInstanceUnload é enviado pelo Dispatcher quando DkmRuntimeInstance:: Unload é invocado pelo monitor. Esse método só pode ser chamado pelo componente que criou o objeto. (Herdado de DkmRuntimeInstance) |