home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Caml Light 0.61 / Source / src / runtime / debugger.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-24  |  1.2 KB  |  62 lines  |  [TEXT/MPS ]

  1. #ifndef _debugger_
  2. #define _debugger_
  3.  
  4.  
  5. #include "mlvalues.h"
  6.  
  7. #ifdef DEBUG
  8.  
  9. #define LOG_BUFFER_SIZE 100
  10. extern code_t log_buffer[LOG_BUFFER_SIZE];
  11. extern code_t * log_ptr;
  12. extern int trace_flag;
  13.  
  14. #define Debug(x) x
  15.  
  16. #ifdef ANSI
  17. #define Assert(x) if (!(x)) failed_assert ( #x , __FILE__, __LINE__)
  18. #define Dprintx(x) printf ("expression %s %ld\n", #x, (unsigned long) (x))
  19. #else
  20. #ifndef __LINE__
  21. #define __LINE__ 0
  22. #endif
  23. #ifndef __FILE__
  24. #define __FILE__ "(?)"
  25. #endif
  26. #define Assert(x) if (!(x)) failed_assert ("(?)" , __FILE__, __LINE__)
  27. #define Dprintx(x) printf ("expression %ld\n", (unsigned long) (x))
  28. #endif /* ANSI */
  29.  
  30. #ifdef ANSI
  31. extern void failed_assert (char *, char *, int);
  32. extern void print_value(value);
  33. extern code_t disasm_instr(code_t);
  34. extern void post_mortem(int);
  35. extern unsigned long not_random (void);
  36. #else
  37. void failed_assert ();
  38. void print_value();
  39. code_t disasm_instr();
  40. void post_mortem();
  41. unsigned long not_random ();
  42. #endif /* ANSI */
  43.  
  44. #else /* DEBUG */
  45.  
  46. #define Debug(x)
  47. #define Assert(x)
  48. #define Dprintx(x)
  49.  
  50. #endif /* DEBUG */
  51.  
  52. #define nTrace(msg, x, y)
  53.  
  54. #ifdef TRACE
  55. #define Trace(msg, x, y) printf (msg, x, y)
  56. #else
  57. #define Trace(msg, x, y)
  58. #endif
  59.  
  60.  
  61. #endif /* _debugger_ */
  62.