web-dev-qa-db-fra.com

Programmes obtenant au hasard System.AccessViolationException

D'accord, j'ai eu beaucoup de problèmes avec le débogage. J'utilise VS2013 Pro et Windows 8.1. Les deux sont à jour. Le problème est que, lorsque je commence le débogage, cette erreur est déclenchée la moitié du temps:

Une exception non gérée du type 'System.AccessViolationException' s'est produite dans System.Windows.Forms.dll

Informations complémentaires: Tentative de lecture ou d'écriture de la mémoire protégée . Cela indique souvent qu'une autre mémoire est corrompue.

Ce n'est pas la faute de mon code non plus. J'ai fait un test simple comme exemple ci-dessous. Notez que je ne fais pas référence à System.Windows.Forms à partir de cette application.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<int> testing = new List<int>();
                for(int i =0; i < 50; i++)
                {
                    testing.Add(i);
                }

                for (int i = 0; i < 50; i++)
                {
                    Console.WriteLine(testing[i].ToString());

                }

                Console.ReadLine();
            }
        }
    }

Je ne sais pas ce qui cause ça. Cela fonctionnera si je clique sur OK et que je l'exécute à nouveau la plupart du temps. Parfois, je dois le faire deux fois.

Des idées?

Trace de la pile:

enter image description here

11
FrostyFire

Changer la cible de la plate-forme en x86 fonctionne pour moi. Il est arrivé à un point qu'il était impossible de parcourir le code sans l'exception susmentionnée. J'exécute Win 8.1 64 bits et Visual Studio 2013.

7
Null

J'ai également rencontré ce problème sur Windows 10 avec Visual Studio Express2015. la construction en x86 n'a pas résolu mon problème, mais la solution de contournement suivante a résolu le problème:

Ce problème est dû au code qui rassemble les valeurs de retour. Il est possible de contourner le problème en désactivant les valeurs de retour gérées.

  1. Accédez aux propriétés du système (Win8: WinKey + X, sélectionnez "Système", Win7: ouvrez les "Propriétés" de mon ordinateur).
  2. Réglages avancés du système
  3. Variables d'environnement…
  4. Cliquez sur ‘Nouveau’ et ajoutez
    • Nom: VSDebug_DisableManagedReturnValue
    • Valeur: 1

source: https://connect.Microsoft.com/VisualStudio/feedback/details/819552/visual-studio-debugger-throws-accessviolationexception

5
craig

http://veriworld.verivox.ads/docs/DOC-6011?et=watches.email.document_comment#comment-4629

Il semble que, dans certains cas, le framework VS/.net présente des problèmes de piétinement de la mémoire. Je souhaite vraiment que les gens cessent de dire «ça ne peut pas être» quand quelqu'un dit que quelque chose se casse.

3
fred

Je peux confirmer ce problème. Il se produit dans un petit programme WinForm (très trivial) distribué avec ma propre application commerciale. Cela ne s'est jamais produit dans une version antérieure de VS remontant à VS2005, y compris celles qui fonctionnent sur le même ordinateur. Cela ne se produit que dans VS2013. Ma version de VS ne comporte aucun complément tiers, à part ce qui est installé avec VS lui-même. Le problème se produit même lorsque tout le code de "Main ()" est mis en commentaire. J'ai essayé de redémarrer, de désactiver le vérificateur de virus, le pare-feu, etc. Peu importe la version de .NET que mon application cible (2.0, 3.5, 4.0, peu importe). Cela arrive souvent, mais au hasard. Parfois cela fonctionne, parfois non. Allez comprendre.

1
Larry

Il n'y a rien qui semble causer des problèmes.

Avez-vous essayé d'activer la rupture sur exception? Cela provoquera une pause de votre code lorsqu'il rencontrera une exception.

enter image description here

1
Gerhard Powell

Dans mon cas, un tel comportement de VS a été provoqué par Comodo Firewall.

La solution ajoute le dossier VS Projects à la liste d'exclusions Comodo HIPS (même si HIPS est désactivé!).

Voici un fil de discussion lié au forum Comodo: https://forums.comodo.com/empty-t98149.0.html

1
Dmitriy Bykov