Debug / Trace Realisieren
-
Morgen
Ich habe mir so überlegt was wohl die beste Variante für ein Trace (Verbose/Debug) ist.
Es müsste wenig code (wegen Laufzeit) sein und einfach zum einbinden. Wenn
es aber nicht mit Kompiliert wird, soll es auch nicht aufgerufen werden. Sonst
müssen wieder alle Register auf den heap geschrieben werden, was auch wieder Zeit braucht.Die Variante mit:
#if defined(DEBUG) CError::useDebug(bla....) #endifbraucht 3 Zeilen, und wenn man das nun viel braucht geht das auf kosten
des Code Styles bzw. leserlichkeit.Diese Variante:
/* Im Code .cpp */ CError::useDebug(bla...) /* Extern .hpp */ static void useDebug(...) { #if defined(DEBUG) /* code... */ #endif }Da die Funktion Inline ist, sollte der Compiler das gleiche wie oben
machen. Aber das wird wohl Compiler abhängig sein. Wiederum wäre
vielleicht das ein und ausschalten per Laufzeit auch praktisch...?Wie handhabt ihr das so?
Gruss
Ghost
-
void dbgPrintf (...); #ifdef _DEBUG #define _DPRINTF(...) dbgPrintf (__VA_ARGS__) #else #define _DPRINTF(...) #endif