Hogyan debugoljunk?

Ha van egy programunk, aminek a futását követni akarjuk időnként, de nem mindig, akkor használhatunk a programban például ilyen utasításokat:

#ifdef runDebug
    Serial.println("s="+s+" x="+String(x));
#endif

 

Erre lássuk a konkrét teljes példát:

A program elején:

#define runDebug
.
.
.
String s = "proba" ;
int x= 25 ;

.
.
.
#ifdef runDebug
    Serial.println("s="+s+" x="+String(x));
#endif


Ezműködik, és ezt írja ki:
s=proba x=25

Csak az a baj vele, hogy ha telerakjuk a programunkat ilyen #ifdef-es sorokkal, nagyon áttekinthetetlen lesz.

Helyette használhatjuk a következő megoldást:

#define runDebug
.
.
.
#ifdef runDebug
# define printIFrunDebug(p) (Serial.println(p))
# else
# define printIFrunDebug(p)
# endif


Ezek után a programba a megfelelő helyre elég csupán ezt írni:
printIFrunDebug("s="+s+" x="+String(x));

Ez is működik, és ugyanezt írja ki:
s=proba x=25

Ez sokkal áttekinthetőbbé teszi a programunkat!

Ha a
#define runDebug
helyett a
//#define runDebug
sort írjuk, akkor fordítás során semmi nem kerül a printIFrunDebug helyére.
 

Vissza