Mises à jour pour les points d’arrêt et de débogage de Visual Studio 2008 SP1

INTRODUCTION

Microsoft a publié des mises à jour pour les composants du débogueur Microsoft Visual Studio 2008 SP1. Ces mises à jour principalement des problèmes qui se produisent avec l’exécution pas à pas et en appuyant sur les points d’arrêt.

Plus d'informations

Installation

Cette mise à jour est pour toutes les versions de Visual Studio 2008 SP1 sur des ordinateurs à la fois x86 et x64. Toutefois, si vous utilisez Visual Studio 2008 Standard Edition sur un système d’exploitation 64 bits, vous devez installer le débogueur distant 64 bits Visual Studio 2008 SP1 avant d’appliquer cette mise à jour. Pour plus d’informations sur la façon d’obtenir le débogueur distant 64 bits Visual Studio 2008 SP1, visitez le site Web de Microsoft à l’adresse suivante :

Correctifs de débogueur multiprocessus et multi-thread

Remarque Les descriptions suivantes font référence à un ensemble hypothétique de processus qui sont en cours de débogage par une seule instance de Visual Studio. Lorsque les fonctions sont visées, il est supposé que les fonctions sont récursifs ou que les fonctions contiennent des boucles. Ces scénarios ne sont pas conçus pour reproduire le problème. Au lieu de cela, ils sont fournis pour vous aider à comprendre le problème.

Points d’arrêt dans une boucle parallélisée sont ignorés par la suite après plusieurs demandes d’accès

Points d’arrêt placés dans des boucles ou récursive de fonctions ne sont pas atteints dans tous les processus à chaque itération. Bien souvent, certains processus peuvent passer à travers de nombreuses itérations d’une boucle, en ignorant le point d’arrêt, avant l’arrêt d’un processus. Considérez le scénario suivant :
  1. Vous démarrez le débogage de plusieurs processus. Un des processus que vous déboguez est dans une boucle serrée, ou il s’agit d’une fonction récursive.
  2. Vous arrêtez le thread principal du processus actuel (le dernier processus pour atteindre le point d’arrêt) et ensuite vous continuez à déboguer. Répétez cette action pour chaque processus.
  3. Vous redémarrez les threads pour chaque processus.
Vous remarquez qu’après plusieurs itérations, points d’arrêt n’a plus de positionnement. Ce problème est inattendu.

Points d’arrêt d’entraîne l’arrêt et le démarrage des threads

Points d’arrêt sont atteints, mais ils ne sont pas visibles lorsque vous déboguez plusieurs processus dans le débogueur Visual Studio. Envisagez le scénario suivant, dans lequel vous déboguez les deux processus, processus de A et b de processus.
  1. Vous définissez un point d’arrêt sur ces deux processus et commencez le débogage. Les deux points d’arrêt seront atteint.
  2. Vous arrêtez le thread principal du processus A, vous sélectionnez le processus B et puis vous appuyez sur la touche F11 pour passer à la commande une fois.
  3. Vous redémarrez le thread principal du processus A, et puis que vous arrêtez le thread principal du processus B. Ensuite, vous appuyez sur F11 pour passer à la commande.

    Vous remarquez que les deux processus sont sur la même ligne.

  4. Arrêt de la thread principale du processus A. Aucun thread ne doit être arrêté à ce stade.
  5. Appuyez sur F5 pour continuer.
Le processus doit se terminer et que Visual Studio doit revenir en mode Création. Toutefois, cela ne se produit pas. Les processus de saut ultérieurement dans le code.

Remarque Si vous supprimez les points d’arrêt lorsque vous appuyez sur F5 pour continuer, le débogueur s’exécute jusqu'à ce qu’elle est terminée.

Visual Studio peut se bloquer lorsque vous déboguez plusieurs processus en même temps

