Partager via


Arrêter 7F, 0x00000008 (double erreur) se produit en raison d’une erreur mono bits dans le registre ESP

Cet article fournit une solution à un 0x0000007F STOP, 0x00000008 message d’erreur sur votre ordinateur en raison d’une erreur de processeur spécifique. Ce message d’erreur peut s’afficher lorsqu’une erreur unique se produit dans le registre ESP d’un processeur en cours d’exécution sur l’ordinateur.

Numéro de base de connaissances d’origine : 842465

Symptômes

Sur un ordinateur exécutant un ou plusieurs processeurs Intel Xeon ou qui exécute d’autres processeurs, Windows peut afficher un message d’erreur Stop similaire à l’exemple suivant :

STOP 0x0000007F (0x00000008, 0x00000000, 0x00000000, 0x00000000) UNEXPECTED_KERNEL_MODE_TRAP

Lorsque ce problème se produit, les conditions suivantes sont remplies :

  • Le premier paramètre de l’erreur Stop est « 0x0000008 ». (Cette erreur est une exception à double erreur.)
  • En raison d’une erreur unique dans la moitié supérieure du registre ESP, la valeur du registre ESP se trouve en dehors de la plage de pile du thread actuel.

Cause

Ce problème se produit si un ou plusieurs processeurs de l’ordinateur :

  • Exiger une mise à jour de microcode qui n’est pas appliquée par le système d’entrée/sortie de base de l’ordinateur (BIOS).

  • Sont endommagés ou défectueux.

  • Fonctionnent en dehors de leurs plages spécifiées pour la température, l’alimentation ou d’autres conditions.

Résolution

Pour résoudre ce problème, utilisez l’une des méthodes de résolution des problèmes suivantes.

Méthode 1 : Déterminer si le processeur exécute la révision de production de la mise à jour de microcode

Une mise à jour de microcode corrige errata, ou bogues, dans la logique implémentée en interne d’un processeur. Les mises à jour de microcode ne peuvent pas être stockées définitivement dans le processeur lui-même et doivent être chargées dans le processeur chaque fois que l’ordinateur démarre. Les mises à jour de microcode peuvent être appliquées par le BIOS de l’ordinateur ou par le pilote Update.sys.

Pour identifier la révision de la mise à jour de microcode actuellement appliquée à un processeur Intel installé sur votre ordinateur, procédez comme suit :

  1. Téléchargez l’utilitaire d’identification du processeur Intel.

  2. Installez et exécutez l’utilitaire d’identification du processeur Intel sur l’ordinateur qui rencontre des symptômes.

  3. Notez les informations de processeur suivantes pour chaque processeur :

    • Famille d’UC
    • Modèle d’UC
    • Pas à pas du processeur
    • Révision du processeur

    La famille d’UC, le modèle d’UC et les valeurs de pas à pas de l’UC identifient le type spécifique de processeur. La valeur révision du processeur identifie la révision de la mise à jour de microcode appliquée.

  4. Contactez le fabricant de votre ordinateur pour déterminer si la révision de la mise à jour du microcode est la révision la plus actuelle disponible pour un processeur particulier. Si la révision n’est pas la plus actuelle, demandez au fabricant de votre ordinateur d’obtenir un BIOS mis à jour qui applique la révision de mise à jour de microcode la plus actuelle.

Les symptômes décrits dans cet article ont été observés le plus fréquemment sur les processeurs Intel Xeon qui ont respectivement les valeurs de processeur famille, de modèle d’UC et de pas de processeur de 15, 2 et 9 et installées sur les cartes mères qui utilisent des puces ServerWorks. (La famille d’UC, le modèle processeur et les valeurs hexadécimales de l’UC sont respectivement F, 2 et 9.) Ces processeurs nécessitent une valeur de révision de 0x18 ou ultérieure pour fonctionner correctement. (0x18 équivaut à une valeur décimale de 24.)

