IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual Studio Discussion :

Débugger les OutOfMemoryException


Sujet :

Visual Studio

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut Débugger les OutOfMemoryException
    Je manipule des images de grandes tailles.

    J'ai une suite d'instructions qui me lèvent une "OutOfMemoryException".
    Apparement cela veut dire que j'ai une instruction qui demande plus de 64ko (d'après la doc).

    Le problème pour débugger cela c'est que je ne peux pas voir à quel moment l'exception est levée car l'exception est levée lors d'une exécution "normale" mais PAS lors d'une exécution "pas à pas" ... (si je parcours mes instructions avec le mode pas à pas aucune exception n'est levée)

    Pourquoi je n'ai pas d'exception lors de mon debug pas à pas ?
    Comment surveiller l'utilisation de la mémoire pendant le débuggage ?

    merci

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    OutOfMemory je verra plus une tentative d'allocation d'un objet, array ou n'importe quoi alors qu'il n'y a plus de mémoire disponible. Peut être en mettant un try-catch entourant le code suspect avec un MessageBox pour afficher l'exception (en espérant que ça ne recrée pas un OutOfMemory).

    Sinon il fait quelque chose de spécial ton code ?

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut
    Citation Envoyé par smyley Voir le message
    Sinon il fait quelque chose de spécial ton code ?
    Pour être précis l'exception est levée lors du chargement d'une image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Bitmap image = (Bitmap)System.Drawing.Image.FromFile("mon chemin vers mon image");
    J'accède à l'image auparavant (en prenant bien soin de faire le Dispose() quand je n'en ai plus besoin).

    Je pense que le problème vient de là et est accentué par le fait que j'ai beaucoup de données en mémoire à ce moment d'éxécution du code.

    Mais pourquoi ça marche en pas à pas ?

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Peut être une histoire avec le GC (ça m'est déjà arrivé ce genre de "scénario" en pas à pas).

    Essayes de placer un GC.Collect() puis GC.WaitForPendingFinalizers() avant la ligne incriminée peut être ...

  5. #5
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut
    Alors là je ne sais pas comment te remercier.

    Donc si je comprends bien ces méthodes permettent de s'assurer que toutes les ressources occupées par les objets précédemment utilisées sont libérées.

    C'est cela ? (ça m'intéresse beaucoup)

    Il y a - t - il des moyens de surveiller la mémoire qu'on utilise ?

    merci

Discussions similaires

  1. Les meilleurs cours et tutoriels C++
    Par Community Management dans le forum C++
    Réponses: 1
    Dernier message: 13/05/2015, 13h50
  2. Débugger avec les exceptions
    Par themadmax dans le forum C#
    Réponses: 4
    Dernier message: 20/12/2011, 16h07
  3. Comment débugger les macros
    Par mickagame dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 19/03/2009, 11h25
  4. Obligatoire : lisez les règles du forum : MAJ 06/08/2010
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 0
    Dernier message: 03/07/2008, 13h46
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo