Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#16

Re: In welcher Methode bin ich?

  Alt 17. Aug 2007, 01:45
Bsp. mein DDKWizard:

Code:
#if DBG
   #ifdef ADVANCED_DEBUG
   #define DebugPrint DbgPrint("[%s] %s (line: %d)\n", __##FILE##__, __##FUNCTION##__, __##LINE##__); DbgPrint
   #else
   #define DebugPrint DbgPrint
   #endif
#else
#define DebugPrint /##/DbgPrint
#endif
Was macht das (Annahme ADVANCED_DEBUG=1 und DBG=1)? Bei jeder Erwaehnung von "DebugPrint(parameter)" wird ein DbgPrint davorgestellt, weshalb es nach dem Einfuegen so aussieht:

Code:
DbgPrint("[%s] %s (line: %d)\n", __FILE__, __FUNCTION__, __LINE__); DbgPrint(parameter)
Somit wird das beim eigentlichen finalen Durchlauf des Praeprozessors als, bspw.:

Code:
DbgPrint("[%s] %s (line: %d)\n", "bla.cpp", "CMeineKlasse::MeineMethode", 37); DbgPrint(parameter)
... interpretiert.

Ziemlich bequem


... dank Praeprozessor leiste ich mir sowas dann auch nur im Debug-Build, womit die Performanceeinbussen auch nicht spuerbar sind, der Nutzen beim Debuggen allerdings schon.
  Mit Zitat antworten Zitat