Usando a janela de pilhas paralela
O Paralela pilhas janela é útil quando você está depurando aplicativos multithread.Sua Visualização de Threads mostra informações de pilha de chamada para todos os threads em seu aplicativo.Ele permite que você navegue entre threads e quadros de pilha em desses segmentos.No código gerenciado, o Modo de exibição tarefas mostra chama pilhas de System.Threading.Tasks.Task objetos.Em código nativo, o Modo de exibição tarefas mostra chama pilhas de grupos de tarefas, algoritmos paralelos, agentes assíncronos, e tarefas leves.
Visualização de threads
A ilustração a seguir mostra um segmento que caiu de principal para a para b e, em seguida, alguns códigos externos.Dois outros threads iniciado a partir de alguns códigos externos e, em seguida, passou para A, mas um dos threads continuação para b e, em seguida, alguns códigos externos e o outro segmento de continuação para c e, em seguida, alguns AnonymousMethod.
Na ilustração, o caminho da chamada do thread atual é realçado em azul e o quadro de pilhas ativo representado pela seta amarela.Você pode alterar o quadro de pilha atual, selecionando um método diferente no Paralela pilhas janela.Isso pode resultar em também alternar o segmento atual, de acordo com o método selecionado parte do segmento atual ou de outro thread.A tabela a seguir descreve os principais recursos da Paralela pilhas janela conforme mostrado na ilustração.
Letra do texto explicativo |
Nome do elemento |
Descrição |
---|---|---|
A |
Segmento de pilha de chamada ou nó |
Contém uma série de contextos de método para um ou mais threads.Se o nó tiver sem linhas de seta conectadas a ele, ele representa o caminho da chamada inteira para os segmentos. |
B |
Realce azul |
Indica o caminho da chamada do segmento atual. |
C |
Linhas de seta |
Conectar-se a nós para compor o caminho da chamada inteira para os segmentos. |
D |
Dica de ferramenta no cabeçalho do nó |
Mostra o ID e o nome definido pelo usuário de cada thread cujo caminho chamada compartilha esse nó. |
E |
Contexto do método |
Representa um ou mais quadros de pilha no mesmo método. |
F |
Dica de ferramenta no contexto do método |
Na visualização de Threads, ele mostra todos os threads em uma tabela similar do segmentos janela.No modo de exibição de tarefa, ele mostra todas as tarefas em uma tabela similar do Tarefas paralelas janela. |
Além disso, a janela de pilhas paralela mostra uma Exibição vista panorâmica ícone no painel principal quando o gráfico é grande demais para caber na janela.Você pode clicar no ícone para ver o gráfico inteiro na janela.
Ícones de contexto do método
A tabela a seguir descreve os ícones que fornecem informações sobre os quadros de pilha de ativos e atual:
Ícone |
Descrição |
Indica que o contexto do método contém o quadro ativo de pilha do thread atual. |
|
Indica que o contexto do método contém o quadro de pilhas ativo de um thread não atual. |
|
Indica que o contexto do método contém o quadro de pilha atual.Esse nome de método está em negrito em todos os nós em que ele apareça. |
Controles da barra de ferramentas
A ilustração e a tabela a seguir descrevem os controles que estão disponíveis na barra de ferramentas pilhas paralela.
Letra do texto explicativo |
Controle |
Descrição |
---|---|---|
A |
Caixa de combinação de threads/tarefas. |
Alterna o modo de exibição entre pilhas de segmentos de chamada e chamar pilhas de tarefas.Para obter mais informações, consulte modos de exibição de tarefas e segmentos. |
B |
Mostrar apenas sinalizado |
Pilhas de chamada mostra somente para os threads sinalizados em outras janelas de depuração, tais como o Segmentos de GPU janela e o Watch paralela janela. |
C |
Alternar modo de exibição do método |
Alterna entre os modos de exibição de pilha e método.Para obter mais informações, consulte visualização do método. |
D |
Rolagem automática para o quadro de pilha atual |
Autoscrolls o diagrama para que o quadro de pilha atual está no modo de exibição.Esse recurso é útil quando você está alterando o quadro de pilha atual de outras janelas ou quando você a alcançar um novo ponto de interrupção em diagramas grandes. |
E |
Controle de Zoom de alternância |
Mostra ou oculta o controle de zoom.Você também pode ampliar pressionando CTRL e ativando 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 estão disponíveis quando o botão direito do mouse um contexto de método na visualização de Threads ou modo de exibição de tarefas.Os últimos seis itens forem emprestados diretamente da janela Call Stack e não apresentam nenhum novo comportamento.
Menu Item |
Descrição |
---|---|
Sinalizador |
Sinaliza o item selecionado. |
Remover sinalização |
Unflags o item selecionado. |
Congelar |
Congela o item selecionado. |
Descongelamento |
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 a mesma estrutura de pilhas realçada. |
Vá para o código-fonte |
Navega para o local no código-fonte que corresponde ao quadro de pilha que o usuário right-clicked. |
Alternar para quadro |
Mesmo que o comando de menu correspondente na janela Call Stack.No entanto, com pilhas de paralela, vários quadros podem corresponder ao contexto de um método.Portanto, o item de menu tem submenus, cada um deles representa um quadro de pilha específico.Se um dos quadros de pilha estiver no thread atual, o menu correspondente a esse quadro de pilha é selecionado. |
Ir para desmontagem |
Navega para o local na janela disassembly que corresponde ao quadro de pilha que o usuário right-clicked. |
Mostrar código externo |
Mostra ou oculta o código externo. |
Exibição hexadecimal |
Alterna entre a exibição de decimal e hexadecimal. |
Informações de carga de símbolo |
Exibe a caixa de diálogo correspondente. |
Configurações de símbolo |
Exibe a caixa de diálogo correspondente. |
Modo de exibição tarefas
Se seu aplicativo estiver usando System.Threading.Tasks.Task objetos (código gerenciado) ou task_handle objetos (código nativo) para expressar o paralelismo, você pode usar a caixa de combinação da barra de ferramentas da janela de pilhas paralela para alternar para o Modo de exibição tarefas.Modo de exibição de tarefas mostra as pilhas de chamadas de tarefas em vez de threads.Modo de exibição de tarefas é diferente de visualização de Threads da seguinte maneira:
Pilhas de chamadas de segmentos que não estejam executando as tarefas não são mostradas.
Pilhas de chamadas de segmentos que estão executando tarefas visualmente são cortadas na parte superior e inferior para mostrar os quadros mais relevantes que pertencem às tarefas.
Quando várias tarefas estão em um thread, as pilhas de chamadas dessas tarefas são divididas check-out em nós separadas.
A ilustração a seguir mostra o modo de exibição de tarefas pilhas paralela à direita e a visualização de Threads correspondente à esquerda.
Para ver a pilha de chamadas inteira, apenas alterne para a visualização de Threads direito do mouse em um quadro de pilha e, em seguida, clicando em Ir para o segmento.
Conforme descrito na tabela anterior, focalizando um contexto de método, você pode ver informações adicionais.A imagem a seguir mostra as informações na dica de ferramenta para o modo de exibição de Threads e o modo de exibição de tarefas.
Visualização do método
Na visualização de Threads ou modo de exibição de tarefas, você pode dinamizar o gráfico no método atual, clicando no ícone do modo de exibição do método na barra de ferramentas.Método de exibição 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 uma visualização de Threads e também como as mesmas informações aparece no modo de exibição do método.
Alternando para um novo quadro de pilha, faça esse método método atual e fazer com que a janela para mostrar todos os chamadores e chamados para o novo método.Isso pode causar alguns segmentos apareçam ou desapareçam da exibição, dependendo se esse método é exibida em suas pilhas de chamadas.Para retornar ao modo de exibição de pilha, clique no botão de barra de ferramentas de visualização do método novamente.
Consulte também
Tarefas
Passo a passo: Depurando um aplicativo paralelo
Passo a passo: Depurando um aplicativo paralelo
Referência
Conceitos
Usando a janela de tarefas paralelas