Partager via


Débogage des applications multithread

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 d'interblocage dans laquelle aucun thread ne peut s'exécuter.Le débogage des interblocages peut s'avérer particulièrement compliqué.

Visual Studio 2012 fournit une fenêtre améliorée de Threads , le nouveau GPU entraîne la fenêtre, la nouvelle fenêtre Espion parallèle et d'autres améliorations de l'interface utilisateur pour faciliter le débogage multithread. Le meilleur moyen pour en savoir plus sur les nouvelles fonctionnalités de l'interface de threading consiste à suivre les procédures pas - à - pas.Consultez Procédure pas à pas : débogage d'une application multithread et Procédure pas-à-pas : débogage d'une application C++ AMP.

Visual Studio fournit également des points d'arrêt et des points de trace puissants, qui peuvent être très utiles lors de le 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