home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / texmf / source / driver / util / iff / debug.h < prev    next >
C/C++ Source or Header  |  1993-02-27  |  3KB  |  113 lines

  1. /*
  2.  * mydebug.h - #include this file sometime after stdio.h
  3.  * Set MYDEBUG to 1 to turn on debugging, 0 to turn off debugging
  4.  */
  5.  
  6. // im Rahmen von PasTeX dessen Debug Zeugs verwenden...also weg mit dem File
  7. #define MYDEBUG_H 1
  8.  
  9.  
  10. #ifndef MYDEBUG_H
  11. #define MYDEBUG_H
  12.  
  13. #define MYDEBUG    0
  14.  
  15. #if MYDEBUG
  16. /*
  17.  * MYDEBUG User Options
  18.  */
  19.  
  20. /* Set to 1 to turn second level D2(bug()) statements */
  21. #define DEBUGLEVEL2    1
  22.  
  23. /* Set to a non-zero # of ticks if a delay is wanted after each debug message */
  24. #define DEBUGDELAY        0
  25.  
  26. /* Always non-zero for the DDx macros */
  27. #define DDEBUGDELAY        50
  28.  
  29. /* Set to 1 for serial debugging (link with debug.lib) */
  30. #define KDEBUG        1
  31.  
  32. /* Set to 1 for parallel debugging (link with ddebug.lib) */
  33. #define DDEBUG        0
  34.  
  35. #endif /* MYDEBUG */
  36.  
  37.  
  38. /* Prototypes for Delay, kprintf, dprintf. Or use proto/dos.h or functions.h. */
  39. #include <clib/dos_protos.h>
  40. void kprintf(UBYTE *fmt,...);
  41. void dprintf(UBYTE *fmt,...);
  42.  
  43. /*
  44.  * D(bug()), D2(bug()), DQ((bug()) only generate code if MYDEBUG is non-zero
  45.  *
  46.  * Use D(bug()) for general debugging, D2(bug()) for extra debugging that
  47.  * you usually won't need to see, DD(bug()) for debugging statements that
  48.  * you always want followed by a delay, and DQ(bug()) for debugging that
  49.  * you'll NEVER want a delay after (ie. debugging inside a Forbid, Disable,
  50.  * Task, or Interrupt)
  51.  *
  52.  * Some example uses (all are used the same):
  53.  * D(bug("about to do xyz. variable = $%lx\n",myvariable)); 
  54.  * D2(bug("v1=$%lx v2=$%lx v3=$%lx\n",v1,v2,v3)); 
  55.  * DQ(bug("in subtask: variable = $%lx\n",myvariable));
  56.  * DD(bug("About to do xxx\n"));
  57.  *
  58.  * Set MYDEBUG above to 1 when debugging is desired and recompile the modules
  59.  *  you wish to debug.  Set to 0 and recompile to turn off debugging.
  60.  *
  61.  * User options set above:
  62.  * Set DEBUGDELAY to a non-zero # of ticks (ex. 50) when a delay is desired.
  63.  * Set DEBUGLEVEL2 nonzero to turn on second level (D2) debugging statements
  64.  * Set KDEBUG to 1 and link with debug.lib for serial debugging.
  65.  * Set DDEBUG to 1 and link with ddebug.lib for parallel debugging.
  66.  */
  67.  
  68.  
  69. /* 
  70.  * Debugging function automaticaly set to printf, kprintf, or dprintf
  71.  */
  72.  
  73. #if KDEBUG
  74. #define bug kprintf
  75. #elif DDEBUG
  76. #define bug dprintf
  77. #else    /* else changes all bug's to printf's */
  78. #define bug printf
  79. #endif
  80.  
  81. /*
  82.  * Debugging macros
  83.  */
  84.  
  85. /* D(bug(     delays DEBUGDELAY if DEBUGDELAY is > 0
  86.  * DD(bug(    always delays DDEBUGDELAY
  87.  * DQ(bug(      (debug quick) never uses Delay.  Use in forbids,disables,ints
  88.  * The similar macros with "2" in their names are second level debugging
  89.  */
  90. #if MYDEBUG    /* Turn on first level debugging */
  91. #define D(x)  (x); if(DEBUGDELAY>0) Delay(DEBUGDELAY)
  92. #define DD(x) (x); Delay(DDEBUGDELAY)
  93. #define DQ(x) (x)
  94. #if DEBUGLEVEL2 /* Turn on second level debugging */
  95. #define D2(x)  (x); if(DEBUGDELAY>0) Delay(DEBUGDELAY)
  96. #define DD2(x) (x); Delay(DDEBUGDELAY)
  97. #define DQ2(x) (x)
  98. #else  /* Second level debugging turned off */
  99. #define D2(x) ;
  100. #define DD2(x) ;
  101. #define DQ2(x) ;
  102. #endif /* DEBUGLEVEL2 */
  103. #else  /* First level debugging turned off */
  104. #define D(x) ;
  105. #define DQ(x) ;
  106. #define D2(x) ;
  107. #define DD(x) ;
  108. #endif
  109.  
  110.  
  111. #endif /* MYDEBUG_H */
  112.  
  113.