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

 C++ Discussion :

Debug ou release : pas la même taille ?! Code::Blocks


Sujet :

C++

  1. #1
    Invité
    Invité(e)
    Par défaut Debug ou release : pas la même taille ?! Code::Blocks
    Dites, j'ai remarqué que pour tous mes programmes, le .exe de la version release prenait à peu près deux fois moins de place que la version debug (par exemple, 1145 kio pour la debug et 494 kio pour la release) pour exactement le même code source. (j'utilise Code::Blocks)
    Pas que ça me dérange, bien au contraire...Mais, quelle est la différence entre debug et release ? Je connais bien la signification des deux termes, mais qu'est-ce que ça change exactement ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre expérimenté Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Points : 1 396
    Points
    1 396
    Par défaut
    En mode debug, le compilateur garde des informations non nécessaire au bon fonctionnement du programme, comme par exemple les noms des symboles (variables, ...). Tout cela pour que le debugger puisse se rendre plus utile et facile à utiliser.

  3. #3
    Invité
    Invité(e)
    Par défaut
    D'accord, merci !

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    En vrac (et j'en oublie probablement) :
    - Le code debug contient des informations supplémentaires liées au debugage
    - Le code release et optimisé, et par exemple peut ne plus contenir des fonctions qui auraient été inlinées partout où elles sont utilisées, ou bien des variables qui auraient pu être supprimées car non nécessaires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cin >> a;
    b = a+10; // Cette variable a toutes les chances d'être supprimée
    cout << b;
    - Le code debug peut être différent du code release suite à des #ifdef NDEBUG. Par exemple, en debug, il y a des chances qu'un itérateur sur un vector contienne une référence au vecteur lui même, afin de valider qu'on n'en dépasse pas les bornes.

  5. #5
    Invité
    Invité(e)
    Par défaut
    D'accord ! Donc si j'ai bien compris, tous les flags d'optimisation que j'ai activés se mettent en place pour la release afin que le version publiée soit aussi optimisée que possible (mieux que ce que je sais faire pour l'instant, merci le compileur d'être plus intelligent que moi ) mais pas pour la version debug pour que je puisse retrouver plus facilement les zones du code qui posent problème.
    J'imagine que la prochaine étape est d'apprendre à e servir du debugger x) Je trouverais bien des tutos sur le net pour ça.

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/06/2015, 05h09
  2. Debug fonctionne, release pas toujours.
    Par Tarmineldur dans le forum C#
    Réponses: 16
    Dernier message: 16/11/2012, 08h27
  3. C# XAML Code lu ou non entre debug et release
    Par glob04d dans le forum C#
    Réponses: 8
    Dernier message: 07/02/2011, 12h09
  4. Réponses: 9
    Dernier message: 17/11/2010, 14h54
  5. Debug de DLL ou de l'EXE ne donne pas la même chose
    Par mchk0123 dans le forum C++Builder
    Réponses: 3
    Dernier message: 03/05/2007, 18h55

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