Compartilhar via


DkmStackWalkFrame Classe

Definição

DkmStackWalkFrame representa um quadro em uma pilha de chamadas que foi andada, mas pode não ter sido formatada ou filtrada. Os quadros formatados são representados por DkmStackFrame.

Classes derivadas: DkmStackFrame

public ref class DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
class DkmStackWalkFrame
[System.Runtime.InteropServices.Guid("48b55030-ecac-2387-4e63-bfdc3c172598")]
public class DkmStackWalkFrame
[<System.Runtime.InteropServices.Guid("48b55030-ecac-2387-4e63-bfdc3c172598")>]
type DkmStackWalkFrame = class
Public Class DkmStackWalkFrame
Herança
DkmStackWalkFrame
Derivado
Atributos

Propriedades

AnnotatedModule

[Opcional] Se tivermos um quadro anotado, especificará uma instância de módulo opcional a ser associada a esse quadro. Se presente, o usuário poderá carregar binários ou símbolos para este módulo clicando com o botão direito do mouse nesse quadro na janela da pilha de chamadas. Isso é NULL para quadros não anotados.

Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Annotations

[Opcional] Uma coleção somente leitura de anotações de quadro de pilha. Eles são definidos por um desenrolador e são específicos para esse desenrolador. Um exemplo de uso é como os dados de quadro embutidos são passados do filtro de pilha embutida para o formatador.

AsyncContext

[Opcional] Contexto opcional para pilhas de retorno assíncronas e pilhas de criação de tarefas.

Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

BasicSymbolInfo

[Opcional] Contém informações básicas sobre o DkmInstructionSymbol correspondente ao InstructionAddress do quadro. Para quadros nativos, isso será calculado pelo StackProvider antes que o quadro seja passado para um filtro de pilha.

Isso sempre será nulo para um DkmStackFrame.

Essa API foi introduzida no Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

Connection

Isso representa uma conexão entre o monitor e o IDE. Ele 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 do monitor, há apenas uma conexão.

Data

[Opcional] Objeto opcional a ser anexado a um DkmStackWalkFrame, permitindo que os componentes associem dados privados adicionais ao quadro.

Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Description

[Opcional] Descrição do quadro que será exibido na janela da pilha de chamadas. Isso deve ser fornecido para quadros anotados.

Flags

Sinaliza as propriedades de um DkmStackWalkFrame.

FrameBase

Ponteiro de pilha base do quadro. Isso é usado pelo SDM para classificar o quadro e é usado pela fusão de pilha para avaliar o progresso da caminhada, portanto, esse valor é necessário até mesmo para quadros anotados. Esse valor só deve ser inválido caso a pilha do depurador esteja corrompida.

FrameSize

Número de bytes da pilha consumida por esse quadro. Esse valor será zero para quadros anotados ou se o valor for desconhecido.

InstructionAddress

[Opcional] A instrução desse quadro. Isso pode ser omitido para quadros anotados.

ModuleInstance

[Opcional] O módulo que contém esse endereço. Endereços sem um módulo não podem ter símbolos (mesmo para endereços personalizados). Os endereços CLR sempre terão um módulo. Os endereços nativos não terão um módulo se a CPU saltar para um endereço inválido (por exemplo: NULL) ou se a CPU estiver executando código emitido dinamicamente.

Priority

A prioridade do quadro de caminhada de pilha. Normalmente, isso é usado para quadros anotados que detectaram um problema.

Essa API foi introduzida no Visual Studio 17 Atualização 5 (DkmApiVersion.VS17Update5).

Process

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

Registers

[Opcional] Registros do quadro andado. Eles devem ser fornecidos para quadros não anotados.

RuntimeInstance

[Opcional] A classe DkmRuntimeInstance representa um ambiente de execução que é carregado em um DkmProcess e que contém o código a ser depurado.

Thread

O thread no qual esse quadro de pilha está.

UniqueId

Um identificador exclusivo para o DkmStackWalkFrame. Em cenários de depuração remota, isso poderá ser GUID_NULL/Guid.Empty se o quadro tiver sido realizado em marshaling de um IDE/Depurador Remoto mais antigo.

Essa API foi introduzida no Visual Studio 16 Atualização 10 (DkmApiVersion.VS16Update10).

Métodos

CanSetNextStatement(DkmInstructionAddress)

