Partilhar via


Visualizando a pilha de chamadas no WinDbg (clássico)

A pilha de chamadas é a cadeia de chamadas de função que levaram à localização atual do contador do programa. A função superior na pilha de chamadas é a função atual, a próxima função é a função que chamou a função atual, e assim por diante. A pilha de chamadas exibida é baseada no contador do programa atual, a menos que você altere o contexto do registro. Para obter mais informações sobre como alterar o contexto do registro, consulte Alterando contextos.

No WinDbg, você pode exibir a pilha de chamadas inserindo comandos ou usando a janela Chamadas.

Janela de comando do depurador

Você pode visualizar a pilha de chamadas inserindo um dos comandos k (Display Stack Backtrace) na janela Comando do Depurador.

Janela de chamadas

Como alternativa ao comando k , você pode visualizar a pilha de chamadas na janela Chamadas. Para abrir a janela Chamadas, escolha Pilha de chamadas no menu Exibir .

A captura de tela a seguir mostra um exemplo de uma janela de chamadas.

Captura de tela da janela Chamadas no WinDbg.

Os botões na janela Chamadas permitem personalizar a exibição da pilha de chamadas. Para ir para o local de chamada correspondente na janela Origem ou na janela Desmontagem, clique duas vezes em uma linha da pilha de chamadas ou selecione uma linha e pressione ENTER. Essa ação também altera o contexto local para o frame selecionado. Para obter mais informações sobre como executar até ou a partir deste ponto, consulte Controlando o destino.

No modo de usuário, o rastreamento de pilha é baseado na pilha do thread atual. Para obter mais informações sobre a pilha do thread atual, consulte Controlando processos e threads.

No modo kernel, o rastreamento de pilha é baseado no contexto de registro atual. Você pode definir o contexto do registro para corresponder a um thread, registro de contexto ou quadro de trap específico. Para obter mais informações sobre como definir o contexto do registro, consulte Contexto do registro.

A janela Chamadas tem uma barra de ferramentas que contém vários botões e tem um menu de atalho com comandos adicionais. Para acessar esse menu, selecione e segure (ou clique com o botão direito do mouse) a barra de título ou selecione o ícone perto do canto superior direito da janela (Captura de tela do botão que exibe o menu de atalho da barra de ferramentas da janela Chamadas no WinDbg.

  • Raw args exibe os três primeiros parâmetros que são passados para a função. Num processador baseado em x86, esta exibição inclui os três primeiros parâmetros que são passados para a função ("Args to Child").

  • Func info exibe dados de Omissão de Ponteiro de Frame (FPO) e outras informações internas sobre a função. Este comando está disponível apenas em um processador baseado em x86.

  • Source exibe nomes de módulos de origem e números de linha após os nomes de função (se o depurador tiver essas informações).

  • Addrs exibe vários endereços relacionados a quadros. Em um processador baseado em x86, essa exibição inclui o ponteiro base para o quadro de pilha ("ChildEBP") e o endereço de retorno ("RetAddr").

  • Números de frames mostram números de quadros. Os quadros são sempre numerados consecutivamente, começando com zero.

  • Arg types exibe informações detalhadas sobre os argumentos que são esperados e recebidos pelas funções na pilha.

  • A flutuação constante faz com que a janela permaneça desancorada, mesmo que seja arrastada para um local de ancoragem.

  • Mover com quadro faz com que a janela se mova quando o quadro WinDbg é movido, mesmo que a janela esteja desencaixada.

Informações adicionais

Para obter mais informações sobre o contexto do registro e o contexto local, consulte Alterando contextos.