Question BSOD - sens de bugcheck?


Lorsque vous vous connectez à Windows 7 aujourd'hui, mon PC est instantanément compatible BSOD. En utilisant WhoCrashed, j'obtiens le rapport suivant:

-

  • Le mardi 12.02.2013 13:56:20 GMT votre ordinateur est tombé en panne
  • fichier de vidage sur incident: C: \ Windows \ Minidump \ 021213-27390-01.dmp
  • disponibilité: 00:00:25
  • Cela a probablement été causé par le module suivant: ntoskrnl.exe (nt + 0x1AA698)
  • Code de vérification: 0x1000007E (0xFFFFFFFFC0000096, 0xFFFFF80003610698, 0xFFFFF8800614C7B8, 0xFFFFF8800614C010)
  • Erreur: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M
  • chemin du fichier: C: \ Windows \ system32 \ ntoskrnl.exe
  • produit: Système d'exploitation Microsoft Windows
  • compagnie: Microsoft Corporation
  • la description: Noyau et système NT
  • Bug check description: Cela indique qu'un thread système a généré une exception que le gestionnaire d'erreurs n'a pas interceptée.

Cela semble être un bogue de pilote de logiciel typique et ne devrait pas être causé par un problème matériel. Le crash a eu lieu dans le noyau Windows. Ce problème est peut-être causé par un autre pilote qui ne peut pas être identifié pour le moment.

-

À présent, mon PC s'était écrasé / gelait occasionnellement et sur des tâches spécifiques à la performance dans le passé, mais la cause (je pensais) était une fente RAM défectueuse dans ma carte mère. Garder cette fente vide a arrêté les accidents.

Aujourd'hui, il a encore planté, et je n'ai rien changé au matériel.

Je sais que je pourrais faire le tour de Google en lisant ce que signifie ce code de vérification, mais ces derniers temps, je me suis rendu compte qu'une expérience personnelle (avec le même problème / bug) est beaucoup plus utile. Solution.

Merci beaucoup!


4
2018-02-12 14:17


origine


