Conditions répétitif - debuggeur

Signaler
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
-
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
-
Salut,

Pour achever le developpement de mon logiciel j'ai eu l'idée de concevoir un debuggeur maison et de l'intégré par la suite en "dur" dans les sources.
Jusqu'a là pas de soucis.

Le probleme est que je l'utilise un peu de cette maniere :


#define DEBUGGAGE debugmod == 1

int debugmod = 0;

// si argument de commande -debug alors debugmod == 1

int une_fonction_par_exemple(void) {

if (DEBUGGAGE) fonction_debug("je suis ici");
// .. 10 lignes plus tard
if (DEBUGGAGE) fonction_debug("et là");
// .. 20 lignes plus tard
if (DEBUGGAGE) fonction_debug("et puis ici");
// ..

}


Le probleme est que je fait appel à une condition IF parfois plus de 5 fois / petite fonction, et donc il faut interpreter à chaque fois..


Existe-il un moyen en Assembleur ou une quelquonce methode d'optimisation pour gagner en performance (et/ou eviter d'interpreter à chaque fois cette MEME condition) ?


Merci d'avance

4 réponses

Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
ben c'est simple:

au debut de ton code tu met
#define DEBUGGAGE
si tu veux debuger


dans ton code:

#ifdef DEBUGGAGE

    code_de_debugage_ici;
#endif


ainsi code_de_debugage_ici n'est inclu dans ton programme que si tu place #define DEBUGGAGE au debut de ton code.

<hr size="2" width="100%" />Trafic web gratuit!!!
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
en fait il vaux mieu mettre le #define DEBUGGAGE au debut du code et le mettre en commentaire quand tu fais la compilation de la version finale

<hr size="2" width="100%" />Trafic web gratuit!!!
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Tu peux aussi faire un truc du genre:


#ifdef _DEBUG

#define DEBUGTEST(X) X

#else

#define DEBUGTEST(X)

#endif


et dans ton programme:


DEBUGTEST(fonction_debug("je suis ici"));

// .. 10 lignes plus tard

DEBUGTEST(fonction_debug("et là"));

// .. 20 lignes plus tard

DEBUGTEST(fonction_debug("et puis ici"));
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
3
Oué je vais plutot faire comme ça, deux binaires et basta.

merci de vos reponses