debug.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /*
  2. * debug.h
  3. * Copyright (C) 1998-2005 A.J. van Os; Released under GPL
  4. *
  5. * Description:
  6. * Macro's for debuging.
  7. */
  8. #if !defined(__debug_h)
  9. #define __debug_h 1
  10. #include <stdio.h>
  11. #include <ctype.h>
  12. #if defined(DEBUG)
  13. #define DBG_MSG(t) (void)fprintf(stderr,\
  14. "%s[%3d]: %.240s\n",\
  15. __FILE__, __LINE__, (t))
  16. #define DBG_STRN(t,m) (void)fprintf(stderr,\
  17. "%s[%3d]: %d '%.*s'\n",\
  18. __FILE__, __LINE__,\
  19. (int)(m), (int)(m), (const char *)(t))
  20. #define DBG_CHR(m) (void)fprintf(stderr,\
  21. "%s[%3d]: "#m" = %3d 0x%02x '%c'\n",\
  22. __FILE__, __LINE__,\
  23. (int)(m), (unsigned int)(unsigned char)(m),\
  24. isprint((int)(unsigned char)(m))?(char)(m):' ')
  25. #define DBG_DEC(m) (void)fprintf(stderr,\
  26. "%s[%3d]: "#m" = %ld\n",\
  27. __FILE__, __LINE__, (long)(m))
  28. #define DBG_HEX(m) (void)fprintf(stderr,\
  29. "%s[%3d]: "#m" = 0x%02lx\n",\
  30. __FILE__, __LINE__, (unsigned long)(m))
  31. #define DBG_FLT(m) (void)fprintf(stderr,\
  32. "%s[%3d]: "#m" = %.3f\n",\
  33. __FILE__, __LINE__, (double)(m))
  34. #define DBG_FIXME() (void)fprintf(stderr,\
  35. "%s[%3d]: FIXME\n",\
  36. __FILE__, __LINE__)
  37. #define DBG_PRINT_BLOCK(b,m) vPrintBlock(__FILE__, __LINE__,(b),(m))
  38. #define DBG_UNICODE(t) vPrintUnicode(__FILE__, __LINE__,\
  39. (const UCHAR *)(t),unilen(t))
  40. #define DBG_UNICODE_N(t,m) vPrintUnicode(__FILE__, __LINE__,\
  41. (const UCHAR *)(t),(m))
  42. #define DBG_MSG_C(c,t) do { if (c) DBG_MSG(t); } while(0)
  43. #define DBG_STRN_C(c,t,m) do { if (c) DBG_STRN(t,m); } while(0)
  44. #define DBG_CHR_C(c,m) do { if (c) DBG_CHR(m); } while(0)
  45. #define DBG_DEC_C(c,m) do { if (c) DBG_DEC(m); } while(0)
  46. #define DBG_HEX_C(c,m) do { if (c) DBG_HEX(m); } while(0)
  47. #define DBG_FLT_C(c,m) do { if (c) DBG_FLT(m); } while(0)
  48. #else
  49. #define DBG_MSG(t) /* EMPTY */
  50. #define DBG_STRN(t,m) /* EMPTY */
  51. #define DBG_CHR(m) /* EMPTY */
  52. #define DBG_DEC(m) /* EMPTY */
  53. #define DBG_HEX(m) /* EMPTY */
  54. #define DBG_FLT(m) /* EMPTY */
  55. #define DBG_FIXME() /* EMPTY */
  56. #define DBG_PRINT_BLOCK(b,m) /* EMPTY */
  57. #define DBG_UNICODE(t) /* EMPTY */
  58. #define DBG_UNICODE_N(t,m) /* EMPTY */
  59. #define DBG_MSG_C(c,t) /* EMPTY */
  60. #define DBG_STRN_C(c,t,m) /* EMPTY */
  61. #define DBG_CHR_C(c,m) /* EMPTY */
  62. #define DBG_DEC_C(c,m) /* EMPTY */
  63. #define DBG_HEX_C(c,m) /* EMPTY */
  64. #define DBG_FLT_C(c,m) /* EMPTY */
  65. #endif /* DEBUG */
  66. #define NO_DBG_MSG(t) /* EMPTY */
  67. #define NO_DBG_STRN(t,m) /* EMPTY */
  68. #define NO_DBG_CHR(m) /* EMPTY */
  69. #define NO_DBG_DEC(m) /* EMPTY */
  70. #define NO_DBG_HEX(m) /* EMPTY */
  71. #define NO_DBG_FLT(m) /* EMPTY */
  72. #define NO_DBG_PRINT_BLOCK(b,m) /* EMPTY */
  73. #define NO_DBG_UNICODE(t) /* EMPTY */
  74. #define NO_DBG_UNICODE_N(t,m) /* EMPTY */
  75. #define NO_DBG_MSG_C(c,t) /* EMPTY */
  76. #define NO_DBG_STRN_C(c,t,m) /* EMPTY */
  77. #define NO_DBG_CHR_C(c,m) /* EMPTY */
  78. #define NO_DBG_DEC_C(c,m) /* EMPTY */
  79. #define NO_DBG_HEX_C(c,m) /* EMPTY */
  80. #define NO_DBG_FLT_C(c,m) /* EMPTY */
  81. #if defined(TRACE)
  82. #define TRACE_MSG(t) do {\
  83. (void)fprintf(stderr,\
  84. "%s[%3d]: TRACE:%.40s\n",\
  85. __FILE__, __LINE__, (t));\
  86. (void)fflush(stderr);\
  87. } while(0)
  88. #else
  89. #define TRACE_MSG(t) /* EMPTY */
  90. #endif /* TRACE */
  91. #endif /* !__debug_h */