Usando a janela de pilhas paralela
O Paralela pilhas janela é útil quando você está depurando aplicativos multithread. Sua Visualização Threads mostra informações de pilha de chamada para todos os segmentos em seu aplicativo. Permite que você navegue entre threads e quadros de pilha em um desses segmentos. No código gerenciado, o o modo de exibição de tarefas mostra de pilhas de chamada System.Threading.Tasks.Task objetos. Em código nativo, o o modo de exibição de tarefas mostra de pilhas de chamada grupos de tarefas, algoritmos paralelos, agentes assíncronos, e tarefas leves.
Visualização de threads
A ilustração a seguir mostra um segmento que passou de principal para A, 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 de 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 pilha do ativo representado pela seta amarela. Você pode alterar o quadro de pilha atual, selecionando um método diferente do 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 |
Element Name |
Description |
---|---|---|
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ó não tem seta linhas conectadas a ele, ele representa o caminho da chamada inteira para os segmentos. |
B |
Realce azul |
Indica o caminho da chamada do thread atual. |
C |
Linhas de seta |
Conectar-se a nós para que compõem o caminho da chamada inteira para os segmentos. |
D |
Dica de ferramenta no cabeçalho do nó |
Mostra a identificação 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 |
Mostra detalhes de todos os quadros de pilha representando o contexto do método. Quadros de pilha no thread atual são mostrados em negrito. |
Além disso, a janela de pilhas paralela mostra uma 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:
Icon |
Description |
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 pilha ativo de um thread não atual. |
|
Indica que o contexto do método contém o quadro de pilha atual. O nome do 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 de pilhas paralela.
Letra do texto explicativo |
Control |
Description |
---|---|---|
A |
Caixa de combinação de threads/tarefas. |
Alterna o modo de exibição entre pilhas de threads e chamar pilhas de tarefas. Para obter mais informações, consulte modos de exibição de tarefas e segmentos. |
B |
Mostrar apenas sinalizado |
Mostra as pilhas de chamadas somente para os segmentos (ou tarefas) são sinalizadas na janela Threads ou janela de tarefas paralelas. |
C |
Alternar modo de exibição de método |
Alterna entre os modos de exibição de pilha e método. Para obter mais informações, consulte o método de exibição. |
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 das outras janelas ou estão atingindo a 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 |
Description |
---|---|
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 pilha realçado. |
Alternar para quadro |
Mesmo que o comando de menu correspondente na janela Call Stack. No entanto, com pilhas de paralelo 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 no segmento atual, no menu que corresponde ao quadro de pilha é selecionado. |
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. |
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 de tarefas
Se seu aplicativo está 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 pilhas paralela para alternar para o o modo de exibição de tarefas. Modo de exibição de tarefas mostra as pilhas de chamadas de tarefas em vez de threads. Modo de exibição tarefas difere de visualização de Threads da seguinte maneira:
Pilhas de chamadas de segmentos que não estão executando tarefas não são mostradas.
Pilhas de chamadas de segmentos que estão executando tarefas visualmente são cortadas da parte superior ou 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 fora 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.
A ilustração também mostra que os cabeçalhos de nós no modo de exibição de tarefas mostram o status das tarefas que eles representam. Conforme descrito na tabela anterior, focalizando um cabeçalho de nó ou um contexto de método, você pode ver informações adicionais. A imagem a seguir mostra as informações na dica de ferramenta para visualização de Threads e o modo de exibição de tarefas.
Visualização do método
Visualização de Threads ou no 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 de 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 no modo de exibição, dependendo se o método aparece 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
Demonstra Passo a passo: Depurando um aplicativo paralelo
Usando a janela de tarefas paralelas
Demonstra Passo a passo: Depurando um aplicativo paralelo
Referência
Conceitos
Programação em paralela a.NET Framework