Débogueur de Visual Studio peut rencontrer un interblocage lorsque vous démarrez et arrêtez un thread, puis exécutez le point d’arrêt suivant si plusieurs processus sont en cours de débogage. Considérez le scénario suivant :
  1. Vous définissez des points d’arrêt sur trois déclarations de variable arbitraires.
  2. Vous démarrez le débogage de 16 processus.
  3. Vous provoquez une interruption dans un processus, et puis vous arrêter son thread principal.
  4. Vous appuyez sur F5.
  5. Répétez les étapes 3 et 4 jusqu'à ce que tous les processus ont atteint le point d’arrêt.
  6. Vous démarrez les threads principales de tous les processus.
  7. Pour chaque processus, vous supprimez le premier point d’arrêt et vous appuyez sur F5.
  8. Pour chaque processus, vous répétez les étapes 3 et 4. Le deuxième point d’arrêt doivent être tous les processus.
  9. Vous appuyez sur F5.
  10. Pour chaque processus, vous répétez les étapes 3 et 4.
Le troisième point d’arrêt doivent parvenir à tous les processus, mais au moins un processus peuvent être bloqué dans l’état en cours d’exécution.

Exécution pas à pas sur un point d’arrêt désactivé lorsque vous déboguez une application native se transforme en un « go »

Vous déboguez une application native dans Visual Studio qui contient un point d’arrêt désactivé. Lorsque vous passez le débogueur au-delà du point d’arrêt désactivé, les étapes restantes sont perdues, et l’application continue à s’exécuter.

Pas à pas lors du débogage d’une application multithread managée peut transformer au hasard un « go »

Lorsque vous déboguez une application managée multithread et intégrer un thread pendant un événement se produit avec un autre thread, par exemple en cliquant sur le point d’arrêt, la demande de l’étape est perdue. Et bien, l’application continue à s’exécuter.

Débogueur message passant d’Interface (MPI) résout pour les éditions de Visual Studio offre la prise en charge de plug-in de MPI

Visual Studio se bloque lorsque vous utilisez la commande « Détaillé » pour démarrer un programme MPI

Lorsque vous utilisez la commande pas à pas détaillé , ou appuyez sur F11 pour déboguer plusieurs instances d’un processus MPI, Visual Studio se bloque. Ou bien, vous recevez le message d’erreur suivant :

Microsoft que Visual Studio a rencontré et erreur interne

Exécution de la commande « Pas à pas principal » pendant que vous déboguez plusieurs processus provoque un blocage

Si vous exécutez la commande Pas à pas principal pendant que vous déboguez plusieurs processus, Visual Studio se bloque. Considérez le scénario suivant :
  1. Vous ouvrez une application multithread.
  2. Vous définissez un point d’arrêt sur un appel de fonction récursive.
  3. Deux processus de débogage.
  4. Vous démarrez le débogage. Le point d’arrêt est atteint dans le premier processus.
  5. Vous appuyez sur F5. Le point d’arrêt est atteint sur le deuxième processus.
  6. Vous arrêtez le thread principal du premier processus.
  7. Vous exécutez la commande Pas à pas principal sur le deuxième processus, puis vous cliquez sur Pause.

    L’opération ne peut pas aboutir car elle est en attente pour le premier processus. Vous cliquez sur Pause pour entrer en mode arrêt. Le débogueur utilise une flèche verte pour indiquer le processus de relevé suivant qu’elle sera exécutée lorsqu’il retourne de la fonction.
  8. Vous ajoutez un point d’arrêt dans le deuxième processus.
  9. Vous arrêtez le premier processus, et vous appuyez sur F5.
À ce stade, vous vous attendez le débogueur pour atteindre le point d’arrêt dans chaque processus. Toutefois, les deux processus sont prises en interblocage à l’intérieur de la fonction et le point d’arrêt qui a été ajouté dernière n’est jamais atteint. En outre, le débogueur ne peut pas exécuter à la fin de l’application.

Correctif de l’interface utilisateur de point d’arrêt

Les points d’arrêt désactivés ne sont pas visibles après l’installation de Visual Studio 2008 Service Pack 1

Si vous désactivez un point d’arrêt, le point d’arrêt a été atteint n’est plus. En outre, le point d’arrêt est masquée à partir du canal de l’éditeur de la plus à gauche. Le point d’arrêt désactivé existe toujours. Il s’affiche dans la fenêtre points d’arrêt.

Résolution

Un correctif pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif vise à corriger uniquement le problème décrit dans cet article. Appliquez ce correctif uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif va peut-être subir des tests supplémentaires. Par conséquent, si vous n'êtes pas sérieusement concerné par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielle qui contiendra ce correctif.