CanSetNextStatement determina se é possível mover o IP de um registro de pilha. O quadro de pilha é sempre o quadro de pilha folha em um thread específico. Essa API só pode ser implementada dentro do processo do mecanismo. O parâmetro Result out deve ser S_OK ou o valor de um HRESULT com falha que a interface do usuário pode mapear para uma mensagem de erro.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

ComputeUserStatus(DkmInspectionSession, Boolean)

Determina se um quadro é ou não um código de usuário.

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

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>)

Create uma nova instância de objeto DkmStackWalkFrame.

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData)

Create uma nova instância de objeto DkmStackWalkFrame.

Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData, DkmBasicInstructionSymbolInfo)

Create uma nova instância de objeto DkmStackWalkFrame.

Essa API foi introduzida no Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData, DkmBasicInstructionSymbolInfo, DkmStackWalkFramePriority)

Create uma nova instância de objeto DkmStackWalkFrame.

Essa API foi introduzida no Visual Studio 17 Atualização 5 (DkmApiVersion.VS17Update5).

Format(DkmInspectionSession, DkmFrameFormatOptions)

Formate um DkmStackWalkFrame em um DkmStackFrame. Formatar um quadro é uma etapa do que o provedor de pilha faz durante GetNextFrames. Esse método pode ser usado para formatar um quadro de uma maneira diferente do que foi originalmente executado pelo provedor de pilha em GetNextFrames.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

GetClrGenericParameters()

Obtém os parâmetros genéricos para o quadro de pilha atual como uma lista de nomes qualificados de assembly.

Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

GetClrGenericParameters(DkmWorkList, DkmCompletionRoutine<DkmGetClrGenericParametersAsyncResult>)

Obtém os parâmetros genéricos para o quadro de pilha atual como uma lista de nomes qualificados de assembly.

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.

Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

GetInspectionInterface(DkmInspectionSession, Guid)

GetInspectionInterface é usado para obter um ICorDebugFrame ou outras interfaces específicas de implementação 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 etapas, sem pontos de interrupção, sem continuar etc.). Isso não tem suporte e resultará em um comportamento indefinido. OBSERVAÇÃO: o uso desse método do código gerenciado não é recomendado por motivos de desempenho. O marshalling de DkmStackWalkFrame entre código nativo e gerenciado é caro. Em vez disso, use DkmRuntimeInstance.GetFrameInspectionInterface.

Restrição de local: essa API deve ser chamada do mesmo processo em que o runtime de destino implementa o passo a passo da pilha ou onde os símbolos são carregados. Para depuração gerenciada, isso significa que, ao depurar processos remotos ou de 64 bits, essa API deve ser chamada de um componente de monitor de depuração.

GetInstructionSymbol()

Retornar um DkmInstructionSymbol para um quadro de pilha. Se o registro de pilha não tiver nenhum endereço de instrução (quadro anotado) ou se o endereço de instrução não tiver nenhum DkmModule associado, GetInstructionSymbol retornará nulo (S_FALSE no código nativo).

GetProperty(ICorDebugValue, String)

Avalia uma propriedade no ICorDebugValue especificado. O tipo do valor deve ser carregado pelo DkmClrAppDomain do DkmStackWalkFrame no qual esse $Name$ está sendo chamado.

Restrição de localização: isso deve estar no lado remoto porque estamos passando um ICorDebugHandleValue.

Essa API foi introduzida no Visual Studio 15 Atualização 3 (DkmApiVersion.VS15Update3).

GetUnwindAddress(DkmInstructionAddress)

Retorna o endereço que representa o local se uma exceção for interceptada nesse quadro.

InterceptCurrentException(DkmExceptionInterceptActionFlags, UInt64)

InterceptCurrentException é usado para desenrolar esse quadro como se houvesse um manipulador de exceção nesse quadro.

OnSetNextStatementCompleted(DkmInstructionAddress)

OnSetNextStatementCompleted é um método de finalidade geral para permitir que os componentes limpem o estado após a conclusão de uma próxima instrução definida. O DkmStackWalkFrame será o quadro antes da chamada SetNextStatement.

Restrição de local: essa API geralmente deve ser chamada apenas de componentes do lado do cliente. No entanto, é seguro que um componente do lado do monitor chame essa API se a próxima instrução set estiver sendo chamada de um manipulador de eventos.

SetNextStatement(DkmInstructionAddress)

SetNextStatement move o IP de um registro de pilha. O quadro de pilha é sempre o quadro de pilha folha em um thread específico.

Aplica-se a