diff options
Diffstat (limited to 'gprofng/src/debug.h')
-rw-r--r-- | gprofng/src/debug.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/gprofng/src/debug.h b/gprofng/src/debug.h new file mode 100644 index 0000000..9761f2a --- /dev/null +++ b/gprofng/src/debug.h @@ -0,0 +1,89 @@ +/* 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 */ |