Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A janela Pilhas Paralelas é útil quando você está depurando aplicativos multithreaded. Existem várias visões:
- Exibição de threads mostra informações de pilha de chamadas para todos os threads no aplicativo. Você pode navegar entre threads e registros de ativação nessas threads.
-
Exibição tarefas mostra as informações da pilha de chamadas centralizada por tarefas.
- Para aplicativos .NET que usam o padrão assíncrono/await, a "Tasks view" é a mais útil para depuração. Para obter um tutorial passo a passo, consulte Depurar um aplicativo assíncrono.
- Para aplicativos que usam a TPL (Biblioteca Paralela de Tarefas), mas não o padrão assíncrono/await, ou para aplicativos C++ usando o Runtime de Simultaneidade, a exibição Threads na janela Pilhas Paralelas é a ferramenta mais útil para depuração.
-
Exibição tarefas mostra as informações da pilha de chamadas centralizada por tarefas.
- Para aplicativos .NET que usam o padrão assíncrono/await, a "Tasks view" é a mais útil para depuração.
- Para aplicativos que usam a TPL (Biblioteca Paralela de Tarefas), mas não o padrão assíncrono/await, ou para aplicativos C++ usando o Runtime de Simultaneidade, a exibição Threads na janela Pilhas Paralelas é a ferramenta mais útil para depuração.
- Exibição de Método dinamiza a pilha de chamadas em um método selecionado.
Usar a janela Pilhas Paralelas
Para abrir a janela Pilhas Paralelas, você deve estar em uma sessão de depuração. Selecione Depurar>Janelas>Pilhas Paralelas.
Controles da barra de ferramentas
A janela Pilhas Paralelas tem os seguintes controles de barra de ferramentas:
| Ícone | Controle | Descrição |
|---|---|---|
|
Caixa de combinação Threads/Tarefas | Alterna a exibição entre pilhas de chamadas de threads e pilhas de chamadas de tarefas. Para obter mais informações, confira Exibição de tarefas e Exibição de threads. |
|
Mostrar somente sinalizados | Mostra pilhas de chamadas apenas para os threads sinalizados em outras janelas de depuração, como a janela Threads da GPU e a janela Inspeção Paralela. |
|
Ativar/Desativar a Exibição de Método | Alterna entre exibições de pilha de chamadas e Exibição de Método. Para obter mais informações, confira Exibição do Método. |
|
Rolagem Automática para o Registro de Ativação Atual | Rola automaticamente o grafo de forma que o registro de ativação atual esteja em exibição. Este recurso é útil quando você modifica o registro de ativação atual de outras janelas ou quando você atinge um novo ponto de interrupção em grandes grafos. |
|
Ativar/Desativar o Controle de Zoom | Mostrar ou ocultar o controle de zoom à esquerda da janela. Independentemente da visibilidade do controle de zoom, você também pode ampliar pressionando Ctrl e girando a roda do mouse, ou pressionando Ctrl +Shift++ para aumentar e Ctrl +Shift+- para reduzir. |
| Ícone | Controle | Descrição |
|---|---|---|
|
Caixa de combinação Threads/Tarefas | Alterna a exibição entre pilhas de chamadas de threads e pilhas de chamadas de tarefas. Para obter mais informações, confira Exibição de tarefas e Exibição de threads. |
Ícone de filtro ![]() |
Filtrar Controle | Mostra pilhas de chamadas somente para o conjunto específico de threads em que você está interessado. |
|
Mostrar somente sinalizados | Mostra pilhas de chamadas apenas para os threads sinalizados em outras janelas de depuração, como a janela Threads da GPU e a janela Inspeção Paralela. |
|
Ativar/Desativar a Exibição de Método | Alterna entre exibições de pilha de chamadas e Exibição de Método. Para obter mais informações, confira Exibição do Método. |
|
Rolagem Automática para o Registro de Ativação Atual | Rola automaticamente o grafo de forma que o registro de ativação atual esteja em exibição. Este recurso é útil quando você modifica o registro de ativação atual de outras janelas ou quando você atinge um novo ponto de interrupção em grandes grafos. |
|
Ativar/Desativar o Controle de Zoom | Mostrar ou ocultar o controle de zoom à esquerda da janela. Independentemente da visibilidade do controle de zoom, você também pode ampliar pressionando Ctrl e girando a roda do mouse, ou pressionando Ctrl +Shift++ para aumentar e Ctrl +Shift+- para reduzir. |
ícone de pesquisa ![]() |
Controle de Pesquisa | Com esse recurso, você pode pesquisar facilmente por meio de registros de ativação e, em seguida, usar setas para navegar entre esses resultados. |
ícone salvar ![]() |
Salvar Controle | Permite salvar/exportar o conteúdo da janela de pilha paralela como uma imagem. |
|
Mostrar o Controle de Código Externo | Com este recurso, você pode mostrar/ocultar as pilhas do código/bibliotecas externas. |
|
Resumir pilhas de chamadas | A partir do Visual Studio 2022 versão 17.13 Preview 4, você pode escolher Summarize quando o Copilot estiver instalado e ativado. Esse botão abre a janela do Copilot Chat, pré-carregada com o contexto relevante do thread, permitindo que você explore detalhes, incluindo estados do thread, chamadas de função e correções sugeridas. |
Ícones de Registro de Ativação
Os ícones a seguir fornecem informações sobre os registros de ativação ativos e atuais em todos os modos de exibição:
| Ícone | Descrição |
|---|---|
|
|
Indica o local atual (registro de ativação ativo) do thread atual. |
| ícone |
Indica o local atual (quadro de pilha ativo) de um thread não recorrente. |
|
|
Indica o registro de ativação atual (o contexto atual do depurador). O nome do método fica em negrito onde quer que apareça. |
| Ícone | Descrição |
|---|---|
|
|
Indica o local atual (registro de ativação ativo) do thread atual. |
| ícone |
Indica o local atual (quadro de pilha ativo) de um thread não recorrente. |
|
|
Indica o registro de ativação atual (o contexto atual do depurador). O nome do método fica em negrito onde quer que apareça. |
| Erro de Status |
(.NET) Indica que o quadro de pilha atual tem um aviso de status crítico, como Deadlock. |
| status de |
(.NET) Indica o nó em deadlock. |
|
|
(.NET) Indica que o quadro de pilha atual tem informações adicionais, como Aguardar, Aguardar no bloqueio, de propriedade, etc. |
|
|
(.NET) Indica que a tarefa atual está em estado bloqueado/aguardando, etc. |
|
|
Indica a tarefa em execução no momento. |
Itens do menu de contexto
Os itens do menu de atalho a seguir ficam disponíveis quando você clica com o botão direito do mouse em um método na exibição Threads ou Tarefas. Os últimos seis itens são os mesmos da janela Pilha de Chamadas.
| Item de menu | Descrição |
|---|---|
| Sinalizar | Marca o item selecionado. |
| Remover Sinalização | Desmarca o item selecionado. |
| Congelar | Congela o item selecionado. |
| Descongelar | Descongela o item selecionado. |
| Alternar para Quadro | O mesmo que o comando do menu correspondente na janela Pilha de Chamadas. No entanto, na janela Pilhas Paralelas , um método pode estar em vários quadros. Você pode selecionar o quadro desejado no submenu desse item. Se um dos registros de ativação estiver no thread atual, esse registro será selecionado por padrão no submenu. |
| Ir para Tarefa ou Ir para Tópico | Alterna para a exibição Tarefa ou Threads e mantém o mesmo registro de ativação realçado. |
| Ir para o Código-Fonte | Vai para o local correspondente na janela do código-fonte. |
| Ir para Desmontagem | Vai para o local correspondente na janela do Desmontagem. |
| Mostrar Código Externo | Mostrar ou ocultar o código externo. |
| Exibição Hexadecimal | Alternar entre exibição decimal e hexadecimal. |
| Mostrar Conversas na Origem | Sinaliza o local do thread na janela de código-fonte. |
| Informações de Carregamento de Símbolos | Abre a caixa de diálogo Informações de Carga do Símbolo. |
| Configurações de Símbolo | Abre a caixa de diálogo Configurações do Símbolo. |
| Item de menu | Descrição |
|---|---|
| Copiar | Copiar o item selecionado. |
| Selecionar todos os quadros abaixo | Seleciona todos os quadros sob a pilha selecionada. |
| Sinalizar | Marca o item selecionado. |
| Remover Sinalização | Desmarca o item selecionado. |
| Congelar | Congela o item selecionado. |
| Descongelar | Descongela o item selecionado. |
| Alternar para Quadro | O mesmo que o comando do menu correspondente na janela Pilha de Chamadas. No entanto, na janela Pilhas Paralelas , um método pode estar em vários quadros. Você pode selecionar o quadro desejado no submenu desse item. Se um dos registros de ativação estiver no thread atual, esse registro será selecionado por padrão no submenu. |
| Ir para Tarefa ou Ir para Tópico | Alterna para a exibição Tarefa ou Threads e mantém o mesmo registro de ativação realçado. |
| Ir para o Código-Fonte | Vai para o local correspondente na janela do código-fonte. |
| Ir para Desmontagem | Vai para o local correspondente na janela do Desmontagem. |
| Mostrar Código Externo | Mostrar ou ocultar o código externo. |
| Exibição Hexadecimal | Alternar entre exibição decimal e hexadecimal. |
| Mostrar Conversas na Origem | Sinaliza o local do thread na janela de código-fonte. |
| Informações de Carregamento de Símbolos | Abre a caixa de diálogo Informações de Carga do Símbolo. |
| Configurações de Símbolo | Abre a caixa de diálogo Configurações do Símbolo. |
Exibição de threads
Na exibição Threads, o registro de ativação e o caminho de chamada do thread atual são realçados em azul. A localização atual do thread é mostrada pela seta amarela.
Para alterar o registro de ativação atual, clique duas vezes em um método diferente. Isso também pode alternar o thread atual, dependendo se o método selecionado faz parte do thread atual ou de outro thread.
Quando a exibição Threads é muito grande para caber na janela, um controle de Vista Panorâmica aparece na janela. Você pode mover o quadro no controle para navegar até diferentes partes do gráfico.
A ilustração a seguir mostra o thread principal em uma transição de código gerenciado para nativo. Cinco threads estão no método atual. Quatro threads continuam em execução no contexto do método S.C, enquanto um thread de trabalho continua em uma transição de código gerenciado para nativo, definindo o nome em um thread de trabalho.
A tabela a seguir descreve os principais recursos da exibição Threads:
| Texto Explicativo | Nome do elemento | Descrição |
|---|---|---|
| 1 | Segmento ou nó da pilha de chamadas | Contém uma série de métodos para um ou mais threads. Se o quadro não tiver linhas de seta conectadas a ele, o quadro mostrará o caminho inteiro de chamada para os threads. |
| 2 | Realce azul | Indica o caminho da chamada do thread atual. |
| 3 | Linhas de seta | Conecte os nós para compor o caminho inteiro de chamada para os threads. |
| 4 | Cabeçalho do nó | Mostra o número de processos/threads, o nome do thread e a ID do thread para o nó. |
| 5 | Método | Representa um ou mais registros de ativação no mesmo método. |
| 6 | Dica de ferramenta sobre o método | Aparece quando você focaliza um método. Na exibição Threads, a dica de ferramenta mostra todos os threads, em uma tabela semelhante à janela Threads. |
| 7 | Descrição do thread | Descrição gerada por IA do thread. A partir do Visual Studio 2022 versão 17.13 Versão Prévia 1, essa descrição está presente quando o Copilot está instalado e ativado. |
Obter assistência de IA
Se você tiver o Copilot, poderá obter assistência de IA no modo de exibição Threads com descrições de thread geradas por IA e usando o botão Gerar Insights . Use a captura de tela Gerar Insights
Botão para interagir com Copilot sobre os dados de thread que você está vendo. Nesse cenário, Copilot já conhece o contexto da sua pergunta, portanto, você não precisa fornecer contexto por conta própria no chat. Para obter mais informações, consulte Depurar com Copilot.
Para habilitar ou desabilitar descrições de resumo de threads, abra o painel Ferramentas>Opções e expanda a seção Todas as Configurações>GitHub>Copilot>Depurador e Diagnóstico. Selecione ou desmarque a caixa de seleção Habilitar resumo de IA na janela Pilhas Paralelas.
Para habilitar ou desabilitar descrições de resumo de thread, abra a caixa de diálogo Ferramentas>Opções e expanda a seção GitHub>Copilot. Na categoria Depurador e Diagnóstico selecione ou desmarque a caixa de seleção Habilitar resumo de IA na janela Pilhas Paralelas.
A ilustração a seguir mostra um thread que vai de Principal para uma transição de código Gerenciado para Nativo. Seis threads estão no método atual. Duas threads mantêm o Thread.Sleep, e duas mantêm o Console.WriteLine, enquanto o thread atual mantém o SyncTextWriter.WriteLine.
A tabela a seguir descreve os principais recursos da exibição Threads:
| Texto Explicativo | Nome do elemento | Descrição |
|---|---|---|
| 1 | Segmento ou nó da pilha de chamadas | Contém uma série de métodos para um ou mais threads. Se o quadro não tiver linhas de seta conectadas a ele, o quadro mostrará o caminho inteiro de chamada para os threads. |
| 2 | Realce azul | Indica o caminho da chamada do thread atual. |
| 3 | Linhas de seta | Conecte os nós para compor o caminho inteiro de chamada para os threads. |
| 4 | Cabeçalho do nó | Mostra o número de processos e threads para o nó. |
| 5 | Método | Representa um ou mais registros de ativação no mesmo método. |
| 6 | Dica de ferramenta sobre o método | Aparece quando você focaliza um método. Na exibição Threads, a dica de ferramenta mostra todos os threads, em uma tabela semelhante à janela Threads. |
Exibição de tarefas
Para aplicativos .NET que usam o padrão assíncrono/await, a "Tasks view" é a mais útil para depuração. Para obter um tutorial passo a passo, consulte Depurar um aplicativo assíncrono.
No modo de exibição Tarefas , você pode:
- Exibir visualizações de pilha de chamadas para aplicativos que usam o padrão assíncrono/await.
- Identifique o código assíncrono que está programado para ser executado, mas ainda não está em execução.
A ilustração a seguir mostra a exibição Threads na parte superior e a exibição Tarefas correspondente na parte inferior.
Focalize um método para mostrar uma dica de ferramenta com informações adicionais. Na exibição Tarefas, a dica de ferramenta mostra todas as tarefas em uma tabela semelhante à janela Tarefas.
A imagem a seguir mostra a dica de ferramenta de um método na exibição Threads na parte superior e para a exibição Tarefas correspondente na parte inferior.
Visão do Método
Da exibição Threads ou Tarefas, você pode girar o grafo no método atual selecionando o ícone Alternar Exibição do Método na barra de ferramentas. A 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 a aparência das mesmas informações na exibição Threads à esquerda e na exibição de Método à direita.
Se você alternar para um novo registro de ativação, você tornará esse o método atual e a exibição Método mostrará todos os chamadores e chamados para o novo método. Esse cenário pode fazer com que alguns tópicos apareçam ou desapareçam da visualização, dependendo se esse método aparece nas suas pilhas de chamadas. Para retornar à exibição de pilha de chamadas, selecione o ícone da barra de ferramentas de exibição de Método novamente.
Tutorial em vídeo sobre como depurar threads e tarefas com pilhas paralelas
Estes tutoriais em vídeo demonstram como você pode usar as exibições Threads e Tarefas da janela Pilhas Paralelas no Visual Studio 2022 para depurar seus aplicativos em vários threads.
- Tarefas de depuração com a janela Pilhas Paralelas
- Threads de depuração com a janela Pilhas Paralelas


