1N/A/*
1N/A * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
1N/A * Use is subject to license terms.
1N/A */
1N/A
1N/A#pragma ident "%Z%%M% %I% %E% SMI"
1N/A
1N/A/*
1N/A
1N/A Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved.
1N/A
1N/A This program is free software; you can redistribute it and/or modify it
1N/A under the terms of version 2.1 of the GNU Lesser General Public License
1N/A as published by the Free Software Foundation.
1N/A
1N/A This program is distributed in the hope that it would be useful, but
1N/A WITHOUT ANY WARRANTY; without even the implied warranty of
1N/A MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1N/A
1N/A Further, this software is distributed without any warranty that it is
1N/A free of the rightful claim of any third person regarding infringement
1N/A or the like. Any license provided herein, whether implied or
1N/A otherwise, applies only to this software file. Patent licenses, if
1N/A any, provided herein do not apply to combinations of this program with
1N/A other software, or any other product whatsoever.
1N/A
1N/A You should have received a copy of the GNU Lesser General Public
1N/A License along with this program; if not, write the Free Software
1N/A Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
1N/A USA.
1N/A
1N/A Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
1N/A Mountain View, CA 94043, or:
1N/A
1N/A http://www.sgi.com
1N/A
1N/A For further information regarding this notice, see:
1N/A
1N/A http://oss.sgi.com/projects/GenInfo/NoticeExplan
1N/A
1N/A*/
1N/A
1N/A
1N/A#ifndef _LIBDWARF_H
1N/A#define _LIBDWARF_H
1N/A#ifdef __cplusplus
1N/Aextern "C" {
1N/A#endif
1N/A/*
1N/A libdwarf.h
1N/A $Revision: 1.71 $ $Date: 2001/05/23 23:34:52 $
1N/A
1N/A For libdwarf producers and consumers
1N/A
1N/A The interface is defined as having 8-byte signed and unsigned
1N/A values so it can handle 64-or-32bit target on 64-or-32bit host.
1N/A Addr is the native size: it represents pointers on
1N/A the host machine (not the target!).
1N/A
1N/A This contains declarations for types and all producer
1N/A and consumer functions.
1N/A
1N/A Function declarations are written on a single line each here
1N/A so one can use grep to each declaration in its entirety.
1N/A The declarations are a little harder to read this way, but...
1N/A
1N/A*/
1N/A
1N/A#if (_MIPS_SZLONG == 64)
1N/A/* Special case for MIPS, so -64 (LP64) build gets simple -long-.
1N/A Non-MIPS LP64 or ILP64 environments should probably ensure
1N/A _MIPS_SZLONG set to 64 everywhere this header is #included.
1N/A*/
1N/Atypedef int Dwarf_Bool; /* boolean type */
1N/Atypedef unsigned long Dwarf_Off; /* 4 or 8 byte file offset */
1N/Atypedef unsigned long Dwarf_Unsigned; /* 4 or 8 byte unsigned value */
1N/Atypedef unsigned short Dwarf_Half; /* 2 byte unsigned value */
1N/Atypedef unsigned char Dwarf_Small; /* 1 byte unsigned value */
1N/Atypedef signed long Dwarf_Signed; /* 4 or 8 byte signed value */
1N/Atypedef unsigned long Dwarf_Addr; /* target memory address */
1N/A#else /* 32-bit */
1N/A/* This is for ILP32, allowing i/o of 64bit dwarf info.
1N/A Also should be fine for LP64 and ILP64 cases.
1N/A*/
1N/Atypedef int Dwarf_Bool; /* boolean type */
1N/Atypedef unsigned long long Dwarf_Off; /* 8 byte file offset */
1N/Atypedef unsigned long long Dwarf_Unsigned; /* 8 byte unsigned value*/
1N/Atypedef unsigned short Dwarf_Half; /* 2 byte unsigned value */
1N/Atypedef unsigned char Dwarf_Small; /* 1 byte unsigned value */
1N/Atypedef signed long long Dwarf_Signed; /* 8 byte signed value */
1N/Atypedef unsigned long long Dwarf_Addr; /* target memory address */
1N/A#endif
1N/Atypedef void* Dwarf_Ptr; /* host machine pointer */
1N/A
1N/A/* uninterpreted block of data
1N/A*/
1N/Atypedef struct {
1N/A Dwarf_Unsigned bl_len; /* length of block */
1N/A Dwarf_Ptr bl_data; /* uninterpreted data */
1N/A} Dwarf_Block;
1N/A
1N/A
1N/A/* location record
1N/A*/
1N/Atypedef struct {
1N/A Dwarf_Small lr_atom; /* location operation */
1N/A Dwarf_Unsigned lr_number; /* operand */
1N/A Dwarf_Unsigned lr_number2; /* for OP_BREGx */
1N/A Dwarf_Unsigned lr_offset; /* offset in locexpr for OP_BRA etc */
1N/A} Dwarf_Loc;
1N/A
1N/A
1N/A/* location description
1N/A*/
1N/Atypedef struct {
1N/A Dwarf_Addr ld_lopc; /* beginning of active range */
1N/A Dwarf_Addr ld_hipc; /* end of active range */
1N/A Dwarf_Half ld_cents; /* count of location records */
1N/A Dwarf_Loc* ld_s; /* pointer to list of same */
1N/A} Dwarf_Locdesc;
1N/A
1N/A/* Frame description instructions expanded.
1N/A*/
1N/Atypedef struct {
1N/A Dwarf_Small fp_base_op;
1N/A Dwarf_Small fp_extended_op;
1N/A Dwarf_Half fp_register;
1N/A Dwarf_Unsigned fp_offset;
1N/A Dwarf_Off fp_instr_offset;
1N/A} Dwarf_Frame_Op;
1N/A
1N/A/* DW_REG_TABLE_SIZE must reflect the number of registers
1N/A *(DW_FRAME_LAST_REG_NUM) as defined in dwarf.h
1N/A */
1N/A#define DW_REG_TABLE_SIZE 66
1N/Atypedef struct {
1N/A struct {
1N/A Dwarf_Small dw_offset_relevant;
1N/A Dwarf_Half dw_regnum;
1N/A Dwarf_Addr dw_offset;
1N/A } rules[DW_REG_TABLE_SIZE];
1N/A} Dwarf_Regtable;
1N/A
1N/A/* for DW_DLC_SYMBOLIC_RELOCATIONS output to caller
1N/A v2, adding drd_length: some relocations are 4 and
1N/A some 8 bytes (pointers are 8, section offsets 4) in
1N/A some dwarf environments. (MIPS relocations are all one
1N/A size in any given ABI.) Changing drd_type to an unsigned char
1N/A to keep struct size down.
1N/A*/
1N/Aenum Dwarf_Rel_Type {
1N/A dwarf_drt_none, /* should not get to caller */
1N/A dwarf_drt_data_reloc, /* simple normal relocation */
1N/A dwarf_drt_segment_rel, /* special reloc, exceptions*/
1N/A dwarf_drt_first_of_length_pair,/* this and drt_second
1N/A for .word end - begin
1N/A case */
1N/A dwarf_drt_second_of_length_pair
1N/A};
1N/Atypedef struct Dwarf_Relocation_Data_s * Dwarf_Relocation_Data;
1N/Astruct Dwarf_Relocation_Data_s {
1N/A unsigned char drd_type; /* cast to/from Dwarf_Rel_Type
1N/A to keep size small in struct */
1N/A unsigned char drd_length; /* length in bytes
1N/A of data being relocated. 4 for 32bit.
1N/A 8 for 64bit data */
1N/A Dwarf_Unsigned drd_offset; /* where the data to reloc is */
1N/A Dwarf_Unsigned drd_symbol_index;
1N/A};
1N/A
1N/A/* Opaque types for Consumer Library. */
1N/Atypedef struct Dwarf_Debug_s* Dwarf_Debug;
1N/Atypedef struct Dwarf_Die_s* Dwarf_Die;
1N/Atypedef struct Dwarf_Line_s* Dwarf_Line;
1N/Atypedef struct Dwarf_Global_s* Dwarf_Global;
1N/Atypedef struct Dwarf_Func_s* Dwarf_Func;
1N/Atypedef struct Dwarf_Type_s* Dwarf_Type;
1N/Atypedef struct Dwarf_Var_s* Dwarf_Var;
1N/Atypedef struct Dwarf_Weak_s* Dwarf_Weak;
1N/Atypedef struct Dwarf_Error_s* Dwarf_Error;
1N/Atypedef struct Dwarf_Attribute_s* Dwarf_Attribute;
1N/Atypedef struct Dwarf_Abbrev_s* Dwarf_Abbrev;
1N/Atypedef struct Dwarf_Fde_s* Dwarf_Fde;
1N/Atypedef struct Dwarf_Cie_s* Dwarf_Cie;
1N/Atypedef struct Dwarf_Arange_s* Dwarf_Arange;
1N/A
1N/A/* Opaque types for Producer Library. */
1N/Atypedef struct Dwarf_P_Debug_s* Dwarf_P_Debug;
1N/Atypedef struct Dwarf_P_Die_s* Dwarf_P_Die;
1N/Atypedef struct Dwarf_P_Attribute_s* Dwarf_P_Attribute;
1N/Atypedef struct Dwarf_P_Fde_s* Dwarf_P_Fde;
1N/Atypedef struct Dwarf_P_Expr_s* Dwarf_P_Expr;
1N/Atypedef Dwarf_Unsigned Dwarf_Tag;
1N/A
1N/A
1N/A/* error handler function
1N/A*/
1N/Atypedef void (*Dwarf_Handler)(Dwarf_Error /*error*/, Dwarf_Ptr /*errarg*/);
1N/A
1N/A
1N/A/*
1N/A Dwarf_dealloc() alloc_type arguments.
1N/A Argument points to:
1N/A*/
1N/A#define DW_DLA_STRING 0x01 /* char* */
1N/A#define DW_DLA_LOC 0x02 /* Dwarf_Loc */
1N/A#define DW_DLA_LOCDESC 0x03 /* Dwarf_Locdesc */
1N/A#define DW_DLA_ELLIST 0x04 /* Dwarf_Ellist (not used)*/
1N/A#define DW_DLA_BOUNDS 0x05 /* Dwarf_Bounds (not used) */
1N/A#define DW_DLA_BLOCK 0x06 /* Dwarf_Block */
1N/A#define DW_DLA_DEBUG 0x07 /* Dwarf_Debug */
1N/A#define DW_DLA_DIE 0x08 /* Dwarf_Die */
1N/A#define DW_DLA_LINE 0x09 /* Dwarf_Line */
1N/A#define DW_DLA_ATTR 0x0a /* Dwarf_Attribute */
1N/A#define DW_DLA_TYPE 0x0b /* Dwarf_Type (not used) */
1N/A#define DW_DLA_SUBSCR 0x0c /* Dwarf_Subscr (not used) */
1N/A#define DW_DLA_GLOBAL 0x0d /* Dwarf_Global */
1N/A#define DW_DLA_ERROR 0x0e /* Dwarf_Error */
1N/A#define DW_DLA_LIST 0x0f /* a list */
1N/A#define DW_DLA_LINEBUF 0x10 /* Dwarf_Line* (not used) */
1N/A#define DW_DLA_ARANGE 0x11 /* Dwarf_Arange */
1N/A#define DW_DLA_ABBREV 0x12 /* Dwarf_Abbrev */
1N/A#define DW_DLA_FRAME_OP 0x13 /* Dwarf_Frame_Op */
1N/A#define DW_DLA_CIE 0x14 /* Dwarf_Cie */
1N/A#define DW_DLA_FDE 0x15 /* Dwarf_Fde */
1N/A#define DW_DLA_LOC_BLOCK 0x16 /* Dwarf_Loc Block (not used) */
1N/A#define DW_DLA_FRAME_BLOCK 0x17 /* Dwarf_Frame Block (not used) */
1N/A#define DW_DLA_FUNC 0x18 /* Dwarf_Func */
1N/A#define DW_DLA_TYPENAME 0x19 /* Dwarf_Type */
1N/A#define DW_DLA_VAR 0x1a /* Dwarf_Var */
1N/A#define DW_DLA_WEAK 0x1b /* Dwarf_Weak */
1N/A#define DW_DLA_ADDR 0x1c /* Dwarf_Addr sized entries */
1N/A
1N/A/* The augmenter string for CIE */
1N/A#define DW_CIE_AUGMENTER_STRING_V0 "z"
1N/A
1N/A/* dwarf_init() access arguments
1N/A*/
1N/A#define DW_DLC_READ 0 /* read only access */
1N/A#define DW_DLC_WRITE 1 /* write only access */
1N/A#define DW_DLC_RDWR 2 /* read/write access NOT SUPPORTED*/
1N/A
1N/A/* dwarf_init() access flag modifiers
1N/A*/
1N/A#define DW_DLC_SIZE_64 0x40000000 /* 32-bit target */
1N/A#define DW_DLC_SIZE_32 0x20000000 /* 64-bit target */
1N/A
1N/A/* dwarf_init() access flag modifiers
1N/A*/
1N/A#define DW_DLC_ISA_MIPS 0x00000000 /* MIPS target */
1N/A#define DW_DLC_ISA_IA64 0x01000000 /* IA64 target */
1N/A#define DW_DLC_STREAM_RELOCATIONS 0x02000000 /* old style binary relocs */
1N/A#define DW_DLC_SYMBOLIC_RELOCATIONS 0x04000000 /* usable with assem output */
1N/A#define DW_DLC_TARGET_BIGENDIAN 0x08000000 /* big endian target */
1N/A#define DW_DLC_TARGET_LITTLEENDIAN 0x00100000 /* little endian target */
1N/A
1N/A/* dwarf_pcline() slide arguments
1N/A*/
1N/A#define DW_DLS_BACKWARD -1 /* slide backward to find line */
1N/A#define DW_DLS_NOSLIDE 0 /* match exactly without sliding */
1N/A#define DW_DLS_FORWARD 1 /* slide forward to find line */
1N/A
1N/A/* libdwarf error numbers
1N/A*/
1N/A#define DW_DLE_NE 0 /* no error */
1N/A#define DW_DLE_VMM 1 /* dwarf format/library version mismatch */
1N/A#define DW_DLE_MAP 2 /* memory map failure */
1N/A#define DW_DLE_LEE 3 /* libelf error */
1N/A#define DW_DLE_NDS 4 /* no debug section */
1N/A#define DW_DLE_NLS 5 /* no line section */
1N/A#define DW_DLE_ID 6 /* invalid descriptor for query */
1N/A#define DW_DLE_IOF 7 /* I/O failure */
1N/A#define DW_DLE_MAF 8 /* memory allocation failure */
1N/A#define DW_DLE_IA 9 /* invalid argument */
1N/A#define DW_DLE_MDE 10 /* mangled debugging entry */
1N/A#define DW_DLE_MLE 11 /* mangled line number entry */
1N/A#define DW_DLE_FNO 12 /* file not open */
1N/A#define DW_DLE_FNR 13 /* file not a regular file */
1N/A#define DW_DLE_FWA 14 /* file open with wrong access */
1N/A#define DW_DLE_NOB 15 /* not an object file */
1N/A#define DW_DLE_MOF 16 /* mangled object file header */
1N/A#define DW_DLE_EOLL 17 /* end of location list entries */
1N/A#define DW_DLE_NOLL 18 /* no location list section */
1N/A#define DW_DLE_BADOFF 19 /* Invalid offset */
1N/A#define DW_DLE_EOS 20 /* end of section */
1N/A#define DW_DLE_ATRUNC 21 /* abbreviations section appears truncated*/
1N/A#define DW_DLE_BADBITC 22 /* Address size passed to dwarf bad*/
1N/A /* It is not an allowed size (64 or 32) */
1N/A /* Error codes defined by the current Libdwarf Implementation. */
1N/A#define DW_DLE_DBG_ALLOC 23
1N/A#define DW_DLE_FSTAT_ERROR 24
1N/A#define DW_DLE_FSTAT_MODE_ERROR 25
1N/A#define DW_DLE_INIT_ACCESS_WRONG 26
1N/A#define DW_DLE_ELF_BEGIN_ERROR 27
1N/A#define DW_DLE_ELF_GETEHDR_ERROR 28
1N/A#define DW_DLE_ELF_GETSHDR_ERROR 29
1N/A#define DW_DLE_ELF_STRPTR_ERROR 30
1N/A#define DW_DLE_DEBUG_INFO_DUPLICATE 31
1N/A#define DW_DLE_DEBUG_INFO_NULL 32
1N/A#define DW_DLE_DEBUG_ABBREV_DUPLICATE 33
1N/A#define DW_DLE_DEBUG_ABBREV_NULL 34
1N/A#define DW_DLE_DEBUG_ARANGES_DUPLICATE 35
1N/A#define DW_DLE_DEBUG_ARANGES_NULL 36
1N/A#define DW_DLE_DEBUG_LINE_DUPLICATE 37
1N/A#define DW_DLE_DEBUG_LINE_NULL 38
1N/A#define DW_DLE_DEBUG_LOC_DUPLICATE 39
1N/A#define DW_DLE_DEBUG_LOC_NULL 40
1N/A#define DW_DLE_DEBUG_MACINFO_DUPLICATE 41
1N/A#define DW_DLE_DEBUG_MACINFO_NULL 42
1N/A#define DW_DLE_DEBUG_PUBNAMES_DUPLICATE 43
1N/A#define DW_DLE_DEBUG_PUBNAMES_NULL 44
1N/A#define DW_DLE_DEBUG_STR_DUPLICATE 45
1N/A#define DW_DLE_DEBUG_STR_NULL 46
1N/A#define DW_DLE_CU_LENGTH_ERROR 47
1N/A#define DW_DLE_VERSION_STAMP_ERROR 48
1N/A#define DW_DLE_ABBREV_OFFSET_ERROR 49
1N/A#define DW_DLE_ADDRESS_SIZE_ERROR 50
1N/A#define DW_DLE_DEBUG_INFO_PTR_NULL 51
1N/A#define DW_DLE_DIE_NULL 52
1N/A#define DW_DLE_STRING_OFFSET_BAD 53
1N/A#define DW_DLE_DEBUG_LINE_LENGTH_BAD 54
1N/A#define DW_DLE_LINE_PROLOG_LENGTH_BAD 55
1N/A#define DW_DLE_LINE_NUM_OPERANDS_BAD 56
1N/A#define DW_DLE_LINE_SET_ADDR_ERROR 57
1N/A#define DW_DLE_LINE_EXT_OPCODE_BAD 58
1N/A#define DW_DLE_DWARF_LINE_NULL 59
1N/A#define DW_DLE_INCL_DIR_NUM_BAD 60
1N/A#define DW_DLE_LINE_FILE_NUM_BAD 61
1N/A#define DW_DLE_ALLOC_FAIL 62
1N/A#define DW_DLE_NO_CALLBACK_FUNC 63
1N/A#define DW_DLE_SECT_ALLOC 64
1N/A#define DW_DLE_FILE_ENTRY_ALLOC 65
1N/A#define DW_DLE_LINE_ALLOC 66
1N/A#define DW_DLE_FPGM_ALLOC 67
1N/A#define DW_DLE_INCDIR_ALLOC 68
1N/A#define DW_DLE_STRING_ALLOC 69
1N/A#define DW_DLE_CHUNK_ALLOC 70
1N/A#define DW_DLE_BYTEOFF_ERR 71
1N/A#define DW_DLE_CIE_ALLOC 72
1N/A#define DW_DLE_FDE_ALLOC 73
1N/A#define DW_DLE_REGNO_OVFL 74
1N/A#define DW_DLE_CIE_OFFS_ALLOC 75
1N/A#define DW_DLE_WRONG_ADDRESS 76
1N/A#define DW_DLE_EXTRA_NEIGHBORS 77
1N/A#define DW_DLE_WRONG_TAG 78
1N/A#define DW_DLE_DIE_ALLOC 79
1N/A#define DW_DLE_PARENT_EXISTS 80
1N/A#define DW_DLE_DBG_NULL 81
1N/A#define DW_DLE_DEBUGLINE_ERROR 82
1N/A#define DW_DLE_DEBUGFRAME_ERROR 83
1N/A#define DW_DLE_DEBUGINFO_ERROR 84
1N/A#define DW_DLE_ATTR_ALLOC 85
1N/A#define DW_DLE_ABBREV_ALLOC 86
1N/A#define DW_DLE_OFFSET_UFLW 87
1N/A#define DW_DLE_ELF_SECT_ERR 88
1N/A#define DW_DLE_DEBUG_FRAME_LENGTH_BAD 89
1N/A#define DW_DLE_FRAME_VERSION_BAD 90
1N/A#define DW_DLE_CIE_RET_ADDR_REG_ERROR 91
1N/A#define DW_DLE_FDE_NULL 92
1N/A#define DW_DLE_FDE_DBG_NULL 93
1N/A#define DW_DLE_CIE_NULL 94
1N/A#define DW_DLE_CIE_DBG_NULL 95
1N/A#define DW_DLE_FRAME_TABLE_COL_BAD 96
1N/A#define DW_DLE_PC_NOT_IN_FDE_RANGE 97
1N/A#define DW_DLE_CIE_INSTR_EXEC_ERROR 98
1N/A#define DW_DLE_FRAME_INSTR_EXEC_ERROR 99
1N/A#define DW_DLE_FDE_PTR_NULL 100
1N/A#define DW_DLE_RET_OP_LIST_NULL 101
1N/A#define DW_DLE_LINE_CONTEXT_NULL 102
1N/A#define DW_DLE_DBG_NO_CU_CONTEXT 103
1N/A#define DW_DLE_DIE_NO_CU_CONTEXT 104
1N/A#define DW_DLE_FIRST_DIE_NOT_CU 105
1N/A#define DW_DLE_NEXT_DIE_PTR_NULL 106
1N/A#define DW_DLE_DEBUG_FRAME_DUPLICATE 107
1N/A#define DW_DLE_DEBUG_FRAME_NULL 108
1N/A#define DW_DLE_ABBREV_DECODE_ERROR 109
1N/A#define DW_DLE_DWARF_ABBREV_NULL 110
1N/A#define DW_DLE_ATTR_NULL 111
1N/A#define DW_DLE_DIE_BAD 112
1N/A#define DW_DLE_DIE_ABBREV_BAD 113
1N/A#define DW_DLE_ATTR_FORM_BAD 114
1N/A#define DW_DLE_ATTR_NO_CU_CONTEXT 115
1N/A#define DW_DLE_ATTR_FORM_SIZE_BAD 116
1N/A#define DW_DLE_ATTR_DBG_NULL 117
1N/A#define DW_DLE_BAD_REF_FORM 118
1N/A#define DW_DLE_ATTR_FORM_OFFSET_BAD 119
1N/A#define DW_DLE_LINE_OFFSET_BAD 120
1N/A#define DW_DLE_DEBUG_STR_OFFSET_BAD 121
1N/A#define DW_DLE_STRING_PTR_NULL 122
1N/A#define DW_DLE_PUBNAMES_VERSION_ERROR 123
1N/A#define DW_DLE_PUBNAMES_LENGTH_BAD 124
1N/A#define DW_DLE_GLOBAL_NULL 125
1N/A#define DW_DLE_GLOBAL_CONTEXT_NULL 126
1N/A#define DW_DLE_DIR_INDEX_BAD 127
1N/A#define DW_DLE_LOC_EXPR_BAD 128
1N/A#define DW_DLE_DIE_LOC_EXPR_BAD 129
1N/A#define DW_DLE_ADDR_ALLOC 130
1N/A#define DW_DLE_OFFSET_BAD 131
1N/A#define DW_DLE_MAKE_CU_CONTEXT_FAIL 132
1N/A#define DW_DLE_REL_ALLOC 133
1N/A#define DW_DLE_ARANGE_OFFSET_BAD 134
1N/A#define DW_DLE_SEGMENT_SIZE_BAD 135
1N/A#define DW_DLE_ARANGE_LENGTH_BAD 136
1N/A#define DW_DLE_ARANGE_DECODE_ERROR 137
1N/A#define DW_DLE_ARANGES_NULL 138
1N/A#define DW_DLE_ARANGE_NULL 139
1N/A#define DW_DLE_NO_FILE_NAME 140
1N/A#define DW_DLE_NO_COMP_DIR 141
1N/A#define DW_DLE_CU_ADDRESS_SIZE_BAD 142
1N/A#define DW_DLE_INPUT_ATTR_BAD 143
1N/A#define DW_DLE_EXPR_NULL 144
1N/A#define DW_DLE_BAD_EXPR_OPCODE 145
1N/A#define DW_DLE_EXPR_LENGTH_BAD 146
1N/A#define DW_DLE_MULTIPLE_RELOC_IN_EXPR 147
1N/A#define DW_DLE_ELF_GETIDENT_ERROR 148
1N/A#define DW_DLE_NO_AT_MIPS_FDE 149
1N/A#define DW_DLE_NO_CIE_FOR_FDE 150
1N/A#define DW_DLE_DIE_ABBREV_LIST_NULL 151
1N/A#define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE 152
1N/A#define DW_DLE_DEBUG_FUNCNAMES_NULL 153
1N/A#define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR 154
1N/A#define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD 155
1N/A#define DW_DLE_FUNC_NULL 156
1N/A#define DW_DLE_FUNC_CONTEXT_NULL 157
1N/A#define DW_DLE_DEBUG_TYPENAMES_DUPLICATE 158
1N/A#define DW_DLE_DEBUG_TYPENAMES_NULL 159
1N/A#define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR 160
1N/A#define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD 161
1N/A#define DW_DLE_TYPE_NULL 162
1N/A#define DW_DLE_TYPE_CONTEXT_NULL 163
1N/A#define DW_DLE_DEBUG_VARNAMES_DUPLICATE 164
1N/A#define DW_DLE_DEBUG_VARNAMES_NULL 165
1N/A#define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR 166
1N/A#define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD 167
1N/A#define DW_DLE_VAR_NULL 168
1N/A#define DW_DLE_VAR_CONTEXT_NULL 169
1N/A#define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE 170
1N/A#define DW_DLE_DEBUG_WEAKNAMES_NULL 171
1N/A#define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR 172
1N/A#define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD 173
1N/A#define DW_DLE_WEAK_NULL 174
1N/A#define DW_DLE_WEAK_CONTEXT_NULL 175
1N/A#define DW_DLE_LOCDESC_COUNT_WRONG 176
1N/A#define DW_DLE_MACINFO_STRING_NULL 177
1N/A#define DW_DLE_MACINFO_STRING_EMPTY 178
1N/A#define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE 179
1N/A#define DW_DLE_MACINFO_MALLOC_FAIL 180
1N/A#define DW_DLE_DEBUGMACINFO_ERROR 181
1N/A#define DW_DLE_DEBUG_MACRO_LENGTH_BAD 182
1N/A#define DW_DLE_DEBUG_MACRO_MAX_BAD 183
1N/A#define DW_DLE_DEBUG_MACRO_INTERNAL_ERR 184
1N/A#define DW_DLE_DEBUG_MACRO_MALLOC_SPACE 185
1N/A#define DW_DLE_DEBUG_MACRO_INCONSISTENT 186
1N/A#define DW_DLE_DF_NO_CIE_AUGMENTATION 187
1N/A#define DW_DLE_DF_REG_NUM_TOO_HIGH 188
1N/A#define DW_DLE_DF_MAKE_INSTR_NO_INIT 189
1N/A#define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC 190
1N/A#define DW_DLE_DF_POP_EMPTY_STACK 191
1N/A#define DW_DLE_DF_ALLOC_FAIL 192
1N/A#define DW_DLE_DF_FRAME_DECODING_ERROR 193
1N/A
1N/A /* DW_DLE_LAST MUST EQUAL LAST ERROR NUMBER */
1N/A#define DW_DLE_LAST 193
1N/A#define DW_DLE_LO_USER 0x10000
1N/A
1N/A /* taken as meaning 'undefined value', this is not
1N/A a column or register number.
1N/A Only present at libdwarf runtime. Never on disk.
1N/A DW_FRAME_* Values present on disk are in dwarf.h
1N/A */
1N/A#define DW_FRAME_UNDEFINED_VAL 1034
1N/A
1N/A /* taken as meaning 'same value' as caller had, not a column
1N/A or register number
1N/A Only present at libdwarf runtime. Never on disk.
1N/A DW_FRAME_* Values present on disk are in dwarf.h
1N/A */
1N/A#define DW_FRAME_SAME_VAL 1035
1N/A
1N/A
1N/A
1N/A/* error return values
1N/A*/
1N/A#define DW_DLV_BADADDR (~(Dwarf_Addr)0)
1N/A /* for functions returning target address */
1N/A
1N/A#define DW_DLV_NOCOUNT ((Dwarf_Signed)-1)
1N/A /* for functions returning count */
1N/A
1N/A#define DW_DLV_BADOFFSET (~(Dwarf_Off)0)
1N/A /* for functions returning offset */
1N/A
1N/A/* standard return values for functions */
1N/A#define DW_DLV_NO_ENTRY -1
1N/A#define DW_DLV_OK 0
1N/A#define DW_DLV_ERROR 1
1N/A
1N/A/* Special values for offset_into_exception_table field of dwarf fde's. */
1N/A/* The following value indicates that there is no Exception table offset
1N/A associated with a dwarf frame. */
1N/A#define DW_DLX_NO_EH_OFFSET (-1LL)
1N/A/* The following value indicates that the producer was unable to analyse the
1N/A source file to generate Exception tables for this function. */
1N/A#define DW_DLX_EH_OFFSET_UNAVAILABLE (-2LL)
1N/A
1N/A
1N/A/*===========================================================================*/
1N/A/* Dwarf consumer interface initialization and termination operations */
1N/A
1N/A/* non-elf initialization */
1N/Aint dwarf_init(int /*fd*/,
1N/A Dwarf_Unsigned /*access*/,
1N/A Dwarf_Handler /*errhand*/,
1N/A Dwarf_Ptr /*errarg*/,
1N/A Dwarf_Debug * /*dbg*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* elf intialization */
1N/Aint dwarf_elf_init(Elf* /*elf*/,
1N/A Dwarf_Unsigned /*access*/,
1N/A Dwarf_Handler /*errhand*/,
1N/A Dwarf_Ptr /*errarg*/,
1N/A Dwarf_Debug * /*dbg*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Undocumented function for memory allocator. */
1N/Avoid dwarf_print_memory_stats(Dwarf_Debug /*dbg*/);
1N/A
1N/A
1N/Aint dwarf_get_elf(Dwarf_Debug /*dbg*/,
1N/A Elf ** /*return_elfptr*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_finish(Dwarf_Debug /*dbg*/, Dwarf_Error* /*error*/);
1N/A
1N/A/* die traversal operations */
1N/Aint dwarf_next_cu_header(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Unsigned* /*cu_header_length*/,
1N/A Dwarf_Half* /*version_stamp*/,
1N/A Dwarf_Off* /*abbrev_offset*/,
1N/A Dwarf_Half* /*address_size*/,
1N/A Dwarf_Unsigned* /*next_cu_header_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_siblingof(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Die /*die*/,
1N/A Dwarf_Die* /*return_siblingdie*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_child(Dwarf_Die /*die*/,
1N/A Dwarf_Die* /*return_childdie*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* finding die given offset */
1N/Aint dwarf_offdie(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Off /*offset*/,
1N/A Dwarf_Die* /*return_die*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* higher level functions (Unimplemented) */
1N/Aint dwarf_pcfile(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Addr /*pc*/,
1N/A Dwarf_Die* /*return_die*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Unimplemented */
1N/Aint dwarf_pcsubr(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Addr /*pc*/,
1N/A Dwarf_Die* /*return_die*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Unimplemented */
1N/Aint dwarf_pcscope(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Addr /*pc*/,
1N/A Dwarf_Die* /*return_die*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* operations on DIEs */
1N/Aint dwarf_tag(Dwarf_Die /*die*/,
1N/A Dwarf_Half* /*return_tag*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* utility? */
1N/Aint dwarf_dieoffset(Dwarf_Die /*die*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_die_CU_offset(Dwarf_Die /*die*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_attr (Dwarf_Die /*die*/,
1N/A Dwarf_Half /*attr*/,
1N/A Dwarf_Attribute * /*returned_attr*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_diename(Dwarf_Die /*die*/,
1N/A char ** /*diename*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* convenience functions, alternative to using dwarf_attrlist() */
1N/Aint dwarf_hasattr(Dwarf_Die /*die*/,
1N/A Dwarf_Half /*attr*/,
1N/A Dwarf_Bool * /*returned_bool*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_loclist(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Locdesc** /*llbuf*/,
1N/A Dwarf_Signed * /*locCount*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Unimplemented */
1N/Aint dwarf_stringlen(Dwarf_Die /*die*/,
1N/A Dwarf_Locdesc ** /*returned_locdesc*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Unimplemented */
1N/Aint dwarf_subscrcnt(Dwarf_Die /*die*/,
1N/A Dwarf_Signed * /*returned_count*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Unimplemented */
1N/Aint dwarf_nthsubscr(Dwarf_Die /*die*/,
1N/A Dwarf_Unsigned /*ssndx*/,
1N/A Dwarf_Die * /*returned_die*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_lowpc(Dwarf_Die /*die*/,
1N/A Dwarf_Addr * /*returned_addr*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_highpc(Dwarf_Die /*die*/,
1N/A Dwarf_Addr * /*returned_addr*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_bytesize(Dwarf_Die /*die*/,
1N/A Dwarf_Unsigned * /*returned_size*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Unimplemented */
1N/Aint dwarf_isbitfield(Dwarf_Die /*die*/,
1N/A Dwarf_Bool * /*returned_bool*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_bitsize(Dwarf_Die /*die*/,
1N/A Dwarf_Unsigned * /*returned_size*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_bitoffset(Dwarf_Die /*die*/,
1N/A Dwarf_Unsigned * /*returned_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_srclang(Dwarf_Die /*die*/,
1N/A Dwarf_Unsigned * /*returned_lang*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_arrayorder(Dwarf_Die /*die*/,
1N/A Dwarf_Unsigned * /*returned_order*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* end of convenience function list */
1N/A
1N/A/* this is the main interface to attributes of a DIE */
1N/Aint dwarf_attrlist(Dwarf_Die /*die*/,
1N/A Dwarf_Attribute** /*attrbuf*/,
1N/A Dwarf_Signed * /*attrcount*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* query operations for attributes */
1N/Aint dwarf_hasform(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Half /*form*/,
1N/A Dwarf_Bool * /*returned_bool*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_whatform(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Half * /*returned_form*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_whatattr(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Half * /*returned_attr_num*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/*
1N/A The following are concerned with the Primary Interface: getting
1N/A the actual data values. One function per 'kind' of FORM.
1N/A*/
1N/A /*dwarf_formref returns, thru return_offset, a CU-relative offset
1N/A ** and does not allow DW_FORM_ref_addr*/
1N/Aint dwarf_formref(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A /*dwarf_global_formref returns, thru return_offset,
1N/A a debug_info-relative offset and does allow all reference forms*/
1N/Aint dwarf_global_formref(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_formaddr(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Addr * /*returned_addr*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_formflag(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Bool * /*returned_bool*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_formudata(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Unsigned * /*returned_val*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_formsdata(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Signed * /*returned_val*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_formblock(Dwarf_Attribute /*attr*/,
1N/A Dwarf_Block ** /*returned_block*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_formstring(Dwarf_Attribute /*attr*/,
1N/A char ** /*returned_string*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* end attribute query operations. */
1N/A
1N/A/* line number operations */
1N/A/* dwarf_srclines is the normal interface */
1N/Aint dwarf_srclines(Dwarf_Die /*die*/,
1N/A Dwarf_Line** /*linebuf*/,
1N/A Dwarf_Signed * /*linecount*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_srcfiles(Dwarf_Die /*die*/,
1N/A char*** /*srcfiles*/,
1N/A Dwarf_Signed * /*filecount*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Unimplemented. */
1N/Aint dwarf_dieline(Dwarf_Die /*die*/,
1N/A Dwarf_Line * /*returned_line*/,
1N/A Dwarf_Error * /*error*/);
1N/A
1N/Aint dwarf_linebeginstatement(Dwarf_Line /*line*/,
1N/A Dwarf_Bool * /*returned_bool*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_lineendsequence(Dwarf_Line /*line*/,
1N/A Dwarf_Bool * /*returned_bool*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_lineno(Dwarf_Line /*line*/,
1N/A Dwarf_Unsigned * /*returned_lineno*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_lineaddr(Dwarf_Line /*line*/,
1N/A Dwarf_Addr * /*returned_addr*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_lineoff(Dwarf_Line /*line*/,
1N/A Dwarf_Signed * /*returned_lineoffset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_linesrc(Dwarf_Line /*line*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_lineblock(Dwarf_Line /*line*/,
1N/A Dwarf_Bool * /*returned_bool*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* tertiary interface to line info */
1N/A/* Unimplemented */
1N/Aint dwarf_pclines(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Addr /*pc*/,
1N/A Dwarf_Line** /*linebuf*/,
1N/A Dwarf_Signed * /*linecount*/,
1N/A Dwarf_Signed /*slide*/,
1N/A Dwarf_Error* /*error*/);
1N/A/* end line number operations */
1N/A
1N/A/* global name space operations (.debug_pubnames access) */
1N/Aint dwarf_get_globals(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Global** /*globals*/,
1N/A Dwarf_Signed * /*number_of_globals*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_globname(Dwarf_Global /*glob*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_global_die_offset(Dwarf_Global /*global*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error * /*error*/);
1N/A
1N/Aint dwarf_get_cu_die_offset_given_cu_header_offset(
1N/A Dwarf_Debug /*dbg*/,
1N/A Dwarf_Off /*in_cu_header_offset*/,
1N/A Dwarf_Off * /*out_cu_die_offset*/,
1N/A Dwarf_Error * /*err*/);
1N/A#ifdef __sgi /* pragma is sgi MIPS only */
1N/A#pragma optional dwarf_get_cu_die_offset_given_cu_header_offset
1N/A#endif
1N/A
1N/Aint dwarf_global_cu_offset(Dwarf_Global /*global*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_global_name_offsets(Dwarf_Global /*global*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Off* /*die_offset*/,
1N/A Dwarf_Off* /*cu_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Static function name operations. */
1N/Aint dwarf_get_funcs(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Func** /*funcs*/,
1N/A Dwarf_Signed * /*number_of_funcs*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_funcname(Dwarf_Func /*func*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_func_die_offset(Dwarf_Func /*func*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_func_cu_offset(Dwarf_Func /*func*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_func_name_offsets(Dwarf_Func /*func*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Off* /*die_offset*/,
1N/A Dwarf_Off* /*cu_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* User-defined type name operations. */
1N/Aint dwarf_get_types(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Type** /*types*/,
1N/A Dwarf_Signed * /*number_of_types*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_typename(Dwarf_Type /*type*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_type_die_offset(Dwarf_Type /*type*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_type_cu_offset(Dwarf_Type /*type*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_type_name_offsets(Dwarf_Type /*type*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Off* /*die_offset*/,
1N/A Dwarf_Off* /*cu_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* File-scope static variable name operations. */
1N/Aint dwarf_get_vars(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Var** /*vars*/,
1N/A Dwarf_Signed * /*number_of_vars*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_varname(Dwarf_Var /*var*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_var_die_offset(Dwarf_Var /*var*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_var_cu_offset(Dwarf_Var /*var*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_var_name_offsets(Dwarf_Var /*var*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Off* /*die_offset*/,
1N/A Dwarf_Off* /*cu_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* weak name operations. */
1N/Aint dwarf_get_weaks(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Weak** /*weaks*/,
1N/A Dwarf_Signed * /*number_of_weaks*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_weakname(Dwarf_Weak /*weak*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_weak_die_offset(Dwarf_Weak /*weak*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_weak_cu_offset(Dwarf_Weak /*weak*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_weak_name_offsets(Dwarf_Weak /*weak*/,
1N/A char ** /*returned_name*/,
1N/A Dwarf_Off* /*die_offset*/,
1N/A Dwarf_Off* /*cu_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* location list section operation. (.debug_loc access) */
1N/A/* Unimplemented. */
1N/Aint dwarf_get_loclist_entry(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Unsigned /*offset*/,
1N/A Dwarf_Addr* /*hipc*/,
1N/A Dwarf_Addr* /*lopc*/,
1N/A Dwarf_Ptr* /*data*/,
1N/A Dwarf_Unsigned* /*entry_len*/,
1N/A Dwarf_Unsigned* /*next_entry*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* abbreviation section operations */
1N/Aint dwarf_get_abbrev(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Unsigned /*offset*/,
1N/A Dwarf_Abbrev * /*returned_abbrev*/,
1N/A Dwarf_Unsigned* /*length*/,
1N/A Dwarf_Unsigned* /*attr_count*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_abbrev_tag(Dwarf_Abbrev /*abbrev*/,
1N/A Dwarf_Half* /*return_tag_number*/,
1N/A Dwarf_Error* /*error*/);
1N/Aint dwarf_get_abbrev_code(Dwarf_Abbrev /*abbrev*/,
1N/A Dwarf_Unsigned* /*return_code_number*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_abbrev_children_flag(Dwarf_Abbrev /*abbrev*/,
1N/A Dwarf_Signed* /*return_flag*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_abbrev_entry(Dwarf_Abbrev /*abbrev*/,
1N/A Dwarf_Signed /*index*/,
1N/A Dwarf_Half * /*returned_attr_num*/,
1N/A Dwarf_Signed* /*form*/,
1N/A Dwarf_Off* /*offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* consumer string section operation */
1N/Aint dwarf_get_str(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Off /*offset*/,
1N/A char** /*string*/,
1N/A Dwarf_Signed * /*strlen_of_string*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Consumer op on gnu .eh_frame info */
1N/Aint dwarf_get_fde_list_eh(
1N/A Dwarf_Debug /*dbg*/,
1N/A Dwarf_Cie ** /*cie_data*/,
1N/A Dwarf_Signed * /*cie_element_count*/,
1N/A Dwarf_Fde ** /*fde_data*/,
1N/A Dwarf_Signed * /*fde_element_count*/,
1N/A Dwarf_Error * /*error*/);
1N/A
1N/A
1N/A/* consumer operations on frame info: .debug_frame */
1N/Aint dwarf_get_fde_list(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Cie** /*cie_data*/,
1N/A Dwarf_Signed* /*cie_element_count*/,
1N/A Dwarf_Fde** /*fde_data*/,
1N/A Dwarf_Signed* /*fde_element_count*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A
1N/Aint dwarf_get_fde_range(Dwarf_Fde /*fde*/,
1N/A Dwarf_Addr* /*low_pc*/,
1N/A Dwarf_Unsigned* /*func_length*/,
1N/A Dwarf_Ptr* /*fde_bytes*/,
1N/A Dwarf_Unsigned* /*fde_byte_length*/,
1N/A Dwarf_Off* /*cie_offset*/,
1N/A Dwarf_Signed* /*cie_index*/,
1N/A Dwarf_Off* /*fde_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_fde_exception_info(Dwarf_Fde /*fde*/,
1N/A Dwarf_Signed* /* offset_into_exception_tables */,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_cie_of_fde(Dwarf_Fde /*fde*/,
1N/A Dwarf_Cie * /*cie_returned*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_cie_info(Dwarf_Cie /*cie*/,
1N/A Dwarf_Unsigned * /*bytes_in_cie*/,
1N/A Dwarf_Small* /*version*/,
1N/A char ** /*augmenter*/,
1N/A Dwarf_Unsigned* /*code_alignment_factor*/,
1N/A Dwarf_Signed* /*data_alignment_factor*/,
1N/A Dwarf_Half* /*return_address_register_rule*/,
1N/A Dwarf_Ptr* /*initial_instructions*/,
1N/A Dwarf_Unsigned* /*initial_instructions_length*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_fde_instr_bytes(Dwarf_Fde /*fde*/,
1N/A Dwarf_Ptr * /*outinstrs*/, Dwarf_Unsigned * /*outlen*/,
1N/A Dwarf_Error * /*error*/);
1N/A
1N/Aint dwarf_get_fde_info_for_all_regs(Dwarf_Fde /*fde*/,
1N/A Dwarf_Addr /*pc_requested*/,
1N/A Dwarf_Regtable* /*reg_table*/,
1N/A Dwarf_Addr* /*row_pc*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_fde_info_for_reg(Dwarf_Fde /*fde*/,
1N/A Dwarf_Half /*table_column*/,
1N/A Dwarf_Addr /*pc_requested*/,
1N/A Dwarf_Signed* /*offset_relevant*/,
1N/A Dwarf_Signed* /*register*/,
1N/A Dwarf_Signed* /*offset*/,
1N/A Dwarf_Addr* /*row_pc*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_fde_for_die(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Die /*subr_die */,
1N/A Dwarf_Fde * /*returned_fde*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_fde_n(Dwarf_Fde* /*fde_data*/,
1N/A Dwarf_Unsigned /*fde_index*/,
1N/A Dwarf_Fde * /*returned_fde*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_fde_at_pc(Dwarf_Fde* /*fde_data*/,
1N/A Dwarf_Addr /*pc_of_interest*/,
1N/A Dwarf_Fde * /*returned_fde*/,
1N/A Dwarf_Addr* /*lopc*/,
1N/A Dwarf_Addr* /*hipc*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_expand_frame_instructions(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Ptr /*instruction*/,
1N/A Dwarf_Unsigned /*i_length*/,
1N/A Dwarf_Frame_Op** /*returned_op_list*/,
1N/A Dwarf_Signed* /*op_count*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Operations on .debug_aranges. */
1N/Aint dwarf_get_aranges(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Arange** /*aranges*/,
1N/A Dwarf_Signed * /*arange_count*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A
1N/A
1N/Aint dwarf_get_arange(
1N/A Dwarf_Arange* /*aranges*/,
1N/A Dwarf_Unsigned /*arange_count*/,
1N/A Dwarf_Addr /*address*/,
1N/A Dwarf_Arange * /*returned_arange*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_cu_die_offset(
1N/A Dwarf_Arange /*arange*/,
1N/A Dwarf_Off* /*return_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_arange_cu_header_offset(
1N/A Dwarf_Arange /*arange*/,
1N/A Dwarf_Off* /*return_cu_header_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A#ifdef __sgi /* pragma is sgi MIPS only */
1N/A#pragma optional dwarf_get_arange_cu_header_offset
1N/A#endif
1N/A
1N/Aint dwarf_get_arange_info(
1N/A Dwarf_Arange /*arange*/,
1N/A Dwarf_Addr* /*start*/,
1N/A Dwarf_Unsigned* /*length*/,
1N/A Dwarf_Off* /*cu_die_offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A
1N/A/* consumer .debug_macinfo information interface.
1N/A*/
1N/Astruct Dwarf_Macro_Details_s {
1N/A Dwarf_Off dmd_offset; /* offset, in the section,
1N/A of this macro info */
1N/A Dwarf_Small dmd_type; /* the type, DW_MACINFO_define etc*/
1N/A Dwarf_Signed dmd_lineno; /* the source line number where
1N/A applicable and vend_def # if
1N/A vendor_extension op
1N/A */
1N/A
1N/A Dwarf_Signed dmd_fileindex;/* the source file index:
1N/A applies to define undef start_file
1N/A */
1N/A char * dmd_macro; /* macro name (with value for defineop)
1N/A string from vendor ext
1N/A */
1N/A};
1N/A
1N/A/* _dwarf_print_lines is for use by dwarfdump: it prints
1N/A line info to stdout.
1N/A*/
1N/Aint _dwarf_print_lines(Dwarf_Die cu_die,Dwarf_Error * /*error*/);
1N/A
1N/A/* _dwarf_ld_sort_lines is for use solely by ld for
1N/A rearranging lines in .debug_line in a .o created with a text
1N/A section per function.
1N/A -OPT:procedure_reorder=ON
1N/A where ld-cord (cord(1)ing by ld,
1N/A not by cord(1)) may have changed the function order.
1N/A*/
1N/Aint _dwarf_ld_sort_lines(
1N/A void * orig_buffer,
1N/A unsigned long buffer_len,
1N/A int is_64_bit,
1N/A int *any_change,
1N/A int * err_code);
1N/A
1N/A/* Used by dwarfdump -v to print offsets, for debugging
1N/A dwarf info
1N/A*/
1N/Aint _dwarf_fde_section_offset(Dwarf_Debug dbg,Dwarf_Fde in_fde,
1N/A Dwarf_Off *fde_off, Dwarf_Off *cie_off,
1N/A Dwarf_Error *err);
1N/A
1N/A/* Used by dwarfdump -v to print offsets, for debugging
1N/A dwarf info
1N/A*/
1N/Aint _dwarf_cie_section_offset(Dwarf_Debug dbg,Dwarf_Cie in_cie,
1N/A Dwarf_Off *cie_off,
1N/A Dwarf_Error *err);
1N/A
1N/A
1N/A
1N/A
1N/Atypedef struct Dwarf_Macro_Details_s Dwarf_Macro_Details;
1N/A
1N/Aint dwarf_get_macro(Dwarf_Debug /*dbg*/,
1N/A char * /*requested_macro_name*/,
1N/A Dwarf_Addr /*pc_of_request*/,
1N/A char ** /*returned_macro_value*/,
1N/A Dwarf_Error * /*error*/);
1N/A
1N/Aint dwarf_get_all_defined_macros(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Addr /*pc_of_request*/,
1N/A Dwarf_Signed * /*returned_count*/,
1N/A char *** /*returned_pointers_to_macros*/,
1N/A Dwarf_Error * /*error*/);
1N/A
1N/Achar *dwarf_find_macro_value_start(char * /*macro_string*/);
1N/A
1N/Aint dwarf_get_macro_details(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Off /*macro_offset*/,
1N/A Dwarf_Unsigned /*maximum_count*/,
1N/A Dwarf_Signed * /*entry_count*/,
1N/A Dwarf_Macro_Details ** /*details*/,
1N/A Dwarf_Error * /*err*/);
1N/A
1N/A
1N/Aint dwarf_get_address_size(Dwarf_Debug /*dbg*/,
1N/A Dwarf_Half * /*addr_size*/,
1N/A Dwarf_Error * /*error*/);
1N/A
1N/A/* utility operations */
1N/ADwarf_Unsigned dwarf_errno(Dwarf_Error /*error*/);
1N/A
1N/Achar* dwarf_errmsg(Dwarf_Error /*error*/);
1N/A
1N/A/* stringcheck zero is default and means do all
1N/A** string length validity checks.
1N/A** Call with parameter value 1 to turn off many such checks (and
1N/A** increase performance).
1N/A** Call with zero for safest running.
1N/A** Actual value saved and returned is only 8 bits! Upper bits
1N/A** ignored by libdwarf (and zero on return).
1N/A** Returns previous value.
1N/A*/
1N/Aint dwarf_set_stringcheck(int /*stringcheck*/);
1N/A
1N/A/* Unimplemented */
1N/ADwarf_Handler dwarf_seterrhand(Dwarf_Debug /*dbg*/, Dwarf_Handler /*errhand*/);
1N/A
1N/A/* Unimplemented */
1N/ADwarf_Ptr dwarf_seterrarg(Dwarf_Debug /*dbg*/, Dwarf_Ptr /*errarg*/);
1N/A
1N/Avoid dwarf_dealloc(Dwarf_Debug /*dbg*/, void* /*space*/,
1N/A Dwarf_Unsigned /*type*/);
1N/A
1N/A/* DWARF Producer Interface */
1N/A
1N/Atypedef int (*Dwarf_Callback_Func)(
1N/A char* /*name*/,
1N/A int /*size*/,
1N/A Dwarf_Unsigned /*type*/,
1N/A Dwarf_Unsigned /*flags*/,
1N/A Dwarf_Unsigned /*link*/,
1N/A Dwarf_Unsigned /*info*/,
1N/A int* /*sect name index*/,
1N/A int* /*error*/);
1N/A
1N/ADwarf_P_Debug dwarf_producer_init(
1N/A Dwarf_Unsigned /*creation_flags*/,
1N/A Dwarf_Callback_Func /*func*/,
1N/A Dwarf_Handler /*errhand*/,
1N/A Dwarf_Ptr /*errarg*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Atypedef int (*Dwarf_Callback_Func_b)(
1N/A char* /*name*/,
1N/A int /*size*/,
1N/A Dwarf_Unsigned /*type*/,
1N/A Dwarf_Unsigned /*flags*/,
1N/A Dwarf_Unsigned /*link*/,
1N/A Dwarf_Unsigned /*info*/,
1N/A Dwarf_Unsigned* /*sect_name_index*/,
1N/A int* /*error*/);
1N/A
1N/A
1N/ADwarf_P_Debug dwarf_producer_init_b(
1N/A Dwarf_Unsigned /*flags*/,
1N/A Dwarf_Callback_Func_b /*func*/,
1N/A Dwarf_Handler /*errhand*/,
1N/A Dwarf_Ptr /*errarg*/,
1N/A Dwarf_Error * /*error*/);
1N/A
1N/A
1N/ADwarf_Signed dwarf_transform_to_disk_form(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Ptr dwarf_get_section_bytes(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Signed /*dwarf_section*/,
1N/A Dwarf_Signed* /*elf_section_index*/,
1N/A Dwarf_Unsigned* /*length*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_relocation_info_count(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Unsigned * /*count_of_relocation_sections*/,
1N/A int * /*drd_buffer_version*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_get_relocation_info(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Signed * /*elf_section_index*/,
1N/A Dwarf_Signed * /*elf_section_index_link*/,
1N/A Dwarf_Unsigned * /*relocation_buffer_count*/,
1N/A Dwarf_Relocation_Data * /*reldata_buffer*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* v1: no drd_length field, enum explicit */
1N/A/* v2: has the drd_length field, enum value in uchar member */
1N/A#define DWARF_DRD_BUFFER_VERSION 2
1N/A
1N/Avoid dwarf_reset_section_bytes(Dwarf_P_Debug /*dbg*/);
1N/A
1N/ADwarf_Unsigned dwarf_producer_finish(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Producer attribute addition functions. */
1N/ADwarf_P_Attribute dwarf_add_AT_targ_address(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Half /*attr*/,
1N/A Dwarf_Unsigned /*pc_value*/,
1N/A Dwarf_Signed /*sym_index*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_block(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Half /*attr*/,
1N/A Dwarf_Small* /*block_data*/,
1N/A Dwarf_Unsigned /*block_len*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_targ_address_b(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Half /*attr*/,
1N/A Dwarf_Unsigned /*pc_value*/,
1N/A Dwarf_Unsigned /*sym_index*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_unsigned_const(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Half /*attr*/,
1N/A Dwarf_Unsigned /*value*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_signed_const(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Half /*attr*/,
1N/A Dwarf_Signed /*value*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_reference(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Half /*attr*/,
1N/A Dwarf_P_Die /*otherdie*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_const_value_string(Dwarf_P_Die /*ownerdie*/,
1N/A char* /*string_value*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_location_expr(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Half /*attr*/,
1N/A Dwarf_P_Expr /*loc_expr*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_string(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Half /*attr*/,
1N/A char* /*string*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_flag(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Half /*attr*/,
1N/A Dwarf_Small /*flag*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_producer(Dwarf_P_Die /*ownerdie*/,
1N/A char* /*producer_string*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_const_value_signedint(Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Signed /*signed_value*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_const_value_unsignedint(
1N/A Dwarf_P_Die /*ownerdie*/,
1N/A Dwarf_Unsigned /*unsigned_value*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_comp_dir(Dwarf_P_Die /*ownerdie*/,
1N/A char* /*current_working_directory*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Attribute dwarf_add_AT_name(Dwarf_P_Die /*die*/,
1N/A char* /*name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Producer line creation functions (.debug_line) */
1N/ADwarf_Unsigned dwarf_add_directory_decl(Dwarf_P_Debug /*dbg*/,
1N/A char* /*name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_file_decl(Dwarf_P_Debug /*dbg*/,
1N/A char* /*name*/,
1N/A Dwarf_Unsigned /*dir_index*/,
1N/A Dwarf_Unsigned /*time_last_modified*/,
1N/A Dwarf_Unsigned /*length*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_line_entry(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Unsigned /*file_index*/,
1N/A Dwarf_Addr /*code_address*/,
1N/A Dwarf_Unsigned /*lineno*/,
1N/A Dwarf_Signed /*column_number*/,
1N/A Dwarf_Bool /*is_source_stmt_begin*/,
1N/A Dwarf_Bool /*is_basic_block_begin*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_lne_set_address(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Unsigned /*offset*/,
1N/A Dwarf_Unsigned /*symbol_index*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_lne_end_sequence(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Addr /*end_address*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* Producer .debug_frame functions */
1N/ADwarf_Unsigned dwarf_add_frame_cie(Dwarf_P_Debug /*dbg*/,
1N/A char* /*augmenter*/,
1N/A Dwarf_Small /*code_alignent_factor*/,
1N/A Dwarf_Small /*data_alignment_factor*/,
1N/A Dwarf_Small /*return_address_reg*/,
1N/A Dwarf_Ptr /*initialization_bytes*/,
1N/A Dwarf_Unsigned /*init_byte_len*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_frame_fde(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Fde /*fde*/,
1N/A Dwarf_P_Die /*corresponding subprogram die*/,
1N/A Dwarf_Unsigned /*cie_to_use*/,
1N/A Dwarf_Unsigned /*virt_addr_of_described_code*/,
1N/A Dwarf_Unsigned /*length_of_code*/,
1N/A Dwarf_Unsigned /*symbol_index*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_frame_fde_b(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Fde /*fde*/,
1N/A Dwarf_P_Die /*die*/,
1N/A Dwarf_Unsigned /*cie*/,
1N/A Dwarf_Addr /*virt_addr*/,
1N/A Dwarf_Unsigned /*code_len*/,
1N/A Dwarf_Unsigned /*sym_idx*/,
1N/A Dwarf_Unsigned /*sym_idx_of_end*/,
1N/A Dwarf_Addr /*offset_from_end_sym*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_frame_info_b(
1N/A Dwarf_P_Debug dbg /*dbg*/,
1N/A Dwarf_P_Fde /*fde*/,
1N/A Dwarf_P_Die /*die*/,
1N/A Dwarf_Unsigned /*cie*/,
1N/A Dwarf_Addr /*virt_addr*/,
1N/A Dwarf_Unsigned /*code_len*/,
1N/A Dwarf_Unsigned /*symidx*/,
1N/A Dwarf_Unsigned /* end_symbol */,
1N/A Dwarf_Addr /* offset_from_end_symbol */,
1N/A Dwarf_Signed /*offset_into_exception_tables*/,
1N/A Dwarf_Unsigned /*exception_table_symbol*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_frame_info(
1N/A Dwarf_P_Debug dbg /*dbg*/,
1N/A Dwarf_P_Fde /*fde*/,
1N/A Dwarf_P_Die /*die*/,
1N/A Dwarf_Unsigned /*cie*/,
1N/A Dwarf_Addr /*virt_addr*/,
1N/A Dwarf_Unsigned /*code_len*/,
1N/A Dwarf_Unsigned /*symidx*/,
1N/A Dwarf_Signed /*offset_into_exception_tables*/,
1N/A Dwarf_Unsigned /*exception_table_symbol*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Fde dwarf_add_fde_inst(
1N/A Dwarf_P_Fde /*fde*/,
1N/A Dwarf_Small /*op*/,
1N/A Dwarf_Unsigned /*val1*/,
1N/A Dwarf_Unsigned /*val2*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Fde dwarf_new_fde(Dwarf_P_Debug /*dbg*/, Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Fde dwarf_fde_cfa_offset(
1N/A Dwarf_P_Fde /*fde*/,
1N/A Dwarf_Unsigned /*register_number*/,
1N/A Dwarf_Signed /*offset*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* die creation & addition routines */
1N/ADwarf_P_Die dwarf_new_die(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Tag /*tag*/,
1N/A Dwarf_P_Die /*parent*/,
1N/A Dwarf_P_Die /*child*/,
1N/A Dwarf_P_Die /*left */,
1N/A Dwarf_P_Die /*right*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_die_to_debug(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*die*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_P_Die dwarf_die_link(
1N/A Dwarf_P_Die /*die*/,
1N/A Dwarf_P_Die /*parent*/,
1N/A Dwarf_P_Die /*child*/,
1N/A Dwarf_P_Die /*left*/,
1N/A Dwarf_P_Die /*right*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Avoid dwarf_dealloc_compressed_block(
1N/A Dwarf_P_Debug,
1N/A void *
1N/A);
1N/A
1N/Avoid dwarf_dealloc_uncompressed_block(
1N/A Dwarf_Debug,
1N/A void *
1N/A);
1N/A
1N/Avoid * dwarf_compress_integer_block(
1N/A Dwarf_P_Debug, /* dbg */
1N/A Dwarf_Bool, /* signed==true (or unsigned) */
1N/A Dwarf_Small, /* size of integer units: 8, 16, 32, 64 */
1N/A void*, /* data */
1N/A Dwarf_Unsigned, /* number of elements */
1N/A Dwarf_Unsigned*, /* number of bytes in output block */
1N/A Dwarf_Error* /* error */
1N/A);
1N/A
1N/Avoid * dwarf_uncompress_integer_block(
1N/A Dwarf_Debug, /* dbg */
1N/A Dwarf_Bool, /* signed==true (or unsigned) */
1N/A Dwarf_Small, /* size of integer units: 8, 16, 32, 64 */
1N/A void*, /* data */
1N/A Dwarf_Unsigned, /* number of bytes in input */
1N/A Dwarf_Unsigned*, /* number of units in output block */
1N/A Dwarf_Error* /* error */
1N/A);
1N/A
1N/A/* Operations to create location expressions. */
1N/ADwarf_P_Expr dwarf_new_expr(Dwarf_P_Debug /*dbg*/, Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_expr_gen(
1N/A Dwarf_P_Expr /*expr*/,
1N/A Dwarf_Small /*opcode*/,
1N/A Dwarf_Unsigned /*val1*/,
1N/A Dwarf_Unsigned /*val2*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_expr_addr(
1N/A Dwarf_P_Expr /*expr*/,
1N/A Dwarf_Unsigned /*addr*/,
1N/A Dwarf_Signed /*sym_index*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_expr_addr_b(
1N/A Dwarf_P_Expr /*expr*/,
1N/A Dwarf_Unsigned /*addr*/,
1N/A Dwarf_Unsigned /*sym_index*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_expr_current_offset(
1N/A Dwarf_P_Expr /*expr*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Addr dwarf_expr_into_block(
1N/A Dwarf_P_Expr /*expr*/,
1N/A Dwarf_Unsigned* /*length*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_arange(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Addr /*begin_address*/,
1N/A Dwarf_Unsigned /*length*/,
1N/A Dwarf_Signed /*symbol_index*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_arange_b(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Addr /*begin_address*/,
1N/A Dwarf_Unsigned /*length*/,
1N/A Dwarf_Unsigned /*symbol_index*/,
1N/A Dwarf_Unsigned /*end_symbol_index*/,
1N/A Dwarf_Addr /*offset_from_end_symbol*/,
1N/A Dwarf_Error * /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_pubname(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*die*/,
1N/A char* /*pubname_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_funcname(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*die*/,
1N/A char* /*func_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_typename(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*die*/,
1N/A char* /*type_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_varname(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*die*/,
1N/A char* /*var_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/ADwarf_Unsigned dwarf_add_weakname(
1N/A Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_P_Die /*die*/,
1N/A char* /*weak_name*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* .debug_macinfo producer functions
1N/A Functions must be called in right order: the section is output
1N/A In the order these are presented.
1N/A*/
1N/Aint dwarf_def_macro(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Unsigned /*line*/,
1N/A char * /*macname, with (arglist), no space before (*/,
1N/A char * /*macvalue*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_undef_macro(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Unsigned /*line*/,
1N/A char * /*macname, no arglist, of course*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_start_macro_file(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Unsigned /*fileindex*/,
1N/A Dwarf_Unsigned /*linenumber*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_end_macro_file(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/Aint dwarf_vendor_ext(Dwarf_P_Debug /*dbg*/,
1N/A Dwarf_Unsigned /*constant*/,
1N/A char * /*string*/,
1N/A Dwarf_Error* /*error*/);
1N/A
1N/A/* end macinfo producer functions */
1N/A
1N/A
1N/Avoid dwarf_p_dealloc(void* /*space*/, Dwarf_Unsigned /*type*/);
1N/A
1N/Aint dwarf_attr_offset(Dwarf_Die /*die*/,
1N/A Dwarf_Attribute /*attr of above die*/,
1N/A Dwarf_Off * /*returns offset thru this ptr */,
1N/A Dwarf_Error * /*error*/);
1N/A
1N/A
1N/A#ifdef __cplusplus
1N/A}
1N/A#endif
1N/A#endif /* _LIBDWARF_H */
1N/A