Débogage des applications multithread

Mise à jour : novembre 2007

Un thread est une séquence d'instructions à laquelle le système d'exploitation alloue du temps processeur. Chaque processus exécuté dans le système d'exploitation se compose d'au moins un thread. Les processus qui comportent plusieurs threads sont appelés multithread.

Les ordinateurs avec plusieurs processeurs, des processeurs multicœur ou des processus d'hyperthreading peuvent exécuter plusieurs threads en même temps. Le traitement en parallèle de plusieurs threads peut améliorer considérablement les performances du programme. Toutefois, il peut également compliquer le débogage, car il implique la nécessité de suivre plusieurs threads.

De plus, le multithreading introduit de nouveaux types de bogues potentiels. Par exemple, plusieurs threads doivent souvent accéder à la même ressource, mais un seul thread peut accéder à la ressource en toute sécurité à un moment donné. Une forme d'exclusion mutuelle est nécessaire pour s'assurer qu'un seul thread à la fois accède à la ressource. Si l'exclusion mutuelle est exécutée de manière incorrecte, elle peut créer une condition de blocage dans laquelle aucun thread ne peut s'exécuter. Le débogage des blocages peut s'avérer particulièrement compliqué.

Visual Studio 2008 dispose d'une fenêtre Threads améliorée et d'autres améliorations de l'interface utilisateur facilitant le débogage d'applications multithread. Le meilleur moyen pour en savoir plus sur les nouvelles fonctionnalités de l'interface de threading consiste à suivre la procédure pas à pas. Consultez Procédure pas à pas : débogage d'une application multithread.

Visual Studio fournit également des points d'arrêt et des points de trace puissants, qui peuvent s'avérer très utiles lors du débogage d'applications multithread. Vous pouvez utiliser des filtres de point d'arrêt pour placer des points d'arrêt sur des threads. Consultez Comment : spécifier un filtre de point d'arrêt.

Le débogage d'une application multithread comportant une interface utilisateur peut s'avérer tout particulièrement difficile. Dans ce cas, vous pouvez envisager d'exécuter l'application sur un deuxième ordinateur et d'utiliser le débogage distant. Pour plus d'informations, consultez Programme d'installation du débogage distant.

Dans cette section

Rubriques connexes

Voir aussi

Autres ressources

Utilisation des threads et des processus

Programme d'installation du débogage distant