PageRenderTime 5ms CodeModel.GetById 3ms app.highlight 68ms RepoModel.GetById 1ms app.codeStats 1ms

/osprey/libdwarf/libdwarf/libdwarf.h

https://bitbucket.org/osunix/open64
C++ Header | 1627 lines | 1146 code | 242 blank | 239 comment | 1 complexity | fe3a07252f785dff5b8fb4e2a1ae651a MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1/*
   2 * Copyright 2005, 2006 PathScale, Inc.  All Rights Reserved.
   3 */
   4
   5/*
   6
   7  Copyright (C) 2000, 2001, 2002 Silicon Graphics, Inc.  All Rights Reserved.
   8
   9  This program is free software; you can redistribute it and/or modify it
  10  under the terms of version 2.1 of the GNU Lesser General Public License
  11  as published by the Free Software Foundation.
  12
  13  This program is distributed in the hope that it would be useful, but
  14  WITHOUT ANY WARRANTY; without even the implied warranty of
  15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  16
  17  Further, this software is distributed without any warranty that it is
  18  free of the rightful claim of any third person regarding infringement
  19  or the like.  Any license provided herein, whether implied or
  20  otherwise, applies only to this software file.  Patent licenses, if
  21  any, provided herein do not apply to combinations of this program with
  22  other software, or any other product whatsoever.
  23
  24  You should have received a copy of the GNU Lesser General Public
  25  License along with this program; if not, write the Free Software
  26  Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
  27  USA.
  28
  29  Contact information:  Silicon Graphics, Inc., 1500 Crittenden Lane,
  30  Mountain View, CA 94043, or:
  31
  32  http://www.sgi.com
  33
  34  For further information regarding this notice, see:
  35
  36  http://oss.sgi.com/projects/GenInfo/NoticeExplan
  37
  38*/
  39
  40
  41#ifndef _LIBDWARF_H
  42#define _LIBDWARF_H
  43#ifdef __cplusplus
  44extern "C" {
  45#endif
  46/*
  47	libdwarf.h  
  48	$Revision: 1.9 $ $Date: 05/12/05 09:00:44-08:00 $
  49
  50	For libdwarf producers and consumers
  51
  52	The interface is defined as having 8-byte signed and unsigned
  53	values so it can handle 64-or-32bit target on 64-or-32bit host.
  54	Addr is the native size: it represents pointers on
  55	the host machine (not the target!).
  56
  57	This contains declarations for types and all producer
  58	and consumer functions.
  59
  60	Function declarations are written on a single line each here
  61	so one can use grep  to each declaration in its entirety.
  62	The declarations are a little harder to read this way, but...
  63
  64*/
  65
  66#ifdef __SGI_FAST_LIBELF
  67struct elf_sgi;
  68typedef struct elf_sgi* dwarf_elf_handle;
  69#else
  70struct Elf;
  71typedef struct Elf* dwarf_elf_handle;
  72#endif
  73
  74/* Defining different types for 32 vs 64bit builds means that
  75 * we cannot use same formatting or casts across builds.
  76 * Long long is just as efficient as long on 64bit machine,
  77 * so just use long long everywhere.
  78 */
  79#if (_MIPS_SZLONG == 64)
  80/* Special case for MIPS, so -64 (LP64) build gets simple -long-.
  81   Non-MIPS LP64 or ILP64 environments should probably ensure
  82   _MIPS_SZLONG set to 64 everywhere this header is #included.
  83*/
  84typedef int             Dwarf_Bool;         /* boolean type */
  85typedef unsigned long   Dwarf_Off;          /* 4 or 8 byte file offset */
  86typedef unsigned long   Dwarf_Unsigned;     /* 4 or 8 byte unsigned value */
  87typedef unsigned short  Dwarf_Half;         /* 2 byte unsigned value */
  88typedef unsigned char   Dwarf_Small;        /* 1 byte unsigned value */
  89typedef signed   long   Dwarf_Signed;       /* 4 or 8 byte signed value */
  90typedef unsigned long   Dwarf_Addr;         /* target memory address */
  91#else /* 32-bit */
  92/* This is for ILP32, allowing i/o of 64bit dwarf info.
  93   Also should be fine for LP64 and ILP64 cases.
  94*/
  95typedef int                 Dwarf_Bool;     /* boolean type */
  96typedef unsigned long long  Dwarf_Off;      /* 8 byte file offset */
  97typedef unsigned long long  Dwarf_Unsigned; /* 8 byte unsigned value*/
  98typedef unsigned short      Dwarf_Half;     /* 2 byte unsigned value */
  99typedef unsigned char       Dwarf_Small;    /* 1 byte unsigned value */
 100typedef signed   long long  Dwarf_Signed;   /* 8 byte signed value */
 101typedef unsigned long long  Dwarf_Addr;     /* target memory address */
 102#endif
 103typedef void*		Dwarf_Ptr;          /* host machine pointer */
 104
 105/* Contains info on an uninterpreted block of data
 106*/
 107typedef struct {
 108        Dwarf_Unsigned  bl_len;         /* length of block */
 109        Dwarf_Ptr       bl_data;        /* uninterpreted data */
 110	Dwarf_Small     bl_from_loclist; /*non-0 if loclist, else debug_info*/
 111	Dwarf_Unsigned  bl_section_offset; /* Section (not CU) offset
 112                                        which 'data' comes from. */
 113} Dwarf_Block;
 114
 115
 116/* location record
 117*/
 118typedef struct {
 119        Dwarf_Small     lr_atom;        /* location operation */
 120        Dwarf_Unsigned  lr_number;      /* operand */
 121	Dwarf_Unsigned  lr_number2;     /* for OP_BREGx */
 122	Dwarf_Unsigned  lr_offset;      /* offset in locexpr for OP_BRA etc */
 123} Dwarf_Loc;
 124
 125
 126/* location description
 127*/
 128typedef struct {
 129        Dwarf_Addr      ld_lopc;        /* beginning of active range */ 
 130        Dwarf_Addr      ld_hipc;        /* end of active range */
 131        Dwarf_Half      ld_cents;       /* count of location records */
 132        Dwarf_Loc*      ld_s;           /* pointer to list of same */
 133	Dwarf_Small     ld_from_loclist; 
 134				      /* non-0 if loclist, else debug_info*/
 135
 136	Dwarf_Unsigned  ld_section_offset; /* Section (not CU) offset
 137					where loc-expr begins*/
 138} Dwarf_Locdesc;
 139
 140/* Frame description instructions expanded.
 141*/
 142typedef struct {
 143        Dwarf_Small     fp_base_op;
 144        Dwarf_Small     fp_extended_op;
 145        Dwarf_Half      fp_register;
 146        Dwarf_Unsigned  fp_offset;
 147        Dwarf_Off       fp_instr_offset;
 148} Dwarf_Frame_Op;
 149
 150/* DW_REG_TABLE_SIZE must reflect the number of registers 
 151 *(DW_FRAME_LAST_REG_NUM) as defined in dwarf.h
 152 */
 153#define DW_REG_TABLE_SIZE  66
 154typedef struct {
 155    struct {
 156	Dwarf_Small         dw_offset_relevant;
 157	Dwarf_Half          dw_regnum;
 158	Dwarf_Addr          dw_offset;
 159    }			    rules[DW_REG_TABLE_SIZE];
 160} Dwarf_Regtable;
 161
 162/* for DW_DLC_SYMBOLIC_RELOCATIONS output to caller 
 163   v2, adding drd_length: some relocations are 4 and
 164   some 8 bytes (pointers are 8, section offsets 4) in
 165   some dwarf environments. (MIPS relocations are all one
 166   size in any given ABI.) Changing drd_type to an unsigned char
 167   to keep struct size down.
 168*/
 169enum Dwarf_Rel_Type {
 170		dwarf_drt_none, /* should not get to caller */
 171                dwarf_drt_data_reloc, /* simple normal relocation */
 172                dwarf_drt_segment_rel, /* special reloc, exceptions*/
 173#ifdef KEY /* Bug 3507 */
 174		dwarf_drt_module,               /* module name */
 175		dwarf_drt_imported_declaration, /* imported declaration */
 176	   /* Bug 9534 */
 177		dwarf_drt_cie_begin, /* simple string */
 178		dwarf_drt_fde_begin,            /* EH fde begin marker */
 179#endif
 180		dwarf_drt_cie_label, /* simple string */
 181		dwarf_drt_data_reloc_by_str_id, /* drd_symbol_index==str_idx */
 182		dwarf_drt_first_of_length_pair_create_second,
 183		/* similar to the next, but first create/put the 2nd
 184		   symbol here */
 185                dwarf_drt_first_of_length_pair,/* this and drt_second 
 186				for .word end - begin
 187			 	case */
 188                dwarf_drt_second_of_length_pair
 189};
 190typedef struct Dwarf_Relocation_Data_s  * Dwarf_Relocation_Data;
 191struct Dwarf_Relocation_Data_s {
 192        unsigned char drd_type; /* cast to/from Dwarf_Rel_Type
 193					  to keep size small in struct */
 194	unsigned char drd_length; /* length in bytes
 195			         of data being relocated. 4 for 32bit.
 196				 8 for 64bit data */
 197        Dwarf_Unsigned       drd_offset; /* where the data to reloc is */
 198        Dwarf_Unsigned       drd_symbol_index;
 199};
 200
 201/* Opaque types for Consumer Library. */
 202typedef struct Dwarf_Debug_s*      Dwarf_Debug;
 203typedef struct Dwarf_Die_s*        Dwarf_Die;
 204typedef struct Dwarf_Line_s*       Dwarf_Line;
 205typedef struct Dwarf_Global_s*     Dwarf_Global;
 206typedef struct Dwarf_Func_s*       Dwarf_Func;
 207typedef struct Dwarf_Type_s*       Dwarf_Type;
 208typedef struct Dwarf_Var_s*        Dwarf_Var;
 209typedef struct Dwarf_Weak_s*       Dwarf_Weak;
 210typedef struct Dwarf_Error_s*      Dwarf_Error;
 211typedef struct Dwarf_Attribute_s*  Dwarf_Attribute;
 212typedef struct Dwarf_Abbrev_s*	   Dwarf_Abbrev;
 213typedef struct Dwarf_Fde_s*  	   Dwarf_Fde;
 214typedef struct Dwarf_Cie_s*  	   Dwarf_Cie;
 215typedef struct Dwarf_Arange_s*	   Dwarf_Arange;
 216
 217/* Opaque types for Producer Library. */
 218typedef struct Dwarf_P_Debug_s*	   	Dwarf_P_Debug;
 219typedef struct Dwarf_P_Die_s*	   	Dwarf_P_Die;
 220typedef struct Dwarf_P_Attribute_s*	Dwarf_P_Attribute;
 221typedef struct Dwarf_P_Fde_s*		Dwarf_P_Fde;
 222typedef struct Dwarf_P_Expr_s*		Dwarf_P_Expr;
 223typedef Dwarf_Unsigned 		   	Dwarf_Tag;
 224
 225
 226/* error handler function
 227*/
 228typedef void  (*Dwarf_Handler)(Dwarf_Error /*error*/, Dwarf_Ptr /*errarg*/); 
 229
 230
 231/* 
 232    Dwarf_dealloc() alloc_type arguments.
 233    Argument points to:
 234*/
 235#define DW_DLA_STRING      	0x01     /* char* */
 236#define DW_DLA_LOC         	0x02     /* Dwarf_Loc */
 237#define DW_DLA_LOCDESC     	0x03     /* Dwarf_Locdesc */
 238#define DW_DLA_ELLIST      	0x04     /* Dwarf_Ellist (not used)*/
 239#define DW_DLA_BOUNDS      	0x05     /* Dwarf_Bounds (not used) */
 240#define DW_DLA_BLOCK       	0x06     /* Dwarf_Block */
 241#define DW_DLA_DEBUG       	0x07     /* Dwarf_Debug */
 242#define DW_DLA_DIE         	0x08     /* Dwarf_Die */
 243#define DW_DLA_LINE        	0x09     /* Dwarf_Line */
 244#define DW_DLA_ATTR        	0x0a     /* Dwarf_Attribute */
 245#define DW_DLA_TYPE        	0x0b     /* Dwarf_Type  (not used) */
 246#define DW_DLA_SUBSCR      	0x0c     /* Dwarf_Subscr (not used) */
 247#define DW_DLA_GLOBAL      	0x0d     /* Dwarf_Global */
 248#define DW_DLA_ERROR       	0x0e     /* Dwarf_Error */
 249#define DW_DLA_LIST        	0x0f     /* a list */
 250#define DW_DLA_LINEBUF     	0x10     /* Dwarf_Line* (not used) */
 251#define DW_DLA_ARANGE      	0x11     /* Dwarf_Arange */
 252#define DW_DLA_ABBREV		0x12 	 /* Dwarf_Abbrev */
 253#define DW_DLA_FRAME_OP		0x13 	 /* Dwarf_Frame_Op */
 254#define DW_DLA_CIE		0x14	 /* Dwarf_Cie */
 255#define DW_DLA_FDE		0x15	 /* Dwarf_Fde */
 256#define DW_DLA_LOC_BLOCK	0x16	 /* Dwarf_Loc Block (not used) */
 257#define DW_DLA_FRAME_BLOCK	0x17	 /* Dwarf_Frame Block (not used) */
 258#define DW_DLA_FUNC		0x18	 /* Dwarf_Func */
 259#define DW_DLA_TYPENAME		0x19	 /* Dwarf_Type */
 260#define DW_DLA_VAR		0x1a	 /* Dwarf_Var */
 261#define DW_DLA_WEAK		0x1b	 /* Dwarf_Weak */
 262#define DW_DLA_ADDR		0x1c	 /* Dwarf_Addr sized entries */
 263
 264/* The augmenter string for CIE */
 265#define DW_CIE_AUGMENTER_STRING_V0              "z"
 266
 267/* dwarf_init() access arguments
 268*/
 269#define DW_DLC_READ        0        /* read only access */
 270#define DW_DLC_WRITE       1        /* write only access */
 271#define DW_DLC_RDWR        2        /* read/write access NOT SUPPORTED*/
 272
 273/* dwarf_init() access flag modifiers
 274*/
 275#define DW_DLC_SIZE_64     0x40000000 /* 32-bit target */
 276#define DW_DLC_SIZE_32     0x20000000 /* 64-bit target */
 277
 278/* dwarf_init() access flag modifiers
 279*/
 280#define DW_DLC_ISA_MIPS             0x00000000 /* MIPS target */
 281#define DW_DLC_ISA_IA64             0x01000000 /* IA64 target */
 282#define DW_DLC_STREAM_RELOCATIONS   0x02000000 /* old style binary relocs */
 283#define DW_DLC_SYMBOLIC_RELOCATIONS 0x04000000 /* usable with assem output */
 284#define DW_DLC_TARGET_BIGENDIAN     0x08000000 /* big    endian target */
 285#define DW_DLC_TARGET_LITTLEENDIAN  0x00100000 /* little endian target */
 286
 287/* dwarf_pcline() slide arguments
 288*/
 289#define DW_DLS_BACKWARD   -1       /* slide backward to find line */
 290#define DW_DLS_NOSLIDE     0       /* match exactly without sliding */ 
 291#define DW_DLS_FORWARD     1       /* slide forward to find line */
 292
 293/* libdwarf error numbers
 294*/
 295#define DW_DLE_NE          0     /* no error */ 
 296#define DW_DLE_VMM         1     /* dwarf format/library version mismatch */
 297#define DW_DLE_MAP         2     /* memory map failure */
 298#define DW_DLE_LEE         3     /* libelf error */
 299#define DW_DLE_NDS         4     /* no debug section */
 300#define DW_DLE_NLS         5     /* no line section */
 301#define DW_DLE_ID          6     /* invalid descriptor for query */
 302#define DW_DLE_IOF         7     /* I/O failure */
 303#define DW_DLE_MAF         8     /* memory allocation failure */
 304#define DW_DLE_IA          9     /* invalid argument */ 
 305#define DW_DLE_MDE         10     /* mangled debugging entry */
 306#define DW_DLE_MLE         11     /* mangled line number entry */
 307#define DW_DLE_FNO         12     /* file not open */
 308#define DW_DLE_FNR         13     /* file not a regular file */
 309#define DW_DLE_FWA         14     /* file open with wrong access */
 310#define DW_DLE_NOB         15     /* not an object file */
 311#define DW_DLE_MOF         16     /* mangled object file header */
 312#define DW_DLE_EOLL        17     /* end of location list entries */
 313#define DW_DLE_NOLL        18     /* no location list section */
 314#define DW_DLE_BADOFF      19     /* Invalid offset */
 315#define DW_DLE_EOS         20     /* end of section  */
 316#define DW_DLE_ATRUNC      21     /* abbreviations section appears truncated*/
 317#define DW_DLE_BADBITC     22     /* Address size passed to dwarf bad*/
 318				    /* It is not an allowed size (64 or 32) */
 319    /* Error codes defined by the current Libdwarf Implementation. */
 320#define DW_DLE_DBG_ALLOC                        23
 321#define DW_DLE_FSTAT_ERROR                      24
 322#define DW_DLE_FSTAT_MODE_ERROR                 25
 323#define DW_DLE_INIT_ACCESS_WRONG                26
 324#define DW_DLE_ELF_BEGIN_ERROR                  27
 325#define DW_DLE_ELF_GETEHDR_ERROR                28
 326#define DW_DLE_ELF_GETSHDR_ERROR                29
 327#define DW_DLE_ELF_STRPTR_ERROR                 30
 328#define DW_DLE_DEBUG_INFO_DUPLICATE             31
 329#define DW_DLE_DEBUG_INFO_NULL                  32
 330#define DW_DLE_DEBUG_ABBREV_DUPLICATE           33
 331#define DW_DLE_DEBUG_ABBREV_NULL                34
 332#define DW_DLE_DEBUG_ARANGES_DUPLICATE          35
 333#define DW_DLE_DEBUG_ARANGES_NULL               36
 334#define DW_DLE_DEBUG_LINE_DUPLICATE             37
 335#define DW_DLE_DEBUG_LINE_NULL                  38
 336#define DW_DLE_DEBUG_LOC_DUPLICATE              39
 337#define DW_DLE_DEBUG_LOC_NULL                   40
 338#define DW_DLE_DEBUG_MACINFO_DUPLICATE          41
 339#define DW_DLE_DEBUG_MACINFO_NULL               42
 340#define DW_DLE_DEBUG_PUBNAMES_DUPLICATE         43
 341#define DW_DLE_DEBUG_PUBNAMES_NULL              44
 342#define DW_DLE_DEBUG_STR_DUPLICATE              45
 343#define DW_DLE_DEBUG_STR_NULL                   46
 344#define DW_DLE_CU_LENGTH_ERROR                  47
 345#define DW_DLE_VERSION_STAMP_ERROR              48
 346#define DW_DLE_ABBREV_OFFSET_ERROR              49
 347#define DW_DLE_ADDRESS_SIZE_ERROR               50
 348#define DW_DLE_DEBUG_INFO_PTR_NULL              51
 349#define DW_DLE_DIE_NULL                         52
 350#define DW_DLE_STRING_OFFSET_BAD                53
 351#define DW_DLE_DEBUG_LINE_LENGTH_BAD            54
 352#define DW_DLE_LINE_PROLOG_LENGTH_BAD           55
 353#define DW_DLE_LINE_NUM_OPERANDS_BAD            56
 354#define DW_DLE_LINE_SET_ADDR_ERROR              57
 355#define DW_DLE_LINE_EXT_OPCODE_BAD              58
 356#define DW_DLE_DWARF_LINE_NULL                  59
 357#define DW_DLE_INCL_DIR_NUM_BAD                 60
 358#define DW_DLE_LINE_FILE_NUM_BAD                61
 359#define DW_DLE_ALLOC_FAIL                       62
 360#define DW_DLE_NO_CALLBACK_FUNC		    	63
 361#define DW_DLE_SECT_ALLOC		    	64
 362#define DW_DLE_FILE_ENTRY_ALLOC		    	65
 363#define DW_DLE_LINE_ALLOC		    	66
 364#define DW_DLE_FPGM_ALLOC		    	67
 365#define DW_DLE_INCDIR_ALLOC		    	68
 366#define DW_DLE_STRING_ALLOC		    	69
 367#define DW_DLE_CHUNK_ALLOC		    	70
 368#define DW_DLE_BYTEOFF_ERR		    	71
 369#define	DW_DLE_CIE_ALLOC		    	72
 370#define DW_DLE_FDE_ALLOC		    	73
 371#define DW_DLE_REGNO_OVFL		    	74
 372#define DW_DLE_CIE_OFFS_ALLOC		    	75
 373#define DW_DLE_WRONG_ADDRESS		    	76
 374#define DW_DLE_EXTRA_NEIGHBORS		    	77
 375#define	DW_DLE_WRONG_TAG		    	78
 376#define DW_DLE_DIE_ALLOC		    	79
 377#define DW_DLE_PARENT_EXISTS		    	80
 378#define DW_DLE_DBG_NULL                         81
 379#define DW_DLE_DEBUGLINE_ERROR		    	82
 380#define DW_DLE_DEBUGFRAME_ERROR		    	83
 381#define DW_DLE_DEBUGINFO_ERROR		    	84
 382#define DW_DLE_ATTR_ALLOC		    	85
 383#define DW_DLE_ABBREV_ALLOC		    	86
 384#define DW_DLE_OFFSET_UFLW		    	87
 385#define DW_DLE_ELF_SECT_ERR		    	88
 386#define DW_DLE_DEBUG_FRAME_LENGTH_BAD	    	89
 387#define DW_DLE_FRAME_VERSION_BAD	    	90
 388#define DW_DLE_CIE_RET_ADDR_REG_ERROR	    	91
 389#define DW_DLE_FDE_NULL			    	92
 390#define DW_DLE_FDE_DBG_NULL		    	93
 391#define DW_DLE_CIE_NULL			    	94
 392#define DW_DLE_CIE_DBG_NULL		    	95
 393#define DW_DLE_FRAME_TABLE_COL_BAD	    	96
 394#define DW_DLE_PC_NOT_IN_FDE_RANGE	    	97
 395#define DW_DLE_CIE_INSTR_EXEC_ERROR	    	98
 396#define DW_DLE_FRAME_INSTR_EXEC_ERROR	    	99
 397#define DW_DLE_FDE_PTR_NULL		    	100
 398#define DW_DLE_RET_OP_LIST_NULL		    	101
 399#define DW_DLE_LINE_CONTEXT_NULL	    	102
 400#define DW_DLE_DBG_NO_CU_CONTEXT	    	103
 401#define DW_DLE_DIE_NO_CU_CONTEXT	    	104
 402#define DW_DLE_FIRST_DIE_NOT_CU		    	105
 403#define DW_DLE_NEXT_DIE_PTR_NULL	    	106
 404#define DW_DLE_DEBUG_FRAME_DUPLICATE	    	107
 405#define DW_DLE_DEBUG_FRAME_NULL		    	108
 406#define DW_DLE_ABBREV_DECODE_ERROR	    	109
 407#define DW_DLE_DWARF_ABBREV_NULL		110
 408#define DW_DLE_ATTR_NULL		    	111
 409#define DW_DLE_DIE_BAD			    	112
 410#define DW_DLE_DIE_ABBREV_BAD		    	113
 411#define DW_DLE_ATTR_FORM_BAD		    	114
 412#define DW_DLE_ATTR_NO_CU_CONTEXT	    	115
 413#define DW_DLE_ATTR_FORM_SIZE_BAD	    	116
 414#define DW_DLE_ATTR_DBG_NULL		    	117
 415#define DW_DLE_BAD_REF_FORM		    	118
 416#define DW_DLE_ATTR_FORM_OFFSET_BAD	    	119
 417#define DW_DLE_LINE_OFFSET_BAD		    	120
 418#define DW_DLE_DEBUG_STR_OFFSET_BAD	    	121
 419#define DW_DLE_STRING_PTR_NULL		    	122
 420#define DW_DLE_PUBNAMES_VERSION_ERROR	    	123
 421#define DW_DLE_PUBNAMES_LENGTH_BAD	    	124
 422#define DW_DLE_GLOBAL_NULL		    	125
 423#define DW_DLE_GLOBAL_CONTEXT_NULL	    	126
 424#define DW_DLE_DIR_INDEX_BAD		    	127
 425#define DW_DLE_LOC_EXPR_BAD		    	128
 426#define DW_DLE_DIE_LOC_EXPR_BAD		    	129
 427#define DW_DLE_ADDR_ALLOC		    	130
 428#define DW_DLE_OFFSET_BAD		    	131
 429#define DW_DLE_MAKE_CU_CONTEXT_FAIL	    	132
 430#define DW_DLE_REL_ALLOC		    	133
 431#define DW_DLE_ARANGE_OFFSET_BAD	    	134
 432#define DW_DLE_SEGMENT_SIZE_BAD		    	135
 433#define DW_DLE_ARANGE_LENGTH_BAD	    	136
 434#define DW_DLE_ARANGE_DECODE_ERROR	    	137
 435#define DW_DLE_ARANGES_NULL		    	138
 436#define DW_DLE_ARANGE_NULL		    	139
 437#define DW_DLE_NO_FILE_NAME		    	140
 438#define DW_DLE_NO_COMP_DIR		    	141
 439#define DW_DLE_CU_ADDRESS_SIZE_BAD	    	142
 440#define DW_DLE_INPUT_ATTR_BAD		    	143
 441#define DW_DLE_EXPR_NULL		    	144
 442#define DW_DLE_BAD_EXPR_OPCODE		    	145
 443#define DW_DLE_EXPR_LENGTH_BAD		    	146
 444#define DW_DLE_MULTIPLE_RELOC_IN_EXPR	    	147
 445#define DW_DLE_ELF_GETIDENT_ERROR	    	148
 446#define DW_DLE_NO_AT_MIPS_FDE		    	149
 447#define DW_DLE_NO_CIE_FOR_FDE		    	150
 448#define DW_DLE_DIE_ABBREV_LIST_NULL	    	151
 449#define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE    	152
 450#define DW_DLE_DEBUG_FUNCNAMES_NULL	    	153
 451#define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR    154
 452#define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD       155
 453#define DW_DLE_FUNC_NULL		    	156
 454#define DW_DLE_FUNC_CONTEXT_NULL	    	157
 455#define DW_DLE_DEBUG_TYPENAMES_DUPLICATE    	158
 456#define DW_DLE_DEBUG_TYPENAMES_NULL	    	159
 457#define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR    160
 458#define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD       161
 459#define DW_DLE_TYPE_NULL		    	162
 460#define DW_DLE_TYPE_CONTEXT_NULL	    	163
 461#define DW_DLE_DEBUG_VARNAMES_DUPLICATE	    	164
 462#define DW_DLE_DEBUG_VARNAMES_NULL	    	165
 463#define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR     166
 464#define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD        167
 465#define DW_DLE_VAR_NULL			    	168
 466#define DW_DLE_VAR_CONTEXT_NULL		    	169
 467#define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE    	170
 468#define DW_DLE_DEBUG_WEAKNAMES_NULL	    	171
 469#define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR    172
 470#define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD       173
 471#define DW_DLE_WEAK_NULL		    	174
 472#define DW_DLE_WEAK_CONTEXT_NULL	    	175
 473#define DW_DLE_LOCDESC_COUNT_WRONG              176
 474#define DW_DLE_MACINFO_STRING_NULL              177
 475#define DW_DLE_MACINFO_STRING_EMPTY             178
 476#define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE     179
 477#define DW_DLE_MACINFO_MALLOC_FAIL              180
 478#define DW_DLE_DEBUGMACINFO_ERROR		181
 479#define DW_DLE_DEBUG_MACRO_LENGTH_BAD		182
 480#define DW_DLE_DEBUG_MACRO_MAX_BAD		183
 481#define DW_DLE_DEBUG_MACRO_INTERNAL_ERR		184
 482#define DW_DLE_DEBUG_MACRO_MALLOC_SPACE	        185
 483#define DW_DLE_DEBUG_MACRO_INCONSISTENT	        186
 484#define DW_DLE_DF_NO_CIE_AUGMENTATION          	187
 485#define DW_DLE_DF_REG_NUM_TOO_HIGH  		188 
 486#define DW_DLE_DF_MAKE_INSTR_NO_INIT          	189 
 487#define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC         	190
 488#define DW_DLE_DF_POP_EMPTY_STACK              	191
 489#define DW_DLE_DF_ALLOC_FAIL                   	192
 490#define DW_DLE_DF_FRAME_DECODING_ERROR         	193
 491#define DW_DLE_DEBUG_LOC_SECTION_SHORT         	194
 492#define DW_DLE_LAST_CHILD_ISNT                  195
 493
 494    /* DW_DLE_LAST MUST EQUAL LAST ERROR NUMBER */
 495#define DW_DLE_LAST        			195
 496#define DW_DLE_LO_USER     0x10000
 497
 498        /* taken as meaning 'undefined value', this is not
 499           a column or register number.
 500           Only present at libdwarf runtime. Never on disk.
 501	   DW_FRAME_* Values present on disk are in dwarf.h
 502        */
 503#define DW_FRAME_UNDEFINED_VAL          1034
 504
 505        /* taken as meaning 'same value' as caller had, not a column
 506           or register number
 507           Only present at libdwarf runtime. Never on disk.
 508	   DW_FRAME_* Values present on disk are in dwarf.h
 509        */
 510#define DW_FRAME_SAME_VAL               1035
 511
 512
 513
 514/* error return values  
 515*/
 516#define DW_DLV_BADADDR     (~(Dwarf_Addr)0)   
 517	/* for functions returning target address */
 518
 519#define DW_DLV_NOCOUNT     ((Dwarf_Signed)-1) 
 520	/* for functions returning count */
 521
 522#define DW_DLV_BADOFFSET   (~(Dwarf_Off)0)    
 523	/* for functions returning offset */
 524
 525/* standard return values for functions */
 526#define DW_DLV_NO_ENTRY -1
 527#define DW_DLV_OK        0
 528#define DW_DLV_ERROR     1
 529
 530/* Special values for offset_into_exception_table field of dwarf fde's. */
 531/* The following value indicates that there is no Exception table offset
 532   associated with a dwarf frame. */
 533#define DW_DLX_NO_EH_OFFSET  	   (-1LL)
 534/* The following value indicates that the producer was unable to analyse the
 535   source file to generate Exception tables for this function. */
 536#define DW_DLX_EH_OFFSET_UNAVAILABLE  (-2LL)
 537
 538
 539/*===========================================================================*/
 540/*  Dwarf consumer interface initialization and termination operations */
 541
 542/* non-elf initialization */
 543int dwarf_init(int 	/*fd*/, 
 544    Dwarf_Unsigned 	/*access*/, 
 545    Dwarf_Handler 	/*errhand*/, 
 546    Dwarf_Ptr 		/*errarg*/, 
 547    Dwarf_Debug      *  /*dbg*/,
 548    Dwarf_Error* 	/*error*/);
 549
 550/* elf intialization */
 551int dwarf_elf_init(dwarf_elf_handle /*elf*/,
 552    Dwarf_Unsigned 	/*access*/, 
 553    Dwarf_Handler 	/*errhand*/, 
 554    Dwarf_Ptr 		/*errarg*/, 
 555    Dwarf_Debug      *  /*dbg*/,
 556    Dwarf_Error* 	/*error*/);
 557
 558/* Undocumented function for memory allocator. */
 559void dwarf_print_memory_stats(Dwarf_Debug  /*dbg*/);
 560
 561
 562int dwarf_get_elf(Dwarf_Debug /*dbg*/,
 563    dwarf_elf_handle*   /*return_elfptr*/,
 564    Dwarf_Error*	/*error*/);
 565
 566int dwarf_finish(Dwarf_Debug /*dbg*/, Dwarf_Error* /*error*/);
 567
 568/* die traversal operations */
 569int dwarf_next_cu_header(Dwarf_Debug /*dbg*/, 
 570    Dwarf_Unsigned* 	/*cu_header_length*/, 
 571    Dwarf_Half*     	/*version_stamp*/, 
 572    Dwarf_Off*  	/*abbrev_offset*/, 
 573    Dwarf_Half* 	/*address_size*/, 
 574    Dwarf_Unsigned*     /*next_cu_header_offset*/,
 575    Dwarf_Error* 	/*error*/);
 576
 577int dwarf_siblingof(Dwarf_Debug /*dbg*/, 
 578    Dwarf_Die 		/*die*/, 
 579    Dwarf_Die*          /*return_siblingdie*/,
 580    Dwarf_Error* 	/*error*/);
 581
 582int dwarf_child(Dwarf_Die /*die*/, 
 583    Dwarf_Die*          /*return_childdie*/,
 584    Dwarf_Error* 	/*error*/);
 585
 586/* finding die given offset */
 587int dwarf_offdie(Dwarf_Debug /*dbg*/, 
 588    Dwarf_Off 		/*offset*/, 
 589    Dwarf_Die*          /*return_die*/,
 590    Dwarf_Error* 	/*error*/);
 591
 592/* higher level functions (Unimplemented) */
 593int dwarf_pcfile(Dwarf_Debug /*dbg*/, 
 594    Dwarf_Addr 		/*pc*/, 
 595    Dwarf_Die*          /*return_die*/,
 596    Dwarf_Error* 	/*error*/);
 597
 598/* Unimplemented */
 599int dwarf_pcsubr(Dwarf_Debug /*dbg*/, 
 600    Dwarf_Addr 		/*pc*/, 
 601    Dwarf_Die*          /*return_die*/,
 602    Dwarf_Error* 	/*error*/);
 603
 604/* Unimplemented */
 605int dwarf_pcscope(Dwarf_Debug /*dbg*/, 
 606    Dwarf_Addr 		/*pc*/, 
 607    Dwarf_Die*          /*return_die*/,
 608    Dwarf_Error* 	/*error*/);
 609
 610/* operations on DIEs */
 611int dwarf_tag(Dwarf_Die /*die*/, 
 612    Dwarf_Half*	        /*return_tag*/,
 613    Dwarf_Error* 	/*error*/);
 614
 615/* utility? */
 616int dwarf_dieoffset(Dwarf_Die /*die*/, 
 617    Dwarf_Off*          /*return_offset*/,
 618    Dwarf_Error* 	/*error*/);
 619
 620int dwarf_die_CU_offset(Dwarf_Die /*die*/,
 621    Dwarf_Off*          /*return_offset*/,
 622    Dwarf_Error*	/*error*/);
 623
 624int dwarf_attr (Dwarf_Die /*die*/, 
 625    Dwarf_Half 		/*attr*/, 
 626    Dwarf_Attribute *   /*returned_attr*/,
 627    Dwarf_Error* 	/*error*/);
 628
 629int dwarf_diename(Dwarf_Die /*die*/, 
 630    char   **           /*diename*/,
 631    Dwarf_Error* 	/*error*/);
 632
 633/* convenience functions, alternative to using dwarf_attrlist() */
 634int dwarf_hasattr(Dwarf_Die /*die*/, 
 635    Dwarf_Half 		/*attr*/, 
 636    Dwarf_Bool     *    /*returned_bool*/,
 637    Dwarf_Error* 	/*error*/);
 638
 639/* dwarf_loclist_n preferred over dwarf_loclist */
 640int dwarf_loclist_n(Dwarf_Attribute /*attr*/,  
 641    Dwarf_Locdesc***	/*llbuf*/, 
 642    Dwarf_Signed *      /*locCount*/,
 643    Dwarf_Error* 	/*error*/);
 644
 645int dwarf_loclist(Dwarf_Attribute /*attr*/,  /* inflexible! */
 646    Dwarf_Locdesc** 	/*llbuf*/, 
 647    Dwarf_Signed *      /*locCount*/,
 648    Dwarf_Error* 	/*error*/);
 649
 650/* Unimplemented */
 651int dwarf_stringlen(Dwarf_Die /*die*/, 
 652    Dwarf_Locdesc **    /*returned_locdesc*/,
 653    Dwarf_Error* 	/*error*/);
 654
 655/* Unimplemented */
 656int dwarf_subscrcnt(Dwarf_Die /*die*/, 
 657    Dwarf_Signed *      /*returned_count*/,
 658    Dwarf_Error* 	/*error*/);
 659
 660/* Unimplemented */
 661int dwarf_nthsubscr(Dwarf_Die /*die*/, 
 662    Dwarf_Unsigned 	/*ssndx*/, 
 663    Dwarf_Die *         /*returned_die*/,
 664    Dwarf_Error* 	/*error*/);
 665
 666int dwarf_lowpc(Dwarf_Die /*die*/, 
 667    Dwarf_Addr  *       /*returned_addr*/,
 668    Dwarf_Error* 	/*error*/);
 669
 670int dwarf_highpc(Dwarf_Die /*die*/, 
 671    Dwarf_Addr  *       /*returned_addr*/,
 672    Dwarf_Error* 	/*error*/);
 673
 674int dwarf_bytesize(Dwarf_Die /*die*/, 
 675    Dwarf_Unsigned *    /*returned_size*/,
 676    Dwarf_Error* 	/*error*/);
 677
 678/* Unimplemented */
 679int dwarf_isbitfield(Dwarf_Die /*die*/, 
 680    Dwarf_Bool  *       /*returned_bool*/,
 681    Dwarf_Error* 	/*error*/);
 682
 683int dwarf_bitsize(Dwarf_Die /*die*/, 
 684    Dwarf_Unsigned *    /*returned_size*/,
 685    Dwarf_Error* 	/*error*/);
 686
 687int dwarf_bitoffset(Dwarf_Die /*die*/, 
 688    Dwarf_Unsigned *    /*returned_offset*/,
 689    Dwarf_Error* 	/*error*/);
 690
 691int dwarf_srclang(Dwarf_Die /*die*/, 
 692    Dwarf_Unsigned *    /*returned_lang*/,
 693    Dwarf_Error* 	/*error*/);
 694
 695int dwarf_arrayorder(Dwarf_Die /*die*/, 
 696    Dwarf_Unsigned *    /*returned_order*/,
 697    Dwarf_Error* 	/*error*/);
 698
 699/* end of convenience function list */
 700
 701/* this is the main interface to attributes of a DIE */
 702int dwarf_attrlist(Dwarf_Die /*die*/, 
 703    Dwarf_Attribute** 	/*attrbuf*/, 
 704    Dwarf_Signed   *    /*attrcount*/,
 705    Dwarf_Error* 	/*error*/);
 706
 707/* query operations for attributes */
 708int dwarf_hasform(Dwarf_Attribute /*attr*/, 
 709    Dwarf_Half 		/*form*/, 
 710    Dwarf_Bool *        /*returned_bool*/,
 711    Dwarf_Error* 	/*error*/);
 712
 713int dwarf_whatform(Dwarf_Attribute /*attr*/, 
 714    Dwarf_Half *        /*returned_form*/,
 715    Dwarf_Error* 	/*error*/);
 716
 717int dwarf_whatform_direct(Dwarf_Attribute /*attr*/, 
 718    Dwarf_Half *        /*returned_form*/,
 719    Dwarf_Error* 	/*error*/);
 720
 721int dwarf_whatattr(Dwarf_Attribute /*attr*/, 
 722    Dwarf_Half *        /*returned_attr_num*/,
 723    Dwarf_Error* 	/*error*/);
 724
 725/* 
 726    The following are concerned with the Primary Interface: getting
 727    the actual data values. One function per 'kind' of FORM.
 728*/
 729	/*dwarf_formref returns, thru return_offset, a CU-relative offset
 730	** and does not allow DW_FORM_ref_addr*/
 731int dwarf_formref(Dwarf_Attribute /*attr*/, 
 732    Dwarf_Off*          /*return_offset*/,
 733    Dwarf_Error* 	/*error*/);
 734	/*dwarf_global_formref returns, thru return_offset, 
 735	 a debug_info-relative offset and does allow all reference forms*/
 736int dwarf_global_formref(Dwarf_Attribute /*attr*/, 
 737    Dwarf_Off*          /*return_offset*/,
 738    Dwarf_Error* 	/*error*/);
 739
 740int dwarf_formaddr(Dwarf_Attribute /*attr*/, 
 741    Dwarf_Addr   *      /*returned_addr*/,
 742    Dwarf_Error* 	/*error*/);
 743
 744int dwarf_formflag(Dwarf_Attribute /*attr*/,
 745    Dwarf_Bool *        /*returned_bool*/,
 746    Dwarf_Error*	/*error*/);
 747
 748int dwarf_formudata(Dwarf_Attribute /*attr*/, 
 749    Dwarf_Unsigned  *   /*returned_val*/,
 750    Dwarf_Error* 	/*error*/);
 751
 752int dwarf_formsdata(Dwarf_Attribute 	/*attr*/, 
 753    Dwarf_Signed  *     /*returned_val*/,
 754    Dwarf_Error* 	/*error*/);
 755
 756int dwarf_formblock(Dwarf_Attribute /*attr*/, 
 757    Dwarf_Block    **   /*returned_block*/,
 758    Dwarf_Error* 	/*error*/);
 759
 760int dwarf_formstring(Dwarf_Attribute /*attr*/, 
 761    char   **           /*returned_string*/,
 762    Dwarf_Error* 	/*error*/);
 763
 764/* end attribute query operations. */
 765
 766/* line number operations */
 767/* dwarf_srclines  is the normal interface */
 768int dwarf_srclines(Dwarf_Die /*die*/, 
 769    Dwarf_Line** 	/*linebuf*/, 
 770    Dwarf_Signed *      /*linecount*/,
 771    Dwarf_Error* 	/*error*/);
 772
 773int dwarf_srcfiles(Dwarf_Die /*die*/, 
 774    char*** 		/*srcfiles*/, 
 775    Dwarf_Signed *      /*filecount*/,
 776    Dwarf_Error* 	/*error*/);
 777
 778/* Unimplemented. */
 779int dwarf_dieline(Dwarf_Die /*die*/, 
 780    Dwarf_Line  *       /*returned_line*/,
 781    Dwarf_Error *       /*error*/);
 782
 783int dwarf_linebeginstatement(Dwarf_Line /*line*/, 
 784    Dwarf_Bool  *       /*returned_bool*/,
 785    Dwarf_Error* 	/*error*/);
 786
 787int dwarf_lineendsequence(Dwarf_Line /*line*/,
 788    Dwarf_Bool  *       /*returned_bool*/,
 789    Dwarf_Error*        /*error*/);
 790
 791int dwarf_lineno(Dwarf_Line /*line*/, 
 792    Dwarf_Unsigned *    /*returned_lineno*/,
 793    Dwarf_Error* 	/*error*/);
 794
 795int dwarf_lineaddr(Dwarf_Line /*line*/, 
 796    Dwarf_Addr *        /*returned_addr*/,
 797    Dwarf_Error* 	/*error*/);
 798
 799int dwarf_lineoff(Dwarf_Line /*line*/, 
 800    Dwarf_Signed  *     /*returned_lineoffset*/,
 801    Dwarf_Error* 	/*error*/);
 802
 803int dwarf_linesrc(Dwarf_Line /*line*/, 
 804    char   **           /*returned_name*/,
 805    Dwarf_Error* 	/*error*/);
 806
 807int dwarf_lineblock(Dwarf_Line /*line*/, 
 808    Dwarf_Bool  *       /*returned_bool*/,
 809    Dwarf_Error* 	/*error*/);
 810
 811/* tertiary interface to line info */
 812/* Unimplemented */
 813int dwarf_pclines(Dwarf_Debug /*dbg*/, 
 814    Dwarf_Addr 		/*pc*/, 
 815    Dwarf_Line** 	/*linebuf*/, 
 816    Dwarf_Signed *      /*linecount*/,
 817    Dwarf_Signed 	/*slide*/, 
 818    Dwarf_Error* 	/*error*/);
 819/* end line number operations */
 820
 821/* global name space operations (.debug_pubnames access) */
 822int dwarf_get_globals(Dwarf_Debug /*dbg*/, 
 823    Dwarf_Global** 	/*globals*/, 
 824    Dwarf_Signed *      /*number_of_globals*/,
 825    Dwarf_Error* 	/*error*/);
 826
 827int dwarf_globname(Dwarf_Global /*glob*/, 
 828    char   **           /*returned_name*/,
 829    Dwarf_Error* 	/*error*/);
 830
 831int dwarf_global_die_offset(Dwarf_Global /*global*/, 
 832    Dwarf_Off*          /*return_offset*/,
 833    Dwarf_Error * 	/*error*/);
 834
 835int dwarf_get_cu_die_offset_given_cu_header_offset(
 836	Dwarf_Debug     /*dbg*/,
 837	Dwarf_Off       /*in_cu_header_offset*/,
 838        Dwarf_Off *     /*out_cu_die_offset*/, 
 839	Dwarf_Error *   /*err*/);
 840#ifdef __sgi /* pragma is sgi MIPS only */
 841#pragma optional dwarf_get_cu_die_offset_given_cu_header_offset
 842#endif
 843
 844int dwarf_global_cu_offset(Dwarf_Global /*global*/, 
 845    Dwarf_Off*          /*return_offset*/,
 846    Dwarf_Error* 	/*error*/);
 847
 848int dwarf_global_name_offsets(Dwarf_Global /*global*/, 
 849    char   **           /*returned_name*/,
 850    Dwarf_Off* 		/*die_offset*/, 
 851    Dwarf_Off* 		/*cu_offset*/, 
 852    Dwarf_Error* 	/*error*/);
 853
 854/* Static function name operations.  */
 855int dwarf_get_funcs(Dwarf_Debug	/*dbg*/,
 856    Dwarf_Func**	/*funcs*/,
 857    Dwarf_Signed *      /*number_of_funcs*/,
 858    Dwarf_Error*	/*error*/);
 859
 860int dwarf_funcname(Dwarf_Func /*func*/,
 861    char   **           /*returned_name*/,
 862    Dwarf_Error*	/*error*/);
 863
 864int dwarf_func_die_offset(Dwarf_Func /*func*/,
 865    Dwarf_Off*          /*return_offset*/,
 866    Dwarf_Error*	/*error*/);
 867
 868int dwarf_func_cu_offset(Dwarf_Func /*func*/,
 869    Dwarf_Off*          /*return_offset*/,
 870    Dwarf_Error*	/*error*/);
 871
 872int dwarf_func_name_offsets(Dwarf_Func /*func*/,
 873    char   **           /*returned_name*/,
 874    Dwarf_Off*		/*die_offset*/,
 875    Dwarf_Off*		/*cu_offset*/,
 876    Dwarf_Error*	/*error*/);
 877
 878/* User-defined type name operations.  */
 879int dwarf_get_types(Dwarf_Debug	/*dbg*/,
 880    Dwarf_Type**	/*types*/,
 881    Dwarf_Signed *      /*number_of_types*/,
 882    Dwarf_Error*	/*error*/);
 883
 884int dwarf_typename(Dwarf_Type /*type*/,
 885    char   **           /*returned_name*/,
 886    Dwarf_Error*	/*error*/);
 887
 888int dwarf_type_die_offset(Dwarf_Type /*type*/,
 889    Dwarf_Off*          /*return_offset*/,
 890    Dwarf_Error*	/*error*/);
 891
 892int dwarf_type_cu_offset(Dwarf_Type /*type*/,
 893    Dwarf_Off*          /*return_offset*/,
 894    Dwarf_Error*	/*error*/);
 895
 896int dwarf_type_name_offsets(Dwarf_Type	/*type*/,
 897    char   **           /*returned_name*/,
 898    Dwarf_Off*		/*die_offset*/,
 899    Dwarf_Off*		/*cu_offset*/,
 900    Dwarf_Error*	/*error*/);
 901
 902/* File-scope static variable name operations.  */
 903int dwarf_get_vars(Dwarf_Debug	/*dbg*/,
 904    Dwarf_Var**		/*vars*/,
 905    Dwarf_Signed *      /*number_of_vars*/,
 906    Dwarf_Error*	/*error*/);
 907
 908int dwarf_varname(Dwarf_Var /*var*/,
 909    char   **           /*returned_name*/,
 910    Dwarf_Error*	/*error*/);
 911
 912int dwarf_var_die_offset(Dwarf_Var /*var*/,
 913    Dwarf_Off*          /*return_offset*/,
 914    Dwarf_Error*	/*error*/);
 915
 916int dwarf_var_cu_offset(Dwarf_Var /*var*/,
 917    Dwarf_Off*          /*return_offset*/,
 918    Dwarf_Error*	/*error*/);
 919
 920int dwarf_var_name_offsets(Dwarf_Var /*var*/,
 921    char   **           /*returned_name*/,
 922    Dwarf_Off*		/*die_offset*/,
 923    Dwarf_Off*		/*cu_offset*/,
 924    Dwarf_Error*	/*error*/);
 925
 926/* weak name operations.  */
 927int dwarf_get_weaks(Dwarf_Debug	/*dbg*/,
 928    Dwarf_Weak**	/*weaks*/,
 929    Dwarf_Signed *      /*number_of_weaks*/,
 930    Dwarf_Error*	/*error*/);
 931
 932int dwarf_weakname(Dwarf_Weak /*weak*/,
 933    char   **           /*returned_name*/,
 934    Dwarf_Error*	/*error*/);
 935
 936int dwarf_weak_die_offset(Dwarf_Weak /*weak*/,
 937    Dwarf_Off*          /*return_offset*/,
 938    Dwarf_Error*	/*error*/);
 939
 940int dwarf_weak_cu_offset(Dwarf_Weak /*weak*/,
 941    Dwarf_Off*          /*return_offset*/,
 942    Dwarf_Error*	/*error*/);
 943
 944int dwarf_weak_name_offsets(Dwarf_Weak	/*weak*/,
 945    char   **           /*returned_name*/,
 946    Dwarf_Off*		/*die_offset*/,
 947    Dwarf_Off*		/*cu_offset*/,
 948    Dwarf_Error*	/*error*/);
 949
 950/* location list section operation.  (.debug_loc access) */
 951/* Unimplemented. */
 952int dwarf_get_loclist_entry(Dwarf_Debug /*dbg*/, 
 953    Dwarf_Unsigned 	/*offset*/, 
 954    Dwarf_Addr* 	/*hipc*/, 
 955    Dwarf_Addr* 	/*lopc*/, 
 956    Dwarf_Ptr* 		/*data*/, 
 957    Dwarf_Unsigned* 	/*entry_len*/, 
 958    Dwarf_Unsigned* 	/*next_entry*/, 
 959    Dwarf_Error* 	/*error*/);
 960
 961/* abbreviation section operations */
 962int dwarf_get_abbrev(Dwarf_Debug /*dbg*/, 
 963    Dwarf_Unsigned 	/*offset*/, 
 964    Dwarf_Abbrev  *     /*returned_abbrev*/,
 965    Dwarf_Unsigned* 	/*length*/, 
 966    Dwarf_Unsigned* 	/*attr_count*/, 
 967    Dwarf_Error* 	/*error*/);
 968
 969int dwarf_get_abbrev_tag(Dwarf_Abbrev /*abbrev*/, 
 970    Dwarf_Half*        /*return_tag_number*/,
 971    Dwarf_Error* 	/*error*/);
 972int dwarf_get_abbrev_code(Dwarf_Abbrev /*abbrev*/, 
 973    Dwarf_Unsigned*        /*return_code_number*/,
 974    Dwarf_Error* 	/*error*/);
 975
 976int dwarf_get_abbrev_children_flag(Dwarf_Abbrev /*abbrev*/, 
 977    Dwarf_Signed*        /*return_flag*/,
 978    Dwarf_Error* 	/*error*/);
 979
 980int dwarf_get_abbrev_entry(Dwarf_Abbrev /*abbrev*/, 
 981    Dwarf_Signed  	/*index*/, 
 982    Dwarf_Half  *       /*returned_attr_num*/,
 983    Dwarf_Signed* 	/*form*/, 
 984    Dwarf_Off*    	/*offset*/, 
 985    Dwarf_Error*  	/*error*/);
 986
 987/* consumer string section operation */
 988int dwarf_get_str(Dwarf_Debug /*dbg*/, 
 989    Dwarf_Off    	/*offset*/, 
 990    char** 		/*string*/, 
 991    Dwarf_Signed *      /*strlen_of_string*/,
 992    Dwarf_Error*  	/*error*/);
 993
 994/* Consumer op on  gnu .eh_frame info */
 995int dwarf_get_fde_list_eh(
 996    Dwarf_Debug        /*dbg*/,
 997    Dwarf_Cie       ** /*cie_data*/,
 998    Dwarf_Signed    *  /*cie_element_count*/,
 999    Dwarf_Fde       ** /*fde_data*/,
1000    Dwarf_Signed    *  /*fde_element_count*/,
1001    Dwarf_Error     *  /*error*/);
1002
1003
1004/* consumer operations on frame info: .debug_frame */
1005int dwarf_get_fde_list(Dwarf_Debug /*dbg*/, 
1006    Dwarf_Cie**   	/*cie_data*/, 
1007    Dwarf_Signed* 	/*cie_element_count*/, 
1008    Dwarf_Fde**   	/*fde_data*/, 
1009    Dwarf_Signed* 	/*fde_element_count*/, 
1010    Dwarf_Error* 	/*error*/);
1011
1012
1013int dwarf_get_fde_range(Dwarf_Fde /*fde*/, 
1014    Dwarf_Addr* 	/*low_pc*/, 
1015    Dwarf_Unsigned* 	/*func_length*/, 
1016    Dwarf_Ptr*    	/*fde_bytes*/, 
1017    Dwarf_Unsigned* 	/*fde_byte_length*/, 
1018    Dwarf_Off*    	/*cie_offset*/, 
1019    Dwarf_Signed*  	/*cie_index*/, 
1020    Dwarf_Off*   	/*fde_offset*/, 
1021    Dwarf_Error* 	/*error*/);
1022
1023int dwarf_get_fde_exception_info(Dwarf_Fde /*fde*/,
1024    Dwarf_Signed*	/* offset_into_exception_tables */,
1025    Dwarf_Error*        /*error*/);
1026
1027int dwarf_get_cie_of_fde(Dwarf_Fde /*fde*/,
1028    Dwarf_Cie *         /*cie_returned*/,
1029    Dwarf_Error*        /*error*/);
1030
1031int dwarf_get_cie_info(Dwarf_Cie /*cie*/, 
1032    Dwarf_Unsigned *    /*bytes_in_cie*/,
1033    Dwarf_Small*    	/*version*/, 
1034    char        **      /*augmenter*/,
1035    Dwarf_Unsigned* 	/*code_alignment_factor*/, 
1036    Dwarf_Signed* 	/*data_alignment_factor*/, 
1037    Dwarf_Half*     	/*return_address_register_rule*/, 
1038    Dwarf_Ptr*     	/*initial_instructions*/, 
1039    Dwarf_Unsigned*  	/*initial_instructions_length*/, 
1040    Dwarf_Error* 	/*error*/);
1041
1042int dwarf_get_fde_instr_bytes(Dwarf_Fde /*fde*/, 
1043    Dwarf_Ptr * /*outinstrs*/, Dwarf_Unsigned * /*outlen*/, 
1044    Dwarf_Error * /*error*/);
1045
1046int dwarf_get_fde_info_for_all_regs(Dwarf_Fde /*fde*/, 
1047    Dwarf_Addr          /*pc_requested*/,
1048    Dwarf_Regtable*     /*reg_table*/,
1049    Dwarf_Addr*         /*row_pc*/,
1050    Dwarf_Error*        /*error*/);
1051
1052int dwarf_get_fde_info_for_reg(Dwarf_Fde /*fde*/, 
1053    Dwarf_Half    	/*table_column*/, 
1054    Dwarf_Addr    	/*pc_requested*/, 
1055    Dwarf_Signed*       /*offset_relevant*/,
1056    Dwarf_Signed* 	/*register*/,  
1057    Dwarf_Signed* 	/*offset*/, 
1058    Dwarf_Addr* 	/*row_pc*/, 
1059    Dwarf_Error* 	/*error*/);
1060
1061int dwarf_get_fde_for_die(Dwarf_Debug /*dbg*/, 
1062    Dwarf_Die 		/*subr_die */, 
1063    Dwarf_Fde  *        /*returned_fde*/,
1064    Dwarf_Error*	/*error*/);
1065
1066int dwarf_get_fde_n(Dwarf_Fde* /*fde_data*/, 
1067    Dwarf_Unsigned 	/*fde_index*/, 
1068    Dwarf_Fde  *        /*returned_fde*/,
1069    Dwarf_Error*  	/*error*/);
1070
1071int dwarf_get_fde_at_pc(Dwarf_Fde* /*fde_data*/, 
1072    Dwarf_Addr 		/*pc_of_interest*/, 
1073    Dwarf_Fde  *        /*returned_fde*/,
1074    Dwarf_Addr* 	/*lopc*/, 
1075    Dwarf_Addr* 	/*hipc*/, 
1076    Dwarf_Error* 	/*error*/);
1077
1078int dwarf_expand_frame_instructions(Dwarf_Debug /*dbg*/, 
1079    Dwarf_Ptr 		/*instruction*/, 
1080    Dwarf_Unsigned  	/*i_length*/, 
1081    Dwarf_Frame_Op** 	/*returned_op_list*/, 
1082    Dwarf_Signed*       /*op_count*/,
1083    Dwarf_Error* 	/*error*/);
1084
1085/* Operations on .debug_aranges. */
1086int dwarf_get_aranges(Dwarf_Debug /*dbg*/, 
1087    Dwarf_Arange** 	/*aranges*/, 
1088    Dwarf_Signed *      /*arange_count*/,
1089    Dwarf_Error* 	/*error*/);
1090
1091
1092
1093int dwarf_get_arange(
1094    Dwarf_Arange* 	/*aranges*/, 
1095    Dwarf_Unsigned 	/*arange_count*/, 
1096    Dwarf_Addr 		/*address*/, 
1097    Dwarf_Arange *      /*returned_arange*/,
1098    Dwarf_Error* 	/*error*/);
1099
1100int dwarf_get_cu_die_offset(
1101    Dwarf_Arange 	/*arange*/, 
1102    Dwarf_Off*          /*return_offset*/,
1103    Dwarf_Error* 	/*error*/);
1104
1105int dwarf_get_arange_cu_header_offset(
1106    Dwarf_Arange 	/*arange*/, 
1107    Dwarf_Off*          /*return_cu_header_offset*/,
1108    Dwarf_Error* 	/*error*/);
1109#ifdef __sgi /* pragma is sgi MIPS only */
1110#pragma optional dwarf_get_arange_cu_header_offset
1111#endif
1112
1113int dwarf_get_arange_info(
1114    Dwarf_Arange 	/*arange*/, 
1115    Dwarf_Addr* 	/*start*/, 
1116    Dwarf_Unsigned* 	/*length*/, 
1117    Dwarf_Off* 		/*cu_die_offset*/, 
1118    Dwarf_Error* 	/*error*/);
1119
1120
1121/* consumer .debug_macinfo information interface.
1122*/
1123struct Dwarf_Macro_Details_s {
1124  Dwarf_Off    dmd_offset; /* offset, in the section,
1125                              of this macro info */
1126  Dwarf_Small  dmd_type;   /* the type, DW_MACINFO_define etc*/
1127  Dwarf_Signed dmd_lineno; /* the source line number where
1128                              applicable and vend_def # if
1129                              vendor_extension op
1130                           */
1131
1132  Dwarf_Signed dmd_fileindex;/* the source file index:
1133                              applies to define undef start_file
1134                             */
1135  char *       dmd_macro;  /* macro name (with value for defineop)
1136                              string from vendor ext
1137                           */
1138};
1139
1140/* _dwarf_print_lines is for use by dwarfdump: it prints
1141   line info to stdout.
1142*/
1143int _dwarf_print_lines(Dwarf_Die cu_die,Dwarf_Error * /*error*/);
1144
1145/* _dwarf_ld_sort_lines is for use solely by ld for
1146   rearranging lines in .debug_line in a .o created with a text
1147   section per function.  
1148		-OPT:procedure_reorder=ON
1149   where ld-cord (cord(1)ing by ld, 
1150   not by cord(1)) may have changed the function order.
1151*/
1152int _dwarf_ld_sort_lines(
1153        void * orig_buffer,
1154        unsigned long   buffer_len,
1155        int is_64_bit,
1156        int *any_change,
1157        int * err_code);
1158
1159/* Used by dwarfdump -v to print offsets, for debugging
1160   dwarf info
1161*/
1162int _dwarf_fde_section_offset(Dwarf_Debug dbg,Dwarf_Fde in_fde,
1163        Dwarf_Off *fde_off, Dwarf_Off *cie_off,
1164        Dwarf_Error *err);
1165
1166/* Used by dwarfdump -v to print offsets, for debugging
1167   dwarf info
1168*/
1169int _dwarf_cie_section_offset(Dwarf_Debug dbg,Dwarf_Cie in_cie,
1170        Dwarf_Off *cie_off,
1171        Dwarf_Error *err);
1172
1173
1174
1175
1176typedef struct Dwarf_Macro_Details_s Dwarf_Macro_Details;
1177
1178int dwarf_get_macro(Dwarf_Debug /*dbg*/,
1179    char *        /*requested_macro_name*/,
1180    Dwarf_Addr    /*pc_of_request*/,
1181    char **       /*returned_macro_value*/,
1182    Dwarf_Error * /*error*/);
1183
1184int dwarf_get_all_defined_macros(Dwarf_Debug /*dbg*/,
1185    Dwarf_Addr     /*pc_of_request*/,
1186    Dwarf_Signed * /*returned_count*/,
1187    char ***       /*returned_pointers_to_macros*/,
1188    Dwarf_Error *  /*error*/);
1189
1190char *dwarf_find_macro_value_start(char * /*macro_string*/);
1191
1192int dwarf_get_macro_details(Dwarf_Debug /*dbg*/,
1193    Dwarf_Off              /*macro_offset*/,
1194    Dwarf_Unsigned	   /*maximum_count*/,
1195    Dwarf_Signed         * /*entry_count*/,
1196    Dwarf_Macro_Details ** /*details*/,
1197    Dwarf_Error *          /*err*/);
1198
1199
1200int dwarf_get_address_size(Dwarf_Debug /*dbg*/,
1201        Dwarf_Half  * /*addr_size*/,
1202        Dwarf_Error * /*error*/);
1203
1204/* utility operations */
1205Dwarf_Unsigned dwarf_errno(Dwarf_Error 	/*error*/);
1206
1207char* dwarf_errmsg(Dwarf_Error	/*error*/);
1208
1209/* stringcheck zero is default and means do all
1210** string length validity checks.
1211** Call with parameter value 1 to turn off many such checks (and
1212** increase performance).
1213** Call with zero for safest running.
1214** Actual value saved and returned is only 8 bits! Upper bits
1215** ignored by libdwarf (and zero on return).
1216** Returns previous value.
1217*/
1218int dwarf_set_stringcheck(int /*stringcheck*/);
1219
1220/* Unimplemented */
1221Dwarf_Handler dwarf_seterrhand(Dwarf_Debug /*dbg*/, Dwarf_Handler /*errhand*/);
1222
1223/* Unimplemented */
1224Dwarf_Ptr dwarf_seterrarg(Dwarf_Debug /*dbg*/, Dwarf_Ptr /*errarg*/);
1225
1226void dwarf_dealloc(Dwarf_Debug /*dbg*/, void* /*space*/, 
1227    Dwarf_Unsigned /*type*/);
1228
1229/* DWARF Producer Interface */
1230
1231typedef int (*Dwarf_Callback_Func)(
1232    char* /*name*/, 
1233    int 		/*size*/, 
1234    Dwarf_Unsigned 	/*type*/,
1235    Dwarf_Unsigned 	/*flags*/, 
1236    Dwarf_Unsigned 	/*link*/, 
1237    Dwarf_Unsigned 	/*info*/, 
1238    int* 		/*sect name index*/, 
1239    int* 		/*error*/);
1240
1241Dwarf_P_Debug dwarf_producer_init(
1242    Dwarf_Unsigned      /*creation_flags*/, 
1243    Dwarf_Callback_Func	/*func*/,
1244    Dwarf_Handler 	/*errhand*/, 
1245    Dwarf_Ptr 		/*errarg*/, 
1246    Dwarf_Error* 	/*error*/);
1247
1248typedef int (*Dwarf_Callback_Func_b)(
1249    char* 		/*name*/,
1250    int                 /*size*/,
1251    Dwarf_Unsigned      /*type*/,
1252    Dwarf_Unsigned      /*flags*/,
1253    Dwarf_Unsigned      /*link*/,
1254    Dwarf_Unsigned      /*info*/,
1255    Dwarf_Unsigned*     /*sect_name_index*/,
1256    int*                /*error*/);
1257
1258
1259Dwarf_P_Debug dwarf_producer_init_b(
1260    Dwarf_Unsigned        /*flags*/,
1261    Dwarf_Callback_Func_b /*func*/,
1262    Dwarf_Handler         /*errhand*/,
1263    Dwarf_Ptr             /*errarg*/,
1264    Dwarf_Error *         /*error*/);
1265
1266
1267Dwarf_Signed dwarf_transform_to_disk_form(Dwarf_P_Debug /*dbg*/,
1268    Dwarf_Error* 	/*error*/);
1269
1270Dwarf_Ptr dwarf_get_section_bytes(Dwarf_P_Debug /*dbg*/, 
1271    Dwarf_Signed 	/*dwarf_section*/,
1272    Dwarf_Signed* 	/*elf_section_index*/, 
1273    Dwarf_Unsigned* 	/*length*/, 
1274    Dwarf_Error* 	/*error*/);
1275
1276int  dwarf_get_relocation_info_count(
1277        Dwarf_P_Debug    /*dbg*/,
1278        Dwarf_Unsigned * /*count_of_relocation_sections*/,
1279	int *            /*drd_buffer_version*/,
1280        Dwarf_Error*     /*error*/);
1281
1282int dwarf_get_relocation_info(
1283        Dwarf_P_Debug           /*dbg*/,
1284        Dwarf_Signed          * /*elf_section_index*/,
1285        Dwarf_Signed          * /*elf_section_index_link*/,
1286        Dwarf_Unsigned        * /*relocation_buffer_count*/,
1287        Dwarf_Relocation_Data * /*reldata_buffer*/,
1288        Dwarf_Error*            /*error*/);
1289
1290/* v1:  no drd_length field, enum explicit */
1291/* v2:  has the drd_length field, enum value in uchar member */
1292#define DWARF_DRD_BUFFER_VERSION 2
1293
1294void dwarf_reset_section_bytes(Dwarf_P_Debug /*dbg*/);
1295
1296Dwarf_Unsigned dwarf_producer_finish(Dwarf_P_Debug /*dbg*/, 
1297    Dwarf_Error* /*error*/);
1298
1299/* Producer attribute addition functions. */
1300Dwarf_P_Attribute dwarf_add_AT_targ_address(Dwarf_P_Debug /*dbg*/, 
1301    Dwarf_P_Die 	/*ownerdie*/, 
1302    Dwarf_Half 		/*attr*/, 
1303    Dwarf_Unsigned 	/*pc_value*/, 
1304    Dwarf_Signed 	/*sym_index*/, 
1305    Dwarf_Error* 	/*error*/);
1306
1307Dwarf_P_Attribute dwarf_add_AT_targ_address_b(Dwarf_P_Debug /*dbg*/, 
1308    Dwarf_P_Die 	/*ownerdie*/, 
1309    Dwarf_Half 		/*attr*/, 
1310    Dwarf_Unsigned 	/*pc_value*/, 
1311    Dwarf_Unsigned 	/*sym_index*/, 
1312    Dwarf_Error* 	/*error*/);
1313
1314Dwarf_P_Attribute dwarf_add_AT_unsigned_const(Dwarf_P_Debug /*dbg*/, 
1315    Dwarf_P_Die 	/*ownerdie*/, 
1316    Dwarf_Half 		/*attr*/, 
1317    Dwarf_Unsigned 	/*value*/, 
1318    Dwarf_Error* 	/*error*/);
1319
1320Dwarf_P_Attribute dwarf_add_AT_signed_const(Dwarf_P_Debug /*dbg*/, 
1321    Dwarf_P_Die 	/*ownerdie*/, 
1322    Dwarf_Half 		/*attr*/, 
1323    Dwarf_Signed 	/*value*/, 
1324    Dwarf_Error* 	/*error*/);
1325
1326Dwarf_P_Attribute dwarf_add_AT_reference(Dwarf_P_Debug /*dbg*/, 
1327    Dwarf_P_Die 	/*ownerdie*/, 
1328    Dwarf_Half 		/*attr*/, 
1329    Dwarf_P_Die 	/*otherdie*/, 
1330    Dwarf_Error* 	/*error*/);
1331
1332Dwarf_P_Attribute dwarf_add_AT_const_value_string(Dwarf_P_Die /*ownerdie*/, 
1333    char* 		/*string_value*/, 
1334    Dwarf_Error* 	/*error*/);
1335
1336Dwarf_P_Attribute dwarf_add_AT_location_expr(Dwarf_P_Debug /*dbg*/, 
1337    Dwarf_P_Die 	/*ownerdie*/, 
1338    Dwarf_Half 		/*attr*/, 
1339    Dwarf_P_Expr 	/*loc_expr*/, 
1340    Dwarf_Error* 	/*error*/);
1341
1342Dwarf_P_Attribute dwarf_add_AT_string(Dwarf_P_Debug /*dbg*/, 
1343    Dwarf_P_Die 	/*ownerdie*/, 
1344    Dwarf_Half 		/*attr*/, 
1345    const char* 	/*string*/, 
1346    Dwarf_Error* 	/*error*/);
1347
1348Dwarf_P_Attribute dwarf_add_AT_flag(Dwarf_P_Debug /*dbg*/, 
1349    Dwarf_P_Die 	/*ownerdie*/, 
1350    Dwarf_Half 		/*attr*/, 
1351    Dwarf_Small 	/*flag*/, 
1352    Dwarf_Error* 	/*error*/);
1353
1354Dwarf_P_Attribute dwarf_add_AT_producer(Dwarf_P_Die /*ownerdie*/, 
1355    char* 		/*producer_string*/, 
1356    Dwarf_Error* 	/*error*/);
1357
1358Dwarf_P_Attribute dwarf_add_AT_const_value_signedint(Dwarf_P_Die /*ownerdie*/, 
1359    Dwarf_Signed 	/*signed_value*/, 
1360    Dwarf_Error* 	/*error*/);
1361
1362Dwarf_P_Attribute dwarf_add_AT_const_value_unsignedint(
1363    Dwarf_P_Die         /*ownerdie*/, 
1364    Dwarf_Unsigned 	/*unsigned_value*/, 
1365    Dwarf_Error* 	/*error*/);
1366
1367Dwarf_P_Attribute dwarf_add_AT_comp_dir(Dwarf_P_Die /*ownerdie*/, 
1368    char* 		/*current_working_directory*/, 
1369    Dwarf_Error* 	/*error*/);
1370
1371Dwarf_P_Attribute dwarf_add_AT_name(Dwarf_P_Die	/*die*/,
1372    char* 		/*name*/,
1373    Dwarf_Error* 	/*error*/);
1374
1375/* Producer line creation functions (.debug_line) */
1376Dwarf_Unsigned dwarf_add_directory_decl(Dwarf_P_Debug /*dbg*/, 
1377    const char* 	/*name*/, 
1378    Dwarf_Error*	/*error*/);
1379
1380Dwarf_Unsigned dwarf_add_file_decl(Dwarf_P_Debug /*dbg*/, 
1381    const char* 	/*name*/,
1382    Dwarf_Unsigned 	/*dir_index*/, 
1383    Dwarf_Unsigned 	/*time_last_modified*/, 
1384    Dwarf_Unsigned 	/*length*/, 
1385    Dwarf_Error*	/*error*/);
1386
1387Dwarf_Unsigned dwarf_add_line_entry(Dwarf_P_Debug /*dbg*/, 
1388    Dwarf_Unsigned 	/*file_index*/, 
1389    Dwarf_Addr 		/*code_address*/, 
1390    Dwarf_Unsigned 	/*lineno*/, 
1391    Dwarf_Signed 	/*column_number*/, 
1392    Dwarf_Bool 		/*is_source_stmt_begin*/, 
1393    Dwarf_Bool 		/*is_basic_block_begin*/, 
1394    Dwarf_Error* 	/*error*/);
1395
1396Dwarf_Unsigned dwarf_lne_set_address(Dwarf_P_Debug /*dbg*/, 
1397    Dwarf_Unsigned 	/*offset*/, 
1398    Dwarf_Unsigned 	/*symbol_index*/, 
1399    Dwarf_Error* 	/*error*/);
1400
1401Dwarf_Unsigned dwarf_lne_end_sequence(Dwarf_P_Debug /*dbg*/, 
1402    Dwarf_Addr		/*end_address*/,
1403    Dwarf_Error* 	/*error*/);
1404
1405/* Producer .debug_frame functions */
1406Dwarf_Unsigned dwarf_add_frame_cie(Dwarf_P_Debug /*dbg*/, 
1407    const char* 	/*augmenter*/, 
1408    Dwarf_Small 	/*code_alignent_factor*/, 
1409    Dwarf_Small 	/*data_alignment_factor*/, 
1410    Dwarf_Small 	/*return_address_reg*/, 
1411    Dwarf_Ptr 		/*initialization_bytes*/, 
1412    Dwarf_Unsigned 	/*init_byte_len*/, 
1413    Dwarf_Error* 	/*error*/);
1414
1415Dwarf_Unsigned dwarf_add_frame_fde( 
1416    Dwarf_P_Debug 	/*dbg*/,
1417    Dwarf_P_Fde 	/*fde*/, 
1418    Dwarf_P_Die 	/*corresponding subprogram die*/,
1419    Dwarf_Unsigned 	/*cie_to_use*/, 
1420    Dwarf_Unsigned  	/*virt_addr_of_described_code*/, 
1421    Dwarf_Unsigned  	/*length_of_code*/, 
1422    Dwarf_Unsigned 	/*symbol_index*/, 
1423    Dwarf_Error* 	/*error*/);
1424
1425Dwarf_Unsigned dwarf_add_frame_fde_b(
1426        Dwarf_P_Debug  /*dbg*/,
1427        Dwarf_P_Fde    /*fde*/,
1428        Dwarf_P_Die    /*die*/,
1429        Dwarf_Unsigned /*cie*/,
1430        Dwarf_Addr     /*virt_addr*/,
1431        Dwarf_Unsigned /*code_len…

Large files files are truncated, but you can click here to view the full file