Une valeur de révision de 0 indique que le BIOS de l’ordinateur n’a pas la mise à jour de microcode correcte pour les processeurs installés sur l’ordinateur. Vous devez mettre à jour le BIOS avec une révision de mise à jour de microcode qui prend en charge les processeurs que vous utilisez.

Intel vous recommande d’appliquer les dernières révisions de mise à jour de microcode pour éviter les problèmes connus.

Méthode 2 : Déterminer si un processeur est endommagé ou défectueux

Si les processeurs installés sur les ordinateurs concernés ont appliqué la révision de mise à jour du microcode de production et que les symptômes décrits dans cet article ne se produisent pas sur tous les ordinateurs du même modèle qui exécutent les mêmes processeurs, les processeurs peuvent être défectueux.

Pour déterminer si un processeur est endommagé ou défectueux, déplacez le processeur vers un ordinateur qui ne rencontre aucun symptôme.

Avertissement

Si vous modifiez des processeurs, suivez les instructions fournies par votre fabricant d’ordinateurs ou engagez des techniciens matériels qualifiés appropriés pour modifier les processeurs.

Si les symptômes continuent de se produire sur l’ordinateur d’origine avec le processeur de remplacement, mais pas sur l’autre ordinateur avec le processeur d’origine, le problème n’est probablement pas causé par un processeur endommagé ou défectueux.

Si les symptômes ne continuent pas de se produire sur l’ordinateur d’origine avec le processeur de remplacement, mais qu’ils se produisent sur l’autre ordinateur avec le processeur d’origine, le problème est probablement dû à un processeur endommagé ou défectueux. Dans ce cas, contactez le fabricant de votre ordinateur pour remplacer le processeur d’origine.

Si l’ordinateur qui rencontre les symptômes décrits dans cet article comporte plusieurs processeurs, déplacez tous les processeurs vers l’autre ordinateur. Si les résultats indiquent qu’un ou plusieurs de ces processeurs peuvent être défectueux, déplacez les processeurs un à la fois pour déterminer le processeur ou les processeurs susceptibles d’être défectueux.

Méthode 3 : Déterminer si un processeur fonctionne en dehors d’une plage spécifiée de conditions environnementales

Une température ambiante excessive, une mauvaise ventilation ou une accumulation de poussières peut entraîner des composants électroniques, tels que les processeurs, de se comporter de manière erratique. Les ventilateurs défectueux ou les passages d’air bloqués peuvent causer des problèmes de ventilation. Si l’intérieur ou les passages d’air de l’ordinateur sont poussiéreux, ou si l’ordinateur présente des symptômes lorsqu’il est installé uniquement dans un emplacement particulier, la surchauffe du système peut être un facteur. Assurez-vous que les composants sont propres, que les ventilateurs fonctionnent correctement et que les passages d’air ne sont pas obstrués. En outre, assurez-vous que la pièce où se trouve l’ordinateur est correctement ventilée. La température de la pièce doit se trouver dans la plage d’exploitation spécifiée par le fabricant de l’ordinateur.

La tension supérieure ou inférieure à spécifiée, ou qui varie, peut entraîner des processeurs et d’autres composants électroniques à se comporter de manière erratique. Une tension d’alimentation principale incorrecte ou incohérente, une alimentation surchargée ou incorrectement fonctionnelle sur l’ordinateur, ou un circuit de carte mère de fonctionnement incorrect peut provoquer une tension incorrecte ou incohérente à fournir au processeur. Contactez les techniciens appropriés pour vérifier si l’un de ces problèmes peut être la cause des symptômes.

Plus d’informations

Le registre ESP est également appelé registre de pointeur de pile. Une pile est une structure de données en mémoire utilisée pour stocker des informations sur l’état actuel de l’exécution d’un thread. La pile d’un thread est utilisée pour assurer le suivi des appels de fonction en cours, des paramètres passés à ces fonctions et des variables utilisées par ces fonctions. La valeur du registre ESP doit pointer vers le haut actuel de la pile. Si la valeur dans ESP est incorrecte, il peut pointer vers des informations incorrectes ou vers une adresse non valide. Si la valeur dans ESP pointe vers une adresse non valide, une exception de double erreur peut se produire.

