_debug.h revision 5aefb6555731130ca4fd295960123d71f2d21fe8
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _DEBUG_DOT_H
#define _DEBUG_DOT_H
#pragma ident "%Z%%M% %I% %E% SMI"
#include <debug.h>
#include <conv.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* Debugging is enabled by various tokens (see debug.c) that result in an
* internal bit mask (d_class) being initialized. Each debugging function is
* appropriate for one or more of the classes specified by the bit mask. Each
* debugging function validates whether it is appropriate for the present
* classes before printing anything.
*/
#define DBG_NOTCLASS(c) !(dbg_desc->d_class & (c))
#define DBG_C_ARGS 0x00000001
#define DBG_C_BASIC 0x00000002
#define DBG_C_BINDINGS 0x00000004
#define DBG_C_ENTRY 0x00000008
#define DBG_C_FILES 0x00000010
#define DBG_C_HELP 0x00000020
#define DBG_C_LIBS 0x00000040
#define DBG_C_MAP 0x00000080
#define DBG_C_RELOC 0x00000100
#define DBG_C_SECTIONS 0x00000200
#define DBG_C_SEGMENTS 0x00000400
#define DBG_C_SYMBOLS 0x00000800
#define DBG_C_SUPPORT 0x00001000
#define DBG_C_VERSIONS 0x00002000
#define DBG_C_AUDITING 0x00004000
#define DBG_C_GOT 0x00008000
#define DBG_C_MOVE 0x00010000
#define DBG_C_DEMANGLE 0x00020000
#define DBG_C_TLS 0x00040000
#define DBG_C_STRTAB 0x00080000
#define DBG_C_STATS 0x00100000
#define DBG_C_UNUSED 0x00200000
#define DBG_C_CAP 0x00400000
#define DBG_C_INIT 0x00800000
#define DBG_C_ALL 0xffffffff
typedef struct {
const char *o_name; /* command line argument name */
uint_t o_class; /* associated class for this name */
uint_t o_extra; /* associated extra for this name */
} DBG_options;
#define AL_CNT_DEBUG 4
/*
* Some Dbg_*() format strings differ depending on whether they are used for
* 32-bit or 64-bit values.
*/
#if defined(_ELF64)
#define MSG_EDATA_TITLE MSG_EDATA_TITLE_64
#define MSG_EDATA_ENTRY MSG_EDATA_ENTRY_64
#else
#define MSG_EDATA_TITLE MSG_EDATA_TITLE_32
#define MSG_EDATA_ENTRY MSG_EDATA_ENTRY_32
#endif
/*
* Some Elf_*() format strings differ depending on whether they are used for
* 32-bit or 64-bit values.
*/
#if defined(_ELF64)
#define MSG_GOT_TITLE MSG_GOT_TITLE_64
#define MSG_GOT_ENTRY_RE MSG_GOT_ENTRY_RE_64
#define MSG_GOT_ENTRY_NR MSG_GOT_ENTRY_NR_64
#define MSG_PHD_VADDR MSG_PHD_VADDR_64
#define MSG_PHD_PADDR MSG_PHD_PADDR_64
#define MSG_PHD_FILESZ MSG_PHD_FILESZ_64
#define MSG_PHD_OFFSET MSG_PHD_OFFSET_64
#define MSG_REL_EFSA_TITLE MSG_REL_EFSA_TITLE_64
#define MSG_REL_EFLA_TITLE MSG_REL_EFLA_TITLE_64
#define MSG_REL_EFSN_TITLE MSG_REL_EFSN_TITLE_64
#define MSG_REL_EFLN_TITLE MSG_REL_EFLN_TITLE_64
#define MSG_REL_EFSA_ENTRY MSG_REL_EFSA_ENTRY_64
#define MSG_REL_EFLA_ENTRY MSG_REL_EFLA_ENTRY_64
#define MSG_REL_EFSN_ENTRY MSG_REL_EFSN_ENTRY_64
#define MSG_REL_EFLN_ENTRY MSG_REL_EFLN_ENTRY_64
#define MSG_REL_RT_APLREG MSG_REL_RT_APLREG_64
#define MSG_REL_RT_APLVAL MSG_REL_RT_APLVAL_64
#define MSG_REL_RTA_TITLE MSG_REL_RTA_TITLE_64
#define MSG_REL_RTN_TITLE MSG_REL_RTN_TITLE_64
#define MSG_REL_RTV_TITLE MSG_REL_RTV_TITLE_64
#define MSG_REL_RTA_ENTRY MSG_REL_RTA_ENTRY_64
#define MSG_REL_RTN_ENTRY MSG_REL_RTN_ENTRY_64
#define MSG_REL_LDSA_TITLE MSG_REL_LDSA_TITLE_64
#define MSG_REL_LDSN_TITLE MSG_REL_LDSN_TITLE_64
#define MSG_REL_LDSV_TITLE MSG_REL_LDSV_TITLE_64
#define MSG_REL_LDSA_ENTRY MSG_REL_LDSA_ENTRY_64
#define MSG_REL_LDSN_ENTRY MSG_REL_LDSN_ENTRY_64
#define MSG_REL_LDLA_TITLE MSG_REL_LDLA_TITLE_64
#define MSG_REL_LDLN_TITLE MSG_REL_LDLN_TITLE_64
#define MSG_REL_LDLV_TITLE MSG_REL_LDLV_TITLE_64
#define MSG_REL_LDLA_ENTRY MSG_REL_LDLA_ENTRY_64
#define MSG_REL_LDLN_ENTRY MSG_REL_LDLN_ENTRY_64
#define MSG_SHD_ADDR MSG_SHD_ADDR_64
#define MSG_SHD_SIZE MSG_SHD_SIZE_64
#define MSG_SHD_OFFSET MSG_SHD_OFFSET_64
#define MSG_SHD_ALIGN MSG_SHD_ALIGN_64
#define MSG_SHD_LINK MSG_SHD_LINK_64
#define MSG_SYM_EFS_ENTRY MSG_SYM_EFS_ENTRY_64
#define MSG_SYM_EFL_ENTRY MSG_SYM_EFL_ENTRY_64
#define MSG_SYM_EFS_TITLE MSG_SYM_EFS_TITLE_64
#define MSG_SYM_EFL_TITLE MSG_SYM_EFL_TITLE_64
#define MSG_SYM_LDS_TITLE MSG_SYM_LDS_TITLE_64
#define MSG_SYM_LDL_TITLE MSG_SYM_LDL_TITLE_64
#else
#define MSG_GOT_TITLE MSG_GOT_TITLE_32
#define MSG_GOT_ENTRY_RE MSG_GOT_ENTRY_RE_32
#define MSG_GOT_ENTRY_NR MSG_GOT_ENTRY_NR_32
#define MSG_PHD_VADDR MSG_PHD_VADDR_32
#define MSG_PHD_PADDR MSG_PHD_PADDR_32
#define MSG_PHD_FILESZ MSG_PHD_FILESZ_32
#define MSG_PHD_OFFSET MSG_PHD_OFFSET_32
#define MSG_REL_EFSA_TITLE MSG_REL_EFSA_TITLE_32
#define MSG_REL_EFLA_TITLE MSG_REL_EFLA_TITLE_32
#define MSG_REL_EFSN_TITLE MSG_REL_EFSN_TITLE_32
#define MSG_REL_EFLN_TITLE MSG_REL_EFLN_TITLE_32
#define MSG_REL_EFSA_ENTRY MSG_REL_EFSA_ENTRY_32
#define MSG_REL_EFLA_ENTRY MSG_REL_EFLA_ENTRY_32
#define MSG_REL_EFSN_ENTRY MSG_REL_EFSN_ENTRY_32
#define MSG_REL_EFLN_ENTRY MSG_REL_EFLN_ENTRY_32
#define MSG_REL_RT_APLREG MSG_REL_RT_APLREG_32
#define MSG_REL_RT_APLVAL MSG_REL_RT_APLVAL_32
#define MSG_REL_RTA_TITLE MSG_REL_RTA_TITLE_32
#define MSG_REL_RTN_TITLE MSG_REL_RTN_TITLE_32
#define MSG_REL_RTV_TITLE MSG_REL_RTV_TITLE_32
#define MSG_REL_RTA_ENTRY MSG_REL_RTA_ENTRY_32
#define MSG_REL_RTN_ENTRY MSG_REL_RTN_ENTRY_32
#define MSG_REL_LDSA_TITLE MSG_REL_LDSA_TITLE_32
#define MSG_REL_LDSN_TITLE MSG_REL_LDSN_TITLE_32
#define MSG_REL_LDSV_TITLE MSG_REL_LDSV_TITLE_32
#define MSG_REL_LDSA_ENTRY MSG_REL_LDSA_ENTRY_32
#define MSG_REL_LDSN_ENTRY MSG_REL_LDSN_ENTRY_32
#define MSG_REL_LDLA_TITLE MSG_REL_LDLA_TITLE_32
#define MSG_REL_LDLN_TITLE MSG_REL_LDLN_TITLE_32
#define MSG_REL_LDLV_TITLE MSG_REL_LDLV_TITLE_32
#define MSG_REL_LDLA_ENTRY MSG_REL_LDLA_ENTRY_32
#define MSG_REL_LDLN_ENTRY MSG_REL_LDLN_ENTRY_32
#define MSG_SHD_ADDR MSG_SHD_ADDR_32
#define MSG_SHD_SIZE MSG_SHD_SIZE_32
#define MSG_SHD_OFFSET MSG_SHD_OFFSET_32
#define MSG_SHD_ALIGN MSG_SHD_ALIGN_32
#define MSG_SHD_LINK MSG_SHD_LINK_32
#define MSG_SYM_EFS_ENTRY MSG_SYM_EFS_ENTRY_32
#define MSG_SYM_EFL_ENTRY MSG_SYM_EFL_ENTRY_32
#define MSG_SYM_EFS_TITLE MSG_SYM_EFS_TITLE_32
#define MSG_SYM_EFL_TITLE MSG_SYM_EFL_TITLE_32
#define MSG_SYM_LDS_TITLE MSG_SYM_LDS_TITLE_32
#define MSG_SYM_LDL_TITLE MSG_SYM_LDL_TITLE_32
#endif
#define INDEX_STR_SIZE 10
#ifdef __cplusplus
}
#endif
#endif /* _DEBUG_DOT_H */