Compartilhar via


DkmStackWalkContext Classe

Definição

DkmStackWalkContext permite que os vários componentes que andam, filtram ou examinam pilhas de chamadas armazenem dados privados associados a essa pilha de chamadas.

public ref class DkmStackWalkContext : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("33ebb282-734b-c2f3-66cd-c42eb8a3d490")]
public class DkmStackWalkContext : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("33ebb282-734b-c2f3-66cd-c42eb8a3d490")>]
type DkmStackWalkContext = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmStackWalkContext
Inherits DkmDataContainer
Implements IDisposable
Herança
DkmStackWalkContext
Herança
DkmStackWalkContext
Atributos
Implementações

Propriedades

Flags

Sinalizadores para controlar quadros retornados durante uma caminhada de pilha.

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

IsUnloaded

Retornará true se um evento 'descarregado' tiver sido gerado para este objeto (exemplo: DkmThread::Unload for chamado) ou se o objeto tiver sido fechado. Observe que o cuidado deve ser usado ao verificar esse status, pois, sem sincronização, o status retornado pode não ser mais preciso após a leitura.

(Herdado de DkmDataContainer)
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.

Thread

DkmThread representa um thread em execução no processo de destino.

ThreadContext

[Opcional] O CONTEXTO inicial do Win32 a ser usado ao executar o passo a passo da pilha. Esse valor normalmente é 'null', mas pode ser definido para exibir outra pilha de chamadas (por exemplo: .cxr).

TopStackPointer

Ponteiro de pilha para o quadro de pilha superior.

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

UniqueId

Guid que identifica exclusivamente esse DkmStackWalkContext.

Métodos

Close()

Fecha uma instância de objeto DkmStackWalkContext. Isso liberará todos os recursos associados a esse objeto em todos os componentes. Isso inclui recursos entre limites de marshaling gerenciados/nativos ou computador.

Os objetos DkmStackWalkContext são fechados automaticamente quando o objeto DkmThread associado é fechado.

Create(DkmThread, ReadOnlyCollection<Byte>, DkmDataItem)

Create uma nova instância de objeto DkmStackWalkContext.

Create(DkmThread, ReadOnlyCollection<Byte>, UInt64, DkmDataItem)

Create uma nova instância de objeto DkmStackWalkContext.

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

Create(DkmThread, ReadOnlyCollection<Byte>, UInt64, DkmStackWalkContextFlags, DkmDataItem)

Create uma nova instância de objeto DkmStackWalkContext.

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

FindSymbolStackWalkContext(Guid)

Encontre um elemento DkmSymbolStackWalkContext dentro deste DkmStackWalkContext. Se nenhum elemento com a chave de entrada fornecida estiver presente, FindSymbolStackWalkContext falhará.

GetDataItem<T>()

Obtém a instância de 'T' que foi adicionada a essa instância de contêiner. Se esse contêiner não contiver um 'T', essa função retornará nulo.

(Herdado de DkmDataContainer)
HeuristicWalkFrames(DkmFrameRegisters, UInt32, UInt64, DkmFrameRegisters, Boolean)

Tente percorrer uma região da pilha usando um algoritmo heurístico de caminhada de pilha. Isso é usado em x86 quando nenhum símbolo está disponível. Ele não é implementado em outras plataformas, pois o PDATA permite a movimentação de todos os quadros.

HeuristicWalkFrames(DkmWorkList, DkmFrameRegisters, UInt32, UInt64, DkmCompletionRoutine<DkmHeuristicWalkFramesAsyncResult>)

Tente percorrer uma região da pilha usando um algoritmo heurístico de caminhada de pilha. Isso é usado em x86 quando nenhum símbolo está disponível. Ele não é implementado em outras plataformas, pois o PDATA permite a movimentação de todos os quadros.

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.

RemoveDataItem<T>()

Remova a instância de 'T' desse contêiner. Geralmente, é desnecessário chamar esse método, pois um contêiner de dados será esvaziado automaticamente quando o objeto for fechado.

(Herdado de DkmDataContainer)
RuntimeWalkNextFrames(DkmWorkList, UInt32, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAsyncResult>)

Tente percorrer a pilha sem o uso de símbolos. Isso chamará vários componentes que sabem como percorrer partes da pilha (por exemplo: quadros CLR serão acompanhados pelo monitor de depuração CLR). Um quadro 'não resolvido' será deixado para partes da pilha que não podem ser andadas sem informações armazenadas no arquivo de símbolo. Esses quadros 'não resolvidos' não têm InstructionAddress ou Description.

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.

RuntimeWalkNextFrames(UInt32, Boolean)

Tente percorrer a pilha sem o uso de símbolos. Isso chamará vários componentes que sabem como percorrer partes da pilha (por exemplo: quadros CLR serão acompanhados pelo monitor de depuração CLR). Um quadro 'não resolvido' será deixado para partes da pilha que não podem ser andadas sem informações armazenadas no arquivo de símbolo. Esses quadros 'não resolvidos' não têm InstructionAddress ou Description.

RuntimeWalkNextFramesAndCheckCache(DkmWorkList, UInt32, UInt32, DkmStackHash, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCacheAsyncResult>)

Preterido. Não use esse método, ele retorna valores de hash desatualizados; use IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164. Versão do RuntimeWalkNextFrames() que também verifica se uma cópia armazenada em cache da pilha de chamadas ainda é válida.

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.

RuntimeWalkNextFramesAndCheckCache(UInt32, UInt32, DkmStackHash, Boolean, DkmStackHash, DkmStackWalkContext, Boolean)

Preterido. Não use esse método, ele retorna valores de hash desatualizados; use IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164. Versão do RuntimeWalkNextFrames() que também verifica se uma cópia armazenada em cache da pilha de chamadas ainda é válida.

RuntimeWalkNextFramesAndCheckCache164(DkmWorkList, UInt32, UInt32, DkmStackHash164, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult>)

Versão do RuntimeWalkNextFrames() que também verifica se uma cópia armazenada em cache da pilha de chamadas ainda é válida.

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 16 Atualização 4 (DkmApiVersion.VS16Update4).

RuntimeWalkNextFramesAndCheckCache164(UInt32, UInt32, DkmStackHash164, Boolean, DkmStackHash164, DkmStackWalkContext, Boolean)

Versão do RuntimeWalkNextFrames() que também verifica se uma cópia armazenada em cache da pilha de chamadas ainda é válida.

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

SetDataItem<T>(DkmDataCreationDisposition, T)

Coloque um novo item no contêiner de dados.

(Herdado de DkmDataContainer)

Implantações explícitas de interface

IDisposable.Dispose()

DkmStackWalkContext permite que os vários componentes que andam, filtram ou examinam pilhas de chamadas armazenem dados privados associados a essa pilha de chamadas.

Aplica-se a