1#ifndef NCGEN_DEBUG_H
2#define NCGEN_DEBUG_H
3
4/*********************************************************************
5 *   Copyright 1993, UCAR/Unidata
6 *   See netcdf/COPYRIGHT file for copying and redistribution conditions.
7 *   $Header: /upc/share/CVS/netcdf-3/ncgen/debug.h,v 1.2 2010/03/31 18:18:34 dmh Exp $
8 *********************************************************************/
9
10#include <stdarg.h>
11#include <assert.h>
12#include "generr.h"
13#include "bytebuffer.h"
14
15#if 0
16#define GENDEBUG 2
17#endif
18
19#ifdef GENDEBUG
20#  if GENDEBUG > 0
21#    define GENDEBUG1
22#  endif
23#  if GENDEBUG > 1
24#    define GENDEBUG2
25#  endif
26#  if GENDEBUG > 2
27#    define GENDEBUG3
28#  endif
29#endif
30
31
32
33
34extern int ncgdebug;
35extern int debug;
36
37extern void fdebug(const char *fmt, ...);
38
39#define PANIC(msg) assert(panic(msg))
40#define PANIC1(msg,arg) assert(panic(msg,arg))
41#define PANIC2(msg,arg1,arg2) assert(panic(msg,arg1,arg2))
42#define ASSERT(expr) {if(!(expr)) {panic("assertion failure: %s",#expr);}}
43extern int panic(const char* fmt, ...);
44
45/*
46Provide wrapped versions of calloc and malloc.
47The wrapped version panics if memory is exhausted.
48*/
49
50#define ecalloc(x,ychkcalloc(x,y)
51#define emalloc(x)   chkmalloc(x)
52#define erealloc(p,x)   chkrealloc(p,x)
53#define efree(xchkfree(x)
54extern void* chkcalloc(size_t, size_t);
55extern void* chkmalloc(size_t);
56extern void* chkrealloc(void*,size_t);
57extern void  chkfree(void*);
58#define MEMCHECK(var,throw) {if((var)==NULL) return (throw);}
59
60#endif /*NCGEN_DEBUG_H*/


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