Pour déterminer si l’erreur d’arrêt est le résultat d’une erreur mono bits dans le registre ESP, procédez comme suit :

  1. Installez les outils de débogage Microsoft pour Windows.

  2. Exécutez l’outil WinDbg, sélectionnez Fichier, sélectionnez Ouvrir le vidage sur incident pour localiser le fichier de vidage de mémoire qui contient les informations d’arrêt d’erreur, puis sélectionnez OK.

  3. Exécutez la !analyze -v commande pour obtenir une analyse automatisée du fichier de vidage.

  4. Examinez la sortie de la !analyze -v commande pour voir si la sortie affiche une condition de double erreur. Si une condition double erreur existe, exécutez la .tss 28 commande pour afficher l’état du système au moment de la double erreur. En règle générale, cette valeur est relativement proche de la valeur du registre EBP.

  5. Exécutez la !thread commande pour afficher la plage de pile du thread actuel. Une exception double erreur se produit généralement lorsque la valeur du registre ESP est en dehors de la plage d’adresses réservées à la pile pour le thread actuel.

    Lorsque ce thread particulier est en cours d’exécution, la valeur d’inscription ESP doit toujours être comprise entre la valeur de base de la pile (f5d2a000) et la valeur limite (f5d27000). En règle générale, la valeur du registre ESP est relativement proche de la valeur actuelle (f5d29c9c9c). (La valeur actuelle est également comprise entre la valeur de base de la pile et la valeur limite.)

    Vous pouvez également vérifier les valeurs de plage de pile en exécutant la !pcr commande.

    La NtTib.StackLimit valeur représente la limite inférieure de la plage de pile. La NtTib.StackBase valeur représente une valeur récente d’ESP. La NtTib.StackBase valeur peut être comparée à la valeur actuelle du registre ESP pour vous aider à identifier s’il existe une erreur de bit unique dans la valeur de registre ESP actuelle.

  6. Exécutez la .formats esp ^ ebp commande pour afficher les différences entre les registres ESP et EBP. La valeur du pointeur de pile dans le registre EBP est proche de la valeur du pointeur de pile dans le registre ESP, à l’exception de l’erreur mono bits. Cette commande révèle fréquemment le bit à ordre élevé unique qui contient l’erreur, en particulier lorsque l’erreur s’affiche au format binaire.

    Si vous ignorez les chiffres les moins significatifs, la différence de bits unique entre les registres ESP et EBP est de 0000000 00000 00000 0000000000000000000 au format binaire. La différence est 00080000 au format hexadécimal.

    Cette erreur à un bit entraîne le registre ESP à contenir une valeur incorrecte. La valeur incorrecte provoque une exception de double erreur, une vérification des bogues et un blocage du système.

Pour obtenir plus d’informations sur votre matériel spécifique, procédez comme suit :

  1. Utilisez la !cpuinfo commande pour obtenir les informations de version du processeur.

    Bien que la valeur de la signature de mise à jour ne soit pas toujours signalée avec précision lorsque vous analysez un fichier de vidage sur incident, le champ Signature de mise à jour indique généralement la révision de la mise à jour du microcode appliquée au processeur.

  2. Utilisez la !pcitree commande pour rechercher les identificateurs de fournisseur et d’appareil (ID VenDev) pour les appareils PCI (Device Connect Interface) existants.

    Pour chaque appareil PCI répertorié, la première valeur hexadécimale à 8 chiffres (DWORD) sur chaque ligne est l’ID VenDev. L’ID du fournisseur est en fait les 4 deuxièmes chiffres de cette valeur. Par exemple, le premier appareil répertorié a un ID VenDev de 0x00141166. L’ID d’appareil est 0x0014 et l’ID du fournisseur est 0x1166. L’ID du fournisseur pour ServerWorks est 0x1166. Ainsi, cette sortie provient d’un processeur installé sur une carte mère qui utilise des puces ServerWorks.

Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.