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....)
    #endif
    

    braucht 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
    

Anmelden zum Antworten