Compartilhar via


Usando a janela Pilhas Paralelas

A janela Pilhas Paralelas é útil quando você está depurando aplicativos de vários threads. O Modo de Exibição de Threads mostra informações da pilha de chamadas para todos os threads em seu aplicativo. Permite navegar entre os threads e os quadros da pilha nesses threads. No código gerenciado, o Modo de Exibição de Tarefas mostra pilhas de chamadas de objetos Task. No código nativo, o Modo de Exibição de Tarefas mostra pilhas de chamadas de grupos de tarefas, algoritmos paralelos, agentes assíncronas, e tarefas leves.

Modo de Exibição de Threads

A ilustração a seguir mostra um thread que foi de Main para A para B e, em seguida, para algum código externo. Dois outros threads começaram de algum código externo e foram para A, mas um dos threads continuou para B e, em seguida, para algum código externo, e o outro thread continuou para C e, em seguida, para algum AnonymousMethod.

Exibição de threads na janela pilhas paralelas

Na ilustração, o caminho de chamada do thread atual é realçado em azul, e o quadro de pilhas ativo é identificado pela seta amarela. Você pode alterar o quadro de pilhas atual selecionando um método diferente na janela Pilhas Paralelas. Isso também pode resultar em alternar o thread atual, dependendo se o método selecionado já faz parte do thread atual ou de outro thread. A tabela a seguir descreve os recursos principais da janela Pilhas Paralelas conforme mostrado na ilustração.

Letra de texto explicativo

Nome de elementos

Descrição

A

Segmento ou nó da pilha de chamadas

Contém uma série de contextos de método para um ou mais threads. Se o nó não tiver linhas de seta conectadas a ele, ele representará o caminho inteiro de chamada para os threads.

B

Realce azul

Indica o caminho da chamada do thread atual.

C

Linhas de seta

Conecte os nós para compor o caminho inteiro de chamada para os threads.

D

Dica de ferramenta no cabeçalho do nó

Mostra a ID e o nome definido pelo usuário de cada thread cujo caminho de chamada compartilha esse nó.

E

Contexto do método

Representa uma ou mais quadros de pilha no mesmo método.

F

Dica de ferramenta no contexto do método

No Modo de Exibição de Threads, mostra todos os threads em uma tabela semelhante à janela Threads. No Modo de Exibição de Tarefas, mostra todas as tarefas em uma tabela semelhante à janela Tarefas Paralelas.

Além disso, a janela Pilhas Paralelas mostra um ícone Modo de Exibição Vista de Pássaro no painel principal quando o gráfico for grande demais para caber na janela. Você pode clicar no ícone para ver o gráfico inteiro na janela.

Ícones do Contexto do método

A tabela a seguir descreve os ícones que fornecem informações sobre os quadros de pilhas ativas e atuais:

Ícone

Descrição

Seta amarela de pilhas paralelas

Indica que o contexto do método contém o quadro de pilhas ativas do thread atual.

Ícone de Threads de pilhas paralelas

Indica que o contexto do método contém o quadro de pilhas ativas de um thread não atual.

Seta verde de pilhas paralelas

Indica que o contexto do método contém o quadro de pilhas atual. O nome desse método está em negrito em todos os nós em que aparece.

Controles da barra de ferramentas

A ilustração e a tabela a seguir descrevem os controles disponíveis na barra de ferramentas das Pilhas Paralelas.

Barra de ferramentas da janela pilhas paralelas

Letra de texto explicativo

Controle

Descrição

A

Caixa de combinação de threads e tarefas

Alterna a exibição entre pilhas de chamadas de threads e pilhas de chamadas de tarefas. Para obter mais informações, consulte Modo de Exibição de Tarefas e Modo de Exibição de Threads.

B

Mostrar somente sinalizados

Mostra pilhas de chamadas apenas para os threads que estão sinalizados em outras janelas de depuração, como a janela Threads da GPU e a janela Inspeção Paralela.

C

Ativar/Desativar Modo de Exibição do Método

Alterna entre o Modo de Exibição de Pilha e o Modo de Exibição do Método. Para obter mais informações, consulte o Modo de Exibição do Método.

D

Autorrolagem para Quadro de Pilha Atual

Rola automaticamente o diagrama de forma que o quadro de pilhas atual esteja no modo de exibição. Este recurso é útil quando você está modificando o quadro de pilhas atual de outras janelas ou quando você está atingindo um novo ponto de interrupção em grandes diagramas.

E

Ativar/Desativar Controle de Zoom

Mostra ou oculta o controle de zoom. Você também pode aplicar zoom pressionando CTRL e girando a roda do mouse, independentemente da visibilidade do controle de zoom.