Pour télécharger ce correctif depuis MSDN Code Gallery, visitez le site Web de Microsoft à l’adresse suivante :


Remarque MSDN Code Gallery affiche les langues pour lesquelles ce correctif est disponible. Si vous ne voyez pas votre langue, c'est certainement dû au fait que la page de ressource Code Gallery n'existe pas dans cette langue.


Remarque Si des problèmes supplémentaires se produisent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être formuler une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux questions et problèmes qui ne relèvent pas de ce correctif logiciel. Pour une liste complète des numéros de téléphone du Service clientèle et support technique de Microsoft ou pour créer une demande de service distincte, visitez le site Web de Microsoft à l'adresse suivante :

Conditions préalables


Vous devez disposer de Microsoft Visual Studio 2008 Service Pack 1 pour appliquer ce correctif.

Nécessite un redémarrage


Vous n’êtes pas obligé de redémarrer l’ordinateur après avoir appliqué ce correctif.

Informations de remplacement du correctif


Ce correctif ne remplace aucun autre correctif.

Informations sur les fichiers


La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez la
Fuseau horaire
onglet dans le
Date et heure
élément dans le panneau de configuration.
Nom de fichierVersion de fichierTaille du fichierDateHeurePlateforme
AvVsPkDH.dll9.0.30729.177325848-Nov-082:19x86
AvVsPkDH.dll9.0.30729.177382168-Nov-082:19x64
AvVsPkDH.dll9.0.30729.177750808-Nov-082:19IA-64
AvVsPkDH.dll9.0.30729.177750808-Nov-082:19x86
AvVsPkDH.dll9.0.30729.177382168-Nov-082:19x86
AvVsPkDH.dll9.0.30729.177325848-Nov-082:19x86
cpde.dll9.0.30729.1776526088-Nov-082:19x86
mcee.dll9.0.30729.17711809928-Nov-082:19x86
mcee.dll9.0.30729.1776567048-Nov-082:19x86
mcee.dll9.0.30729.1773648648-Nov-082:19x86
mcee.dll9.0.30729.1773648648-Nov-082:19x86
mcee.dll9.0.30729.1776567048-Nov-082:19x64
mcee.dll9.0.30729.17711809928-Nov-082:19IA-64
mpishim.exe9.0.30729.177238808-Nov-082:19x86
mpishim.exe9.0.30729.177238808-Nov-082:19x86
mpishim.exe9.0.30729.177238808-Nov-082:19x86
mpishim.exe9.0.30729.177238808-Nov-082:19x86
mpishim.exe9.0.30729.177290008-Nov-082:19x64
mpishim.exe9.0.30729.177546008-Nov-082:19IA-64
msvb7.dll9.0.30729.17740871048-Nov-082:19x86
msvb7.dll9.0.30729.17757331848-Nov-082:19x86
msvb7.dll9.0.30729.17727425928-Nov-082:19x86
msvb7.dll9.0.30729.17740871048-Nov-082:19x86
msvb7.dll9.0.30729.17740871048-Nov-082:19x86
msvb7.dll9.0.30729.17727425928-Nov-082:19x64
msvb7.dll9.0.30729.17757331848-Nov-082:19IA-64
msvsmon.exe9.0.30729.17799925208-Nov-082:19x86
msvsmon.exe9.0.30729.17747614168-Nov-082:19x86
msvsmon.exe9.0.30729.17732167128-Nov-082:19x86
msvsmon.exe9.0.30729.17732167128-Nov-082:19x86
msvsmon.exe9.0.30729.17747614168-Nov-082:19x64
msvsmon.exe9.0.30729.17799925208-Nov-082:19IA-64
NatDbgDE.dll9.0.30729.17713479128-Nov-082:19x86
NatDbgDE.dll9.0.30729.1773141848-Nov-082:19x86
vsdebug.dll9.0.30729.17715849688-Nov-082:19x86
msvb7.dll9.0.30729.17740871048-Nov-082:19x86

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».
Propriétés

ID d'article : 957912 - Dernière mise à jour : 13 janv. 2017 - Révision : 1

Commentaires