1/*********************************************************************
2 *   Copyright 1993, UCAR/Unidata
3 *   See netcdf/COPYRIGHT file for copying and redistribution conditions.
4 *********************************************************************/
5#ifndef DEBUG_H
6#define DEBUG_H
7
8#if 0
9#define DAPDEBUG 1
10#define OCDEBUG 1
11#endif
12
13#include "ocdebug.h"
14
15#ifdef DAPDEBUG
16#  define DEBUG
17#  if DAPDEBUG > 0
18#    define DEBUG1
19#  endif
20#  if DAPDEBUG > 1
21#    define DEBUG2
22#  endif
23#  if DAPDEBUG > 2
24#    define DEBUG3
25#  endif
26#endif
27
28#undef PARSEDEBUG
29/* Warning: setting CATCHERROR has significant performance impact */
30#define CATCHERROR
31
32#include <stdarg.h>
33#include <assert.h>
34
35#ifdef DAPDEBUG
36#undef CATCHERROR
37#define CATCHERROR
38#endif
39
40#define PANIC(msg) assert(dappanic(msg));
41#define PANIC1(msg,arg) assert(dappanic(msg,arg));
42#define PANIC2(msg,arg1,arg2) assert(dappanic(msg,arg1,arg2));
43
44#define ASSERT(expr) if(!(expr)) {PANIC(#expr);} else {}
45
46extern int ncdap3debug;
47
48extern int dappanic(const char* fmt, ...);
49
50#define MEMCHECK(var,throw) {if((var)==NULL) return (throw);}
51
52#ifdef CATCHERROR
53/* Place breakpoint on dapbreakpoint to catch errors close to where they occur*/
54#define THROW(edapthrow(e)
55#define THROWCHK(e) (void)dapthrow(e)
56
57extern int dapbreakpoint(int err);
58extern int dapthrow(int err);
59#else
60#define THROW(e) (e)
61#define THROWCHK(e)
62#endif
63
64#ifdef DEBUG
65#define SHOWFETCH (1)
66#else
67#define SHOWFETCH FLAGSET(nccomm->controls,NCF_SHOWFETCH)
68#endif
69
70#define LOG0(level,msgnclog(level,msg)
71#define LOG1(level,msg,a1nclog(level,msg,a1)
72#define LOG2(level,msg,a1,a2nclog(level,msg,a1,a2)
73
74#endif /*DEBUG_H*/


HyperKWIC - Version 7.20DA executed at 11:37 on 27 Oct 2017 | Polyhedron Solutions - INTERNAL USE | COMMERCIAL (Any O/S) SN 4AKIed