Depurando Aplicativos Multithread
A thread é uma sequência de instruções para a qual o sistema operacional aloca time do processador.Cada processo em execução no sistema operacional consiste em pelo menos um segmento.Processos que têm mais de um thread são chamados de vários segmentos.
Computadores com vários processadores, processadores multi-core ou hyperthreading processos podem executar vários encadeamentos ao mesmo time.Processamento paralelo de vários segmentos pode aumentar bastante o desempenho do programa, mas ele também pode fazer a depuração mais difícil porque ele apresenta a necessidade de manter o controle de vários segmentos.
Além disso, multithreading apresenta alguns novos tipos de erros potenciais.Com freqüência, por exemplo, dois ou mais threads precisam acessar o mesmo recurso, mas apenas um thread pode acessar o recurso com segurança ao mesmo time.Alguma forma de exclusão mútua é necessário certificar-se de que apenas um thread está acessando o recurso por vez.Se a exclusão mútua é executada incorretamente, ela poderá criar um deadlock condição em que nenhum thread possa executar.Os deadlocks podem ser um problema, particularmente difícil para depurar.
Visual Studio 2008 Fornece um melhor Threads janela e Outros usuário interface melhorias para tornar multithread depuração mais fácil. A melhor maneira para aprender sobre os novos recursos de interface de threading é seguindo este explicação passo a passo.Consulte Demonstra Passo a passo: Depurando um aplicativo multithread.
Visual Studio também fornece poderosos pontos de interrupção e tracepoints, que pode ser muito útil quando você depura aplicativos multissegmentados. Você pode usar filtros de ponto de interrupção para colocar os pontos de interrupção em segmentos individuais.Consulte Como: Especificar um filtro de ponto de interrupção.
depuração um aplicativo multithreaded tem uma interface de usuário pode ser especialmente difícil.Nesse caso, você pode considerar a possibilidade de executando o aplicativo em um segundo computador e usar remoto depuração.Para obter mais informações, consulte: Instalação de Depuração Remota.
Nesta seção
Como: Usar a janela Threads
Procedimentos úteis para depuração de segmentos com o Threads janela.Como: comutador para outro thread durante a depuração
Três maneiras de comutador o contexto de depuração para outro thread.Como: Sinalizar e remover o sinalizador de threads
Marcar ou sinalizar threads que você deseja dar atenção especial durante a depuração.Como: conjunto um nome de thread no código nativo
Dê um nome que você exibir no de seu segmentoThreads janela.Como: conjunto um nome de thread no código gerenciado
Dê um nome que você exibir no de seu segmentoThreads janela.Demonstra Passo a passo: Depurando um aplicativo multithread.
Um tour guiado de recursos, com ênfase em recursos de depuração do thread como Visual Studio 2008.Como: Depurar em um cluster de alto desempenho
Técnicas para depuração um aplicativo executado em um cluster de alto desempenho.Dicas para depuração de segmentos no código nativo
Técnicas simples que podem ser útil para depuração threads nativo.
Seções relacionadas
Como: Especificar um filtro de ponto de interrupção
Use filtros de ponto de interrupção quando desejar colocar um ponto de interrupção em um segmentos individuais.Como: Especificar uma ação Tracepoint/ponto de interrupção
Tracepoints permitem a execução de rastreamento do seu programa sem quebra.Isso pode ser útil para estudar problemas sistema autônomo travamentos.Threads gerenciadas
Threading conceitos em .NET Framework programação, incluindo o código de exemplo.Multithreading in Components
Como usar multithreading em .NET Framework componentes.Multisegmentação no Visual Basic
Conceitos e código de exemplo para de ThreadingVisual Basic programadores.Usando o Threading (C# Guia de programação)
Intel ® Threading conceitos e códigos de exemplo para programadores translation from VPE for Csharp.Multiencadeamento
Intel ® Threading conceitos e códigos de exemplo para programadores de C++ usando o MFC.Como: Depurar um aplicativo de cluster remoto
Instruções sobre como configurar remoto depuração para um aplicativo executado em um cluster de alto desempenho.