Tout d'abord ... Mettez à jour tous les pilotes de votre appareil. Utilisez le mode sans échec pour ajuster les pilotes chargés lorsque Windows est chargé - Ramhound
Je vous remercie! En ce qui concerne ma réponse à Ian Boyd, connaissez-vous un bon logiciel de mise à jour des appareils? Ou la méthode manuelle habituelle est-elle toujours la meilleure pour mettre à jour votre (vos) pilote (s)? - cr0z3r
Tout logiciel conçu pour mettre à jour vos pilotes (à l'exception de Windows Update) est une énorme arnaque. Faites le bien toi même - Ramhound


Réponses:


Dans ce cas, un thread a rencontré l'exception

C0000096: STATUS_PRIVILEGED_INSTRUCTION
          Executing an instruction not allowed in current machine mode.

Cette erreur a été soulevée par le processeur lui-même. Certains codes ont tenté d'exécuter une instruction dont ils ne sont pas autorisés à faire. Cela est probablement dû à une corruption de mémoire; où le code du noyau a essayé d'exécuter des données indésirables.

Ce type d'erreur est vraiment impossible à identifier. Il y avait une erreur dans "noyau" code qui n'aurait pas dû arriver. Il est extrêmement improbable qu’il y ait un bogue logiciel dans le code de Microsoft; c'est quand vous commencez à chercher ailleurs.

  • Pilotes tiers. Les lecteurs en mode noyau ont un accès complet au matériel physique. Tout bogue égaré dans un pilote tiers (par exemple, vidéo, son, réseau, USB 3.0, SATA) et il peut corrompre le code ou les données de tout autre élément du système. Prochaines étapes: essayez de supprimer le matériel nouvellement ajouté (certains pilotes tiers ne sont pas chargés), essayez de démarrer en mode sans échec (certains pilotes tiers ne sont pas chargés) ou réinstallez Windows (certains pilotes tiers ne sont donc pas chargés)
  • Bad RAM. Si un bit était retourné, et qu'une instruction parfaitement inoffensive devenait une instruction différente, invalide, vous pourriez obtenir cette erreur. Prochaines étapes: Enlevez le bâton de RAM, déplacez la RAM vers d'autres emplacements, débloquez la RAM, changez les alimentations
  • Overclocking. Parfois, des choses extraordinairement étranges peuvent se produire lorsque vous overclockez. Espérons que tout le monde envoie Microsoft ses vidages sur incident; parce que Microsoft les enquête. Une erreur commune qu'ils pourraient rencontrer est lorsque le processeur exécute l'instruction:

    xor eax, eax;
    

    C'est une opération extraordinairement simple que le processeur peut exécuter; il suffit de définir un registre interne du processeur EAX à zéro. Il n'y a pas façon cela peut échouer; sauf quand vous overclockez - ou d'autres problèmes physiques.

tl; dr: Si vous avez éliminé le logiciel, alors c'est le matériel.

Mettre à jour: Méthode de dépannage

Je voulais mentionner les détails que j'ai vus, presque sans réfléchir, en regardant cette erreur.

Le premier était le code de vérification actuel:

0x1000007E - SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M

Binging que sur Google donne la page de documentation Microsoft

Vérification du bogue 0x1000007E: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M

Cela indique qu'un thread système a généré une exception que le gestionnaire d'erreurs n'a pas interceptée.

Je sais, par expérience en tant que développeur, que si mon application (ou l’un de ses threads) fait "exception", et je ne le fais pas "manipuler"L’exception, Windows finira par la gérer en tuant l’application. Si une exception non gérée se produit en mode noyau, le système d’exploitation n’a pas d’autre choix que de le gérer en fermant le noyau. lequel  exception était jeté. je assumé (à tort, il s'avère) c'était un "Violation d'accès".

Je sais que toutes les vérifications sont accompagnées de quatre paramètres qui décrivent ce qui s'est réellement passé:

  • Paramètre 1: 0xFFFFFFFFC0000096
  • Paramètre 2: 0xFFFFF80003610698
  • Paramètre 3: 0xFFFFF8800614C7B8
  • Paramètre 4: 0xFFFFF8800614C010

Mais ce que l'enfer ne signifient ces ?! C'est quand nous revenons à la page de documentation, qui ne les décrit pas. Mais ça Est-ce que dire:

La vérification du bogue 0x1000007E a la même signification et les mêmes paramètres que vérification du bogue 0x7E (SYSTEM_THREAD_EXCEPTION_NOT_HANDLED).

Excellent. Et cette autre page documente les paramètres:

Paramètres SYSTEM_THREAD_EXCEPTION_NOT_HANDLED

Les paramètres suivants apparaissent sur l'écran bleu.

  • Paramètre 1: Le code d'exception qui n'a pas été traité
  • Paramètre 2: L'adresse où l'exception est survenue
  • Paramètre 3: l'adresse de l'enregistrement d'exception
  • Paramètre 4: L'adresse du dossier de contexte

C'est ce que je voulais, le code d'exception qui n'a pas été traité. Dans votre cas, il s’agissait d’un code d’exception:

0xFFFFFFFFC0000096

Je sais par expérience que vous utilisez Windows 64 bits, car ce code a une longueur de 64 bits. Vraiment je veux seulement les 32 bits inférieurs:

0xC0000096

Normalement, je m'attendrais à trouver ce code d'erreur dans winerror.hdans mon répertoire de développement; mais ce n'était pas là. Il a fallu un peu de Binging, mais j'ai trouvé que la recherche de:

winerror C0000096

me conduire à une page sur vinhq, qui a déclaré la constante:

STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096

Binging pour cette constante me conduire un page de documentation Microsoft canonique:

Exceptions matérielles

STATUS_PRIVILEGED_INSTRUCTION: Exécution d'une instruction non autorisée dans le mode machine actuel.

Je sais aussi que cette exception est levée par le CPU lui-même. je sais que parce que "Instruction privilégiée" signifie que vous avez essayé d'exécuter une instruction de CPU que vous n'êtes pas autorisé. Je peux aussi le savoir parce que la page s'appelle Exceptions matérielles.

Nous sommes donc à un point où du code était en cours d'exécution qui essayait d'exécuter une instruction de CPU dont il n'était pas censé le faire. Il y a deux possibilités:

  • la mémoire était corrompue; le logiciel n'a pas été écrit pour essayer d'exécuter ce code, mais c'est ce qui vient de finir dans la RAM
  • c'est vraiment un logiciel buggé, et il a essayé de faire quelque chose qu'il n'est pas autorisé.

Étant donné que le code de Microsoft est constamment testé sur le terrain dans des millions de machines chaque jour, il est plus probable que:

  • être un problème avec votre matériel
  • un bogue dans le code de quelqu'un qui pose problème

En tout cas, c'était Comment J'ai travaillé sur ce bugcheck. Peut-être qu'en sachant comment je suis passé par là, cela peut vous aider la prochaine fois que vous aurez une vérification.


10
2018-02-12 14:41



Je vous remercie! Recommanderiez-vous un outil spécifique qui me permettrait de vérifier / mettre à jour mes pilotes à leur dernière version, ou devrais-je le faire manuellement? - cr0z3r
@ cr0z3r Je n'ai jamais trouvé un seul vérificateur de pilote générique (je parle de ceux qui vérifient tous les pilotes de votre ordinateur, pas ceux qui vérifient si un pilote spécifique est à jour), ce n'était pas une arnaque / un logiciel publicitaire. Je voudrais aller sur le site Web de chaque fabricant vous-même. - Scott Chamberlain
@ScottChamberlain Précisément mon point: ils proposent toujours une version d'évaluation qui répertorie un milliard de pilotes obsolètes, mais ce n'est qu'après avoir acheté leur version pro-super exclusive que vous êtes censé les mettre à jour automatiquement. Quoi qu'il en soit, le travail manuel est. Je vous remercie! - cr0z3r
Il n'est pas prudent de supposer cela. Microsoft dispose uniquement de pilotes que les fabricants soumettent à WHQL pour les tests WHQL. Dans mon cas, cela signifiait un pilote de chipset réseau vieux de dix ans, plutôt que celui créé l'an dernier. Realtek n'a jamais pris la peine de le soumettre à Microsoft. Windows Update ne l’aura donc pas. C'est pourquoi vous devrez parfois aller chez les fabricants. Le chipset USB3.0 de ma carte mère n’a pas de pilote sur Windows Update; Je devais aller sur leur site web. nVidia ne met pas toujours à jour les pilotes WHQL. Parfois, même les pilotes de chipset de la carte mère. - Ian Boyd
Par contre, vous ne voulez pas mettre à jour les pilotes bon gré mal gré. Parfois, les plus récents et les meilleurs ont des bogues qui n'ont pas encore été trouvés. Je préfère faire confiance aux pilotes certifiés WHQL (hors Windows Update). Mais si vous avez un problème avec quelque chose, vous n'avez pas d'autre choix que de mettre à jour les pilotes. - Ian Boyd