Épisode

Violation d’accès C0000005

Une violation d’accès est un type d’exception provoqué lorsqu’une application lit, écrit ou exécute une adresse mémoire non valide.

Le code d’exception est 0xC0000005

Le premier paramètre d’exception (0) est le type de la violation ; Lecture (0), Écriture (1) ou Exécution (8)

Le deuxième paramètre d’exception (1) est l’adresse de la violation.

Suivez ces étapes lors du débogage de ces problèmes avec les outils de débogage pour Windows :

  1. .exr -1
    • Code d’exception
    • Paramètre[0] - Lecture (0), Écriture (1), Exécution (8)
    • Paramètre[1] - Adresse
  2. .ecxr
    • Inscrire des valeurs au niveau de la violation d’accès
    • Instruction assembleur
      • Lecture : examinez l’expression à droite de la virgule
      • Écrire : examinez l’expression à gauche de la virgule
      • Exécuter - examiner l’adresse de l’expression
  3. k
    • Afficher la pile des appels au niveau de la violation d’accès

L’adresse mémoire peut ne pas être valide en raison de l’un des scénarios courants suivants :

  • Pointeur NULL : adresses entre 0x0 et 0x10000 (64 Ko) : par exemple, une fonction qui retourne généralement un pointeur retourné NULL (0x0) et le pointeur a été accédé sans vérification
  • Altération de la mémoire : l’adresse a été remplacée par erreur ou malveillante , généralement par le biais d’un dépassement de mémoire tampon (ou sous-exécution)
  • Use-After-Free : l’adresse a été valide, mais est désormais accessible après sa libération (données) ou le déchargement (code)
  • Bit-Flip - Problème de RAM (matériel) où un ou plusieurs bits ont retourné (rare)

Pour connaître les problèmes de lecture ou d’écriture , reportez-vous à l’épisode Lecture ou Écriture .
Pour connaître les problèmes d’exécution , reportez-vous à l’épisode Exécuter .

Notez que les applications CLR avec lèvent une exception System.NullReferenceException au lieu d’une exception de violation d’accès lorsque l’adresse est comprise entre 0x0 et 0x10000 (64 Ko).

Ressources supplémentaires :

Vous voulez donner votre avis ? Soumettez un problème ici.