Automatic date update in version.in
[binutils-gdb.git] / gprofng / src / debug.h
blob9761f2a41ebdc9d989bc52b41b00385ecd811882
1 /* Copyright (C) 2021 Free Software Foundation, Inc.
2 Contributed by Oracle.
4 This file is part of GNU Binutils.
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
9 any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, 51 Franklin Street - Fifth Floor, Boston,
19 MA 02110-1301, USA. */
21 #ifndef _PERFAN_DEBUG_H
22 #define _PERFAN_DEBUG_H
24 extern unsigned int mpmt_debug_opt;
25 // To set mpmt_debug_opt use:
26 // MPMT_DEBUG=4095 ; export MPMT_DEBUG
27 #define DEBUG_FLAG (mpmt_debug_opt & 1)
28 #define DUMP_ELF_SEC (mpmt_debug_opt & 2)
29 #define DUMP_ELF_SYM (mpmt_debug_opt & 4)
30 #define DUMP_RELA_SEC (mpmt_debug_opt & 8)
31 #define DUMP_ELF_RELOC DUMP_RELA_SEC
32 #define DUMP_DWARFLIB (mpmt_debug_opt & 16)
33 #define DUMP_DWR_LINE_REGS (mpmt_debug_opt & 32)
34 #define DUMP_USER_LABELS (mpmt_debug_opt & 64)
35 #define DEBUG_MAPS (mpmt_debug_opt & 128)
36 #define DEBUG_DBE_FILE (mpmt_debug_opt & 256)
37 #define DEBUG_DATA_WINDOW (mpmt_debug_opt & 512)
38 #define DEBUG_STABS (mpmt_debug_opt & 1024)
39 #define DEBUG_DATAOBJ (mpmt_debug_opt & 2048)
40 #define DEBUG_LOADOBJ (mpmt_debug_opt & 4096)
41 #define DEBUG_SAXPARSER (mpmt_debug_opt & 8192)
42 #define DUMP_JAVA_CLASS (mpmt_debug_opt & 16384)
43 #define DEBUG_COMPARISON (mpmt_debug_opt & 32768)
44 #define DEBUG_READ_AR (mpmt_debug_opt & 65536)
45 #define DEBUG_ERR_MSG (mpmt_debug_opt & 131072)
46 #define DUMP_JCLASS_READER (mpmt_debug_opt & 262144)
47 #define DEBUG_DBE (mpmt_debug_opt & 524288)
48 #define DEBUG_ARCHIVE (mpmt_debug_opt & 1048576)
49 #define DEBUG_IO (mpmt_debug_opt & 2097152)
50 #define DUMP_DYN_FILE (mpmt_debug_opt & 4194304)
51 #define DUMP_JAR_FILE (mpmt_debug_opt & 8388608)
52 #define DUMP_CALL_STACK (mpmt_debug_opt & 16777216)
53 #define DEBUG_THREADS (mpmt_debug_opt & 33554432)
54 #define DBE_USE_MMAP (mpmt_debug_opt & 67108864)
56 #ifdef DEBUG
58 // Turn on assertion checking whenever debugging
59 #define ASSERTS 1
61 // debug macro - provides a clean way of inserting debugging code without
62 // having the distracting #ifdef DEBUG ... #else ... #endif directives
63 // interspersed throughout the code. It also provides an easy way
64 // to turn them off with no loss of efficiency. It is not limited
65 // to printf() commands; any code may be inserted. Variables
66 // needed only by the debugging code can be declared inside a
67 // debug { ... } statement.
69 // usage:
70 // debug <statement>
71 // or, debug { <statements> }
72 // If DEBUG is on, map "DEBUG_CODE" to nothing!
73 // This results in the <statement> being executed normally
75 #define DEBUG_CODE
77 #else
78 // If DEBUG is off, map "DEBUG_CODE" to something harmless.
79 // The clever hack used here is to use a conditional with a
80 // constant condition, which is optimized out by the compiler,
81 // so that <statement> is not present in the compiled code!
83 #define DEBUG_CODE if (0)
85 #endif /*DEBUG*/
87 #define Dprintf(x, ...) DEBUG_CODE if(x) fprintf(stderr, __VA_ARGS__)
89 #endif /* ! _DEBUG_H */