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 C++ Discussion :

Désactiver l'initialisation des pointeurs (debug)


Sujet :

Visual C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 69
    Points : 36
    Points
    36
    Par défaut Désactiver l'initialisation des pointeurs (debug)
    Bonsoir,

    je voudrais savoir comment désactiver l'initialisation par le débogueur des pointeurs sous Visual 2010.
    (pour ne pas que les pointeurs soient à 0xcdcdcd ou 0xccccccc).

    Merci.

  2. #2
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    En mode debug tu travailles dans un environnement virtualisé, ce que tu prends pour une initialisation est en fait une allocation dans cet environnement "vierge de précédente allocation". En effet un pointeur non initialisé aura toujours la valeur "aléatoire" contenu à l'adresse mémoire qu'il occupe.

    Tu n'as qu'à les initialiser toi-même avec une autre valeur si tu ne veux pas de ce comportement.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 69
    Points : 36
    Points
    36
    Par défaut
    Bonjour,

    Citation Envoyé par TheGzD Voir le message
    Tu n'as qu'à les initialiser toi-même avec une autre valeur si tu ne veux pas de ce comportement.
    Le problème c'est que j'ai un plantage en release mais pas en débug, parce que justement le compilateur donne une valeur initiale aux pointeurs.
    Il y a une commande du type /GZ /OZ ou je ne sais plus quoi à mettre en options mais je ne la trouve plus dans le msdn :/

  4. #4
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    C'est à toi d'initialiser tes pointeurs, sinon ils pointeront sur n'importe quoi et ton programmera plantera à quasi tous les voyages. Ne pas le faire est une faute de programmation.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 69
    Points : 36
    Points
    36
    Par défaut
    Ah oui je sais bien, j'initialise toujours mes variables mais là ce n'est pas du code que j'ai écrit et je dois reproduire ce bug en debug, seulement comme un fait exprès, en debug ça fonctionne très bien

    Mais là je ne peux pas m'amuser à initialiser tout ce qui n'est pas initialisé, j'ai des milliers de fichiers et ça marche bien comme ça (sauf exception comme mon bug actuel).

    Du coup je cherche cette option, je l'ai déjà vue mais je ne l'ai jamais utilisée.

    Une petite idée ? /GZ /Oz ...?

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 200
    Points : 12 354
    Points
    12 354
    Par défaut
    Vous ne prenez pas la tête, générez les informations de "debug" (les pdb) en Release. (Ca, c'est pour ne pas être comme un con quand le client vous envoie un dump post-mortem de votre application)

    Lancer le débuggeur en Release, il fonctionne très bien même en Release.

    Si le bug et sioux, genre il ne vient pas parce qu'en debuggee, le programme est trop lent, utilisez les mécanismes de dump automatiques et utilisez les fichiers pdb pour voir le problème, même en production.

    Je tiens à signaler que cette "initialisation" en Debug est fort utile pour utiliser les primitives de détections de merdoillage mémoire en amont.

Discussions similaires

  1. Initialisation des variables. Debug vs Release
    Par deubelte dans le forum Débuter
    Réponses: 2
    Dernier message: 09/03/2012, 13h02
  2. à propos des pointeurs
    Par salseropom dans le forum C++
    Réponses: 20
    Dernier message: 24/03/2005, 10h37
  3. Réponses: 4
    Dernier message: 08/02/2005, 21h47
  4. initialisation des property page
    Par Robleplongeur dans le forum MFC
    Réponses: 3
    Dernier message: 21/04/2004, 11h47
  5. Initialisation de pointeurs
    Par Gnux dans le forum C
    Réponses: 5
    Dernier message: 03/10/2003, 18h10

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