Itens de menu de contexto

A ilustração e a tabela a seguir descrevem os itens de menu de atalho disponíveis quando você clica com o botão direito em um contexto do método no Modo de Exibição de Threads ou Modo de Exibição de Tarefas. Os últimos seis itens são emprestados diretamente da janela Pilha de Chamadas e não apresentam comportamento novo.

Menu de atalho na janela pilhas paralelas

Item de menu

Descrição

Sinalizador

Sinaliza o item selecionado.

Remover sinalização

Remove a sinalização do item selecionado.

Congelar

Congela o item selecionado.

Descongelar

Descongela o item selecionado.

Ir para Tarefa (thread)

Executa a mesma função que a caixa de combinação na barra de ferramentas, mas mantém o mesmo quadro de pilhas realçado.

Vá para o código-fonte

Navega até o local no código-fonte que corresponde ao quadro de pilhas que o usuário clicou com o botão direito.

Alternar para Quadro

O mesmo que o comando do menu correspondente na janela Pilha de Chamadas. No entanto, com Pilhas Paralelas, vários itens podem corresponder a um contexto do método. Por isso, o item de menu tem submenus, cada um representando um quadro de pilhas específico. Se um dos quadros de pilhas estiver no thread atual, o menu que corresponda a esse quadro de pilhas estará selecionado.

Ir para Desmontagem

Navega até o local na janela de desmontagem que corresponde ao quadro de pilhas que o usuário clicou com o botão direito.

Mostrar Código Externo

Mostra ou oculta o código externo.

Exibição Hexadecimal

Alterna entre a exibição decimal e hexadecimal.

Informações de Carregamento de Símbolos

Exibe a caixa de diálogo correspondente.

Configurações de Símbolo

Exibe a caixa de diálogo correspondente.

Modo de Exibição de Tarefas

Se o seu aplicativo estiver usando objetos Task (código gerenciado) ou objetos task_handle (código nativo) para paralelismo expresso, você poderá usar a caixa de combinação na barra de ferramentas da janela Pilhas Paralelas para alternar para o Modo de Exibição de Tarefas. O Modo de Exibição de Tarefas mostra as chamadas de pilhas de tarefas reais em vez de threads. O Modo de Exibição de Tarefas é diferente do Modo de Exibição de Threads da seguinte maneira:

  • As pilhas de chamadas de threads que não estão executando tarefas não são mostradas.

  • As pilhas de chamadas de threads que estão executando tarefas serão cortadas visualmente na parte superior e inferior para mostrar os quadros mais relevantes que pertencem a tarefas.

  • Quando várias tarefas estiverem em um thread, as pilhas de chamadas dessas tarefas serão divididas em nós separados.

A ilustração a seguir mostra o Modo de Exibição de Tarefas de Pilhas Paralelas à direita e o Modo de Exibição de Threads correspondente à esquerda.

Modo de exibição de tarefas na janela pilhas paralelas

Para ver a Pilha de Chamadas inteira, basta alternar de volta para o Modo de Exibição de Threads clicando com o botão direito e clicando em Ir para Thread.

Como descrito na tabela anterior, ao passar o cursor sobre um contexto do método, você poderá ver informações adicionais. A imagem a seguir mostra as informações na dica de ferramentas para o Modo de Exibição de Threads e o Modo de Exibição de Tarefas.

Dicas de ferramentas na janela pilhas paralelas

Modo de Exibição do Método

Do Modo de Exibição de Threads ou de Tarefas, você pode girar o gráfico no método atual clicando no ícone do Modo de Exibição do Método na barra de ferramentas. O Modo de Exibição do Método mostra rapidamente todos os métodos em todos os threads que chamam ou são chamados pelo método atual. A ilustração a seguir mostra um Modo de Exibição de Threads e também como as mesmas informações aparecem no Modo de Exibição do Método.

Exibição do método na janela pilhas paralelas

Ao alternar para um novo quadro de pilhas, você torna o método atual e faz a janela mostrar todos os chamadores e chamados para o novo método. Isso pode fazer os threads serem exibidos ou desaparecerem da exibição, dependendo se esse método for exibido em suas pilhas de chamadas. Para retornar ao Modo de Exibição de Pilha, clique no botão da barra de ferramentas do Modo de Exibição do Método novamente.

Consulte também

Tarefas

Instruções passo a passo: depurando um aplicativo paralelo

Instruções passo a passo: depurando um aplicativo paralelo

Referência

Classe Task

Conceitos

Usando a janela Tarefas

Outros recursos

Mapa de depurador

Depurando código gerenciado

Programação paralela no .NET Framework