]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gprofng/src/debug.h
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gprofng / src / debug.h
CommitLineData
fd67aa11 1/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
bb368aad
VM
2 Contributed by Oracle.
3
4 This file is part of GNU Binutils.
5
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.
10
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.
15
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. */
20
21#ifndef _PERFAN_DEBUG_H
22#define _PERFAN_DEBUG_H
23
24extern 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)
55
56#ifdef DEBUG
57
58// Turn on assertion checking whenever debugging
59#define ASSERTS 1
60
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.
68//
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
74
75#define DEBUG_CODE
76
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!
82
83#define DEBUG_CODE if (0)
84
85#endif /*DEBUG*/
86
87#define Dprintf(x, ...) DEBUG_CODE if(x) fprintf(stderr, __VA_ARGS__)
88
89#endif /* ! _DEBUG_H */