Debug/release

Messages postés
117
Date d'inscription
vendredi 10 février 2006
Statut
Membre
Dernière intervention
30 mars 2012
- - Dernière réponse : luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
- 14 mai 2007 à 20:36
bonjour codeur,
quel est la différence en le mode debug et release, mon code s'execute bien en debug et se plate en release, je ne pas quel est le probleme???
Afficher la suite 

4 réponses

Messages postés
149
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
17 mai 2007
0
Merci
Salut,

un probleme de librairies je pense... Ca fait quoi comme erreur ?

Une autruche ne se cuit pas aux petits lardons.
Commenter la réponse de emmatopiak
Messages postés
192
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
30 janvier 2008
0
Merci
Un programme compilé en mode debug contient des informations permettant
son deboggage. Il est donc en général plus lent qu'un programme compilé
en release qui lui est optimisé.

Pour te donner un exemple, si ton programme plante pendant son
execution, en mode debug le deboggeur a la possibilité de t'indiquer
l'endroit dans ton programme ou il y a eu un probleme ainsi que la
raison du plantage.
Commenter la réponse de THEwarrior333
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
0
Merci
Il est probable que tu écrives en dehors de zones mémoires allouées.
Ca plante rarement en debug (la mémoire est gérée légèrement différemment) mais toujours en release.
... quoique je me souviens avoir abandonné un projet à cause de ça... il fallait que j'ajoute 46 octets de mémoire statique dans une classe pour que ça ne plante pas en release.
Bref, sauf cas extrêmes, c'est à 99% de chance d'être une écriture ou lecture dans une zone interdite. Un delete sur un pointeur nul est si vite arrivé... ;)
Commenter la réponse de Galmiza
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
4
0
Merci
J'ai du mal a comprendre pk tu devais ajouter de la mémoire. A mon avis, c'est venait d'un pb de conception. A part les problèmes de conversion entre classes, je vois pas trop de pb qui peuvent causer ce genre de soucis.

Pour la différence entre debug et release, il peut etre intéressant d'ajouter des séries de tests pour vérifier la validité des arguments de fonction, controller le déroulement du programme etc ...

Exemple:

#ifdef _DEBUG  // depend du compilo je crois
#define ASSERT(X) { if (!(X)) throw Exception.... }   // en debug
#else
#define ASSERT(X)   // en release, on fait rien
#endif

void Calcul_Factoriel(int _n)
{
    ASSERT(n >= 0); // Test effectué seulement en mode debug. En release, ce code n'est pas compilé.
    ...
}

C'est un mauvais exemple, mais voila un des trucs qu'on peut utiliser pour faciliter le débbugage.
Commenter la réponse de luhtor