| /* Copyright (C) 2021 Free Software Foundation, Inc. | |
| Contributed by Oracle. | |
| This file is part of GNU Binutils. | |
| This program is free software; you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation; either version 3, or (at your option) | |
| any later version. | |
| This program is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU General Public License for more details. | |
| You should have received a copy of the GNU General Public License | |
| along with this program; if not, write to the Free Software | |
| Foundation, 51 Franklin Street - Fifth Floor, Boston, | |
| MA 02110-1301, USA. */ | |
| #ifndef _PERFAN_DEBUG_H | |
| #define _PERFAN_DEBUG_H | |
| extern unsigned int mpmt_debug_opt; | |
| // To set mpmt_debug_opt use: | |
| // MPMT_DEBUG=4095 ; export MPMT_DEBUG | |
| #define DEBUG_FLAG (mpmt_debug_opt & 1) | |
| #define DUMP_ELF_SEC (mpmt_debug_opt & 2) | |
| #define DUMP_ELF_SYM (mpmt_debug_opt & 4) | |
| #define DUMP_RELA_SEC (mpmt_debug_opt & 8) | |
| #define DUMP_ELF_RELOC DUMP_RELA_SEC | |
| #define DUMP_DWARFLIB (mpmt_debug_opt & 16) | |
| #define DUMP_DWR_LINE_REGS (mpmt_debug_opt & 32) | |
| #define DUMP_USER_LABELS (mpmt_debug_opt & 64) | |
| #define DEBUG_MAPS (mpmt_debug_opt & 128) | |
| #define DEBUG_DBE_FILE (mpmt_debug_opt & 256) | |
| #define DEBUG_DATA_WINDOW (mpmt_debug_opt & 512) | |
| #define DEBUG_STABS (mpmt_debug_opt & 1024) | |
| #define DEBUG_DATAOBJ (mpmt_debug_opt & 2048) | |
| #define DEBUG_LOADOBJ (mpmt_debug_opt & 4096) | |
| #define DEBUG_SAXPARSER (mpmt_debug_opt & 8192) | |
| #define DUMP_JAVA_CLASS (mpmt_debug_opt & 16384) | |
| #define DEBUG_COMPARISON (mpmt_debug_opt & 32768) | |
| #define DEBUG_READ_AR (mpmt_debug_opt & 65536) | |
| #define DEBUG_ERR_MSG (mpmt_debug_opt & 131072) | |
| #define DUMP_JCLASS_READER (mpmt_debug_opt & 262144) | |
| #define DEBUG_DBE (mpmt_debug_opt & 524288) | |
| #define DEBUG_ARCHIVE (mpmt_debug_opt & 1048576) | |
| #define DEBUG_IO (mpmt_debug_opt & 2097152) | |
| #define DUMP_DYN_FILE (mpmt_debug_opt & 4194304) | |
| #define DUMP_JAR_FILE (mpmt_debug_opt & 8388608) | |
| #define DUMP_CALL_STACK (mpmt_debug_opt & 16777216) | |
| #define DEBUG_THREADS (mpmt_debug_opt & 33554432) | |
| #define DBE_USE_MMAP (mpmt_debug_opt & 67108864) | |
| #ifdef DEBUG | |
| // Turn on assertion checking whenever debugging | |
| #define ASSERTS 1 | |
| // debug macro - provides a clean way of inserting debugging code without | |
| // having the distracting #ifdef DEBUG ... #else ... #endif directives | |
| // interspersed throughout the code. It also provides an easy way | |
| // to turn them off with no loss of efficiency. It is not limited | |
| // to printf() commands; any code may be inserted. Variables | |
| // needed only by the debugging code can be declared inside a | |
| // debug { ... } statement. | |
| // | |
| // usage: | |
| // debug <statement> | |
| // or, debug { <statements> } | |
| // If DEBUG is on, map "DEBUG_CODE" to nothing! | |
| // This results in the <statement> being executed normally | |
| #define DEBUG_CODE | |
| #else | |
| // If DEBUG is off, map "DEBUG_CODE" to something harmless. | |
| // The clever hack used here is to use a conditional with a | |
| // constant condition, which is optimized out by the compiler, | |
| // so that <statement> is not present in the compiled code! | |
| #define DEBUG_CODE if (0) | |
| #endif /*DEBUG*/ | |
| #define Dprintf(x, ...) DEBUG_CODE if(x) fprintf(stderr, __VA_ARGS__) | |
| #endif /* ! _DEBUG_H */ |