1 /* $NetBSD: libdwarf.h,v 1.5 2026/05/17 21:40:49 jkoshy Exp $ */ 2 3 /*- 4 * Copyright (c) 2007 John Birrell (jb (at) freebsd.org) 5 * Copyright (c) 2009-2011,2014,2023 Kai Wang 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * 29 * Id: libdwarf.h 4104 2025-01-25 18:05:14Z jkoshy 30 */ 31 32 #ifndef _LIBDWARF_H_ 33 #define _LIBDWARF_H_ 34 35 #include <libelf.h> 36 37 typedef int Dwarf_Bool; 38 typedef uint64_t Dwarf_Off; 39 typedef uint64_t Dwarf_Unsigned; 40 typedef uint16_t Dwarf_Half; 41 typedef uint8_t Dwarf_Small; 42 typedef int64_t Dwarf_Signed; 43 typedef uint64_t Dwarf_Addr; 44 typedef void *Dwarf_Ptr; 45 46 typedef struct _Dwarf_Abbrev *Dwarf_Abbrev; 47 typedef struct _Dwarf_Arange *Dwarf_Arange; 48 typedef struct _Dwarf_ArangeSet *Dwarf_ArangeSet; 49 typedef struct _Dwarf_Attribute *Dwarf_Attribute; 50 typedef struct _Dwarf_Attribute *Dwarf_P_Attribute; 51 typedef struct _Dwarf_AttrDef *Dwarf_AttrDef; 52 typedef struct _Dwarf_Cie *Dwarf_Cie; 53 typedef struct _Dwarf_Cie *Dwarf_P_Cie; 54 typedef struct _Dwarf_Debug *Dwarf_Debug; 55 typedef struct _Dwarf_Debug *Dwarf_P_Debug; 56 typedef struct _Dwarf_Die *Dwarf_Die; 57 typedef struct _Dwarf_Die *Dwarf_P_Die; 58 typedef struct _Dwarf_Fde *Dwarf_Fde; 59 typedef struct _Dwarf_Fde *Dwarf_P_Fde; 60 typedef struct _Dwarf_FrameSec *Dwarf_FrameSec; 61 typedef struct _Dwarf_Line *Dwarf_Line; 62 typedef struct _Dwarf_LineFile *Dwarf_LineFile; 63 typedef struct _Dwarf_LineInfo *Dwarf_LineInfo; 64 typedef struct _Dwarf_MacroSet *Dwarf_MacroSet; 65 typedef struct _Dwarf_NamePair *Dwarf_NamePair; 66 typedef struct _Dwarf_NamePair *Dwarf_Func; 67 typedef struct _Dwarf_NamePair *Dwarf_Global; 68 typedef struct _Dwarf_NamePair *Dwarf_Type; 69 typedef struct _Dwarf_NamePair *Dwarf_Var; 70 typedef struct _Dwarf_NamePair *Dwarf_Weak; 71 typedef struct _Dwarf_NameTbl *Dwarf_NameTbl; 72 typedef struct _Dwarf_NameSec *Dwarf_NameSec; 73 typedef struct _Dwarf_P_Expr *Dwarf_P_Expr; 74 typedef struct _Dwarf_Rangelist *Dwarf_Rangelist; 75 76 typedef enum { 77 DW_OBJECT_MSB, 78 DW_OBJECT_LSB 79 } Dwarf_Endianness; 80 81 typedef struct { 82 Dwarf_Addr addr; 83 Dwarf_Unsigned size; 84 const char *name; 85 } Dwarf_Obj_Access_Section; 86 87 typedef struct { 88 int (*get_section_info)(void *_obj, Dwarf_Half _index, 89 Dwarf_Obj_Access_Section *_ret_section, int *_error); 90 Dwarf_Endianness (*get_byte_order)(void *_obj); 91 Dwarf_Small (*get_length_size)(void *_obj); 92 Dwarf_Small (*get_pointer_size)(void *_obj); 93 Dwarf_Unsigned (*get_section_count)(void *_obj); 94 int (*load_section)(void *_obj, Dwarf_Half _index, 95 Dwarf_Small **_ret_data, int *_error); 96 } Dwarf_Obj_Access_Methods; 97 98 typedef struct { 99 void *object; 100 const Dwarf_Obj_Access_Methods *methods; 101 } Dwarf_Obj_Access_Interface; 102 103 typedef int (*Dwarf_Callback_Func)(char *_name, int _size, 104 Dwarf_Unsigned _type, Dwarf_Unsigned _flags, Dwarf_Unsigned _link, 105 Dwarf_Unsigned _info, int *_index, int *_error); 106 107 typedef int (*Dwarf_Callback_Func_b)(char *_name, int _size, 108 Dwarf_Unsigned _type, Dwarf_Unsigned _flags, Dwarf_Unsigned _link, 109 Dwarf_Unsigned _info, Dwarf_Unsigned *_index, int *_error); 110 111 typedef Dwarf_Unsigned Dwarf_Tag; 112 113 typedef struct { 114 Dwarf_Small lr_atom; 115 Dwarf_Unsigned lr_number; 116 Dwarf_Unsigned lr_number2; 117 Dwarf_Unsigned lr_offset; 118 } Dwarf_Loc; 119 120 typedef struct { 121 Dwarf_Addr ld_lopc; 122 Dwarf_Addr ld_hipc; 123 Dwarf_Half ld_cents; 124 Dwarf_Loc *ld_s; 125 } Dwarf_Locdesc; 126 127 typedef struct { 128 char signature[8]; 129 } Dwarf_Sig8; 130 131 typedef struct { 132 unsigned char fd_data[16]; 133 } Dwarf_Form_Data16; 134 135 typedef struct { 136 Dwarf_Unsigned bl_len; 137 Dwarf_Ptr bl_data; 138 } Dwarf_Block; 139 140 enum Dwarf_Ranges_Entry_Type { 141 DW_RANGES_ENTRY, 142 DW_RANGES_ADDRESS_SELECTION, 143 DW_RANGES_END 144 }; 145 146 typedef struct { 147 Dwarf_Unsigned dwr_addr1; 148 Dwarf_Unsigned dwr_addr2; 149 enum Dwarf_Ranges_Entry_Type dwr_type; 150 } Dwarf_Ranges; 151 152 enum Dwarf_Form_Class { 153 DW_FORM_CLASS_UNKNOWN, 154 DW_FORM_CLASS_ADDRESS, 155 DW_FORM_CLASS_BLOCK, 156 DW_FORM_CLASS_CONSTANT, 157 DW_FORM_CLASS_EXPRLOC, 158 DW_FORM_CLASS_FLAG, 159 DW_FORM_CLASS_LINEPTR, 160 DW_FORM_CLASS_LOCLISTPTR, 161 DW_FORM_CLASS_MACPTR, 162 DW_FORM_CLASS_RANGELISTPTR, 163 DW_FORM_CLASS_REFERENCE, 164 DW_FORM_CLASS_STRING 165 }; 166 167 #ifndef DW_FRAME_HIGHEST_NORMAL_REGISTER 168 #define DW_FRAME_HIGHEST_NORMAL_REGISTER 63 169 #endif 170 171 #define DW_FRAME_RA_COL (DW_FRAME_HIGHEST_NORMAL_REGISTER + 1) 172 #define DW_FRAME_STATIC_LINK (DW_FRAME_HIGHEST_NORMAL_REGISTER + 2) 173 174 #ifndef DW_FRAME_LAST_REG_NUM 175 #define DW_FRAME_LAST_REG_NUM (DW_FRAME_HIGHEST_NORMAL_REGISTER + 3) 176 #endif 177 178 #ifndef DW_FRAME_REG_INITIAL_VALUE 179 #define DW_FRAME_REG_INITIAL_VALUE DW_FRAME_SAME_VAL 180 #endif 181 182 #define DW_FRAME_UNDEFINED_VAL 1034 183 #define DW_FRAME_SAME_VAL 1035 184 #define DW_FRAME_CFA_COL3 1436 185 186 #define DW_EXPR_OFFSET 0 187 #define DW_EXPR_VAL_OFFSET 1 188 #define DW_EXPR_EXPRESSION 2 189 #define DW_EXPR_VAL_EXPRESSION 3 190 191 /* 192 * Frame operation only for DWARF 2. 193 */ 194 195 #define DW_FRAME_CFA_COL 0 196 197 typedef struct { 198 Dwarf_Small fp_base_op; 199 Dwarf_Small fp_extended_op; 200 Dwarf_Half fp_register; 201 Dwarf_Signed fp_offset; 202 Dwarf_Off fp_instr_offset; 203 } Dwarf_Frame_Op; 204 205 #ifndef DW_REG_TABLE_SIZE 206 #define DW_REG_TABLE_SIZE 66 207 #endif 208 209 typedef struct { 210 struct { 211 Dwarf_Small dw_offset_relevant; 212 Dwarf_Half dw_regnum; 213 Dwarf_Addr dw_offset; 214 } rules[DW_REG_TABLE_SIZE]; 215 } Dwarf_Regtable; 216 217 /* 218 * Frame operation for DWARF 3 and DWARF 2. 219 */ 220 221 typedef struct { 222 Dwarf_Small fp_base_op; 223 Dwarf_Small fp_extended_op; 224 Dwarf_Half fp_register; 225 Dwarf_Unsigned fp_offset_or_block_len; 226 Dwarf_Small *fp_expr_block; 227 Dwarf_Off fp_instr_offset; 228 } Dwarf_Frame_Op3; 229 230 typedef struct { 231 Dwarf_Small dw_offset_relevant; 232 Dwarf_Small dw_value_type; 233 Dwarf_Half dw_regnum; 234 Dwarf_Unsigned dw_offset_or_block_len; 235 Dwarf_Ptr dw_block_ptr; 236 } Dwarf_Regtable_Entry3; 237 238 typedef struct { 239 Dwarf_Regtable_Entry3 rt3_cfa_rule; 240 Dwarf_Half rt3_reg_table_size; 241 Dwarf_Regtable_Entry3 *rt3_rules; 242 } Dwarf_Regtable3; 243 244 typedef struct { 245 Dwarf_Off dmd_offset; 246 Dwarf_Small dmd_type; 247 Dwarf_Signed dmd_lineno; 248 Dwarf_Signed dmd_fileindex; 249 char *dmd_macro; 250 } Dwarf_Macro_Details; 251 252 /* 253 * Symbols denoting allocation types, for use with dwarf_dealloc(3). 254 */ 255 256 enum Dwarf_Allocation_Type { 257 DW_DLA_ABBREV, 258 DW_DLA_ADDR, 259 DW_DLA_ARANGE, 260 DW_DLA_ATTR, 261 DW_DLA_BLOCK, 262 DW_DLA_BOUNDS, 263 DW_DLA_CIE, 264 DW_DLA_DEBUG, 265 DW_DLA_DIE, 266 DW_DLA_ELLIST, 267 DW_DLA_ERROR, 268 DW_DLA_FDE, 269 DW_DLA_FRAME_BLOCK, 270 DW_DLA_FRAME_OP, 271 DW_DLA_FUNC, 272 DW_DLA_GLOBAL, 273 DW_DLA_LINE, 274 DW_DLA_LINEBUF, 275 DW_DLA_LIST, 276 DW_DLA_LOC, 277 DW_DLA_LOCDESC, 278 DW_DLA_LOC_BLOCK, 279 DW_DLA_RANGES, 280 DW_DLA_STRING, 281 DW_DLA_SUBSCR, 282 DW_DLA_TYPE, 283 DW_DLA_TYPENAME, 284 DW_DLA_VAR, 285 DW_DLA_WEAK 286 }; 287 288 /* 289 * Relocation Type. 290 */ 291 enum Dwarf_Rel_Type { 292 dwarf_drt_none = 0, 293 dwarf_drt_data_reloc, 294 dwarf_drt_segment_rel, 295 dwarf_drt_first_of_length_pair, 296 dwarf_drt_second_of_length_pair 297 }; 298 299 /* 300 * Relocation Entry. 301 */ 302 typedef struct Dwarf_Relocation_Data_s { 303 unsigned char drd_type; 304 unsigned char drd_length; 305 Dwarf_Unsigned drd_offset; 306 Dwarf_Unsigned drd_symbol_index; 307 } *Dwarf_Relocation_Data; 308 309 #define DWARF_DRD_BUFFER_VERSION 2 310 311 /* 312 * Error numbers which are specific to this implementation. 313 */ 314 enum { 315 DW_DLE_NONE, /* No error. */ 316 DW_DLE_ERROR, /* An error! */ 317 DW_DLE_ARGUMENT, /* Invalid argument. */ 318 DW_DLE_DEBUG_INFO_NULL, /* Debug info NULL. */ 319 DW_DLE_NO_ENTRY, /* No entry. */ 320 DW_DLE_MEMORY, /* Insufficient memory. */ 321 DW_DLE_ELF, /* ELF error. */ 322 DW_DLE_CU_LENGTH_ERROR, /* Invalid compilation unit data. */ 323 DW_DLE_VERSION_STAMP_ERROR, /* Invalid version. */ 324 DW_DLE_DEBUG_ABBREV_NULL, /* Abbrev not found. */ 325 DW_DLE_DIE_NO_CU_CONTEXT, /* No current compilation unit. */ 326 DW_DLE_LOC_EXPR_BAD, /* Invalid location expression. */ 327 DW_DLE_EXPR_LENGTH_BAD, /* Invalid DWARF expression. */ 328 DW_DLE_DEBUG_LOC_SECTION_SHORT, /* Loclist section too short. */ 329 DW_DLE_ATTR_FORM_BAD, /* Invalid attribute form. */ 330 DW_DLE_DEBUG_LINE_LENGTH_BAD, /* Line info section too short. */ 331 DW_DLE_LINE_FILE_NUM_BAD, /* Invalid file number. */ 332 DW_DLE_DIR_INDEX_BAD, /* Invalid dir index. */ 333 DW_DLE_DEBUG_FRAME_LENGTH_BAD, /* Frame section too short. */ 334 DW_DLE_NO_CIE_FOR_FDE, /* CIE not found for certain FDE. */ 335 DW_DLE_FRAME_AUGMENTATION_UNKNOWN, /* Unknown CIE augmentation. */ 336 DW_DLE_FRAME_INSTR_EXEC_ERROR, /* Frame instruction exec error. */ 337 DW_DLE_FRAME_VERSION_BAD, /* Invalid frame section version. */ 338 DW_DLE_FRAME_TABLE_COL_BAD, /* Invalid table column. */ 339 DW_DLE_DF_REG_NUM_TOO_HIGH, /* Insufficient regtable space. */ 340 DW_DLE_PC_NOT_IN_FDE_RANGE, /* PC requested not in the FDE range. */ 341 DW_DLE_ARANGE_OFFSET_BAD, /* Invalid arange offset. */ 342 DW_DLE_DEBUG_MACRO_INCONSISTENT,/* Invalid macinfo data. */ 343 DW_DLE_ELF_SECT_ERR, /* Application callback failed. */ 344 DW_DLE_DIR_COUNT_BAD, /* Invalid directory count. */ 345 DW_DLE_FILE_COUNT_BAD, /* Invalid filename count. */ 346 DW_DLE_LNCT_DESC_BAD, /* Invalid LNCT descriptor. */ 347 DW_DLE_NUM /* Max error number. */ 348 }; 349 350 /* 351 * Mapping of SGI libdwarf error codes for comptibility. 352 */ 353 #define DW_DLE_DBG_ALLOC DW_DLE_MEMORY 354 #define DW_DLE_ALLOC_FAIL DW_DLE_MEMORY 355 #define DW_DLE_SECT_ALLOC DW_DLE_MEMORY 356 #define DW_DLE_FILE_ENTRY_ALLOC DW_DLE_MEMORY 357 #define DW_DLE_LINE_ALLOC DW_DLE_MEMORY 358 #define DW_DLE_FPGM_ALLOC DW_DLE_MEMORY 359 #define DW_DLE_INCDIR_ALLOC DW_DLE_MEMORY 360 #define DW_DLE_STRING_ALLOC DW_DLE_MEMORY 361 #define DW_DLE_CHUNK_ALLOC DW_DLE_MEMORY 362 #define DW_DLE_CIE_ALLOC DW_DLE_MEMORY 363 #define DW_DLE_FDE_ALLOC DW_DLE_MEMORY 364 #define DW_DLE_CIE_OFFS_ALLOC DW_DLE_MEMORY 365 #define DW_DLE_DIE_ALLOC DW_DLE_MEMORY 366 #define DW_DLE_ATTR_ALLOC DW_DLE_MEMORY 367 #define DW_DLE_ABBREV_ALLOC DW_DLE_MEMORY 368 #define DW_DLE_ADDR_ALLOC DW_DLE_MEMORY 369 #define DW_DLE_REL_ALLOC DW_DLE_MEMORY 370 #define DW_DLE_MACINFO_MALLOC_FAIL DW_DLE_MEMORY 371 #define DW_DLE_DEBUG_MACRO_MALLOC_SPACE DW_DLE_MEMORY 372 #define DW_DLE_DF_ALLOC_FAIL DW_DLE_MEMORY 373 #define DW_DLE_RELOC_SECTION_MALLOC_FAIL DW_DLE_MEMORY 374 #define DW_DLE_DBG_NULL DW_DLE_ARGUMENT 375 #define DW_DLE_DIE_NULL DW_DLE_ARGUMENT 376 #define DW_DLE_FDE_NULL DW_DLE_ARGUMENT 377 #define DW_DLE_CIE_NULL DW_DLE_ARGUMENT 378 #define DW_DLE_ATTR_NULL DW_DLE_ARGUMENT 379 #define DW_DLE_GLOBAL_NULL DW_DLE_ARGUMENT 380 #define DW_DLE_ARANGES_NULL DW_DLE_ARGUMENT 381 #define DW_DLE_ARANGE_NULL DW_DLE_ARGUMENT 382 #define DW_DLE_EXPR_NULL DW_DLE_ARGUMENT 383 #define DW_DLE_FUNC_NULL DW_DLE_ARGUMENT 384 #define DW_DLE_TYPE_NULL DW_DLE_ARGUMENT 385 #define DW_DLE_VAR_NULL DW_DLE_ARGUMENT 386 #define DW_DLE_WEAK_NULL DW_DLE_ARGUMENT 387 #define DW_DLE_ELF_BEGIN_ERROR DW_DLE_ELF 388 #define DW_DLE_ELF_GETEHDR_ERROR DW_DLE_ELF 389 #define DW_DLE_ELF_GETSHDR_ERROR DW_DLE_ELF 390 #define DW_DLE_ELF_STRPTR_ERROR DW_DLE_ELF 391 #define DW_DLE_ELF_SECT_ERROR DW_DLE_ELF 392 #define DW_DLE_ELF_GETIDENT_ERROR DW_DLE_ELF 393 394 typedef struct _Dwarf_Error { 395 int err_error; /* DWARF error. */ 396 int err_elferror; /* ELF error. */ 397 const char *err_func; /* Function name where error occurred. */ 398 int err_line; /* Line number where error occurred. */ 399 char err_msg[1024]; /* Formatted error message. */ 400 } Dwarf_Error; 401 402 /* 403 * Dwarf error handler. 404 */ 405 typedef void (*Dwarf_Handler)(Dwarf_Error, Dwarf_Ptr); 406 407 #define dwarf_errno(error) error.err_error 408 #define dwarf_errmsg(error) dwarf_errmsg_(&error) 409 410 /* 411 * Return values which have to be compatible with other 412 * implementations of libdwarf. 413 */ 414 #define DW_DLV_NO_ENTRY -1 415 #define DW_DLV_OK 0 416 #define DW_DLV_ERROR 1 417 #define DW_DLV_BADADDR NULL 418 #define DW_DLV_NOCOUNT ((Dwarf_Signed) -1) 419 420 /* 421 * Access modes. 422 */ 423 #define DW_DLC_READ 0x0001 424 #define DW_DLC_WRITE 0x0002 425 #define DW_DLC_RDWR 0x0004 426 427 /* 428 * Flags used by libdwarf producer. 429 */ 430 #define DW_DLC_SIZE_64 0x40000000 431 #define DW_DLC_SIZE_32 0x20000000 432 #define DW_DLC_OFFSET_SIZE_64 0x10000000 433 #define DW_DLC_ISA_MIPS 0x80000000 434 #define DW_DLC_ISA_IA64 0x01000000 435 #define DW_DLC_STREAM_RELOCATIONS 0x02000000 436 #define DW_DLC_SYMBOLIC_RELOCATIONS 0x04000000 437 #define DW_DLC_TARGET_BIGENDIAN 0x08000000 438 #define DW_DLC_TARGET_LITTLEENDIAN 0x00100000 439 440 /* 441 * Instruction set architectures supported by this implementation. 442 */ 443 enum Dwarf_ISA { 444 DW_ISA_ARM, 445 DW_ISA_IA64, 446 DW_ISA_MIPS, 447 DW_ISA_PPC, 448 DW_ISA_SPARC, 449 DW_ISA_X86, 450 DW_ISA_X86_64, 451 DW_ISA_AARCH64, 452 DW_ISA_RISCV, 453 DW_ISA_LOONGARCH, 454 DW_ISA_MAX 455 }; 456 457 /* Function prototype definitions. */ 458 #ifdef __cplusplus 459 extern "C" { 460 #endif 461 Dwarf_P_Attribute dwarf_add_AT_comp_dir(Dwarf_P_Die, char *, Dwarf_Error *); 462 Dwarf_P_Attribute dwarf_add_AT_const_value_signedint(Dwarf_P_Die, Dwarf_Signed, 463 Dwarf_Error *); 464 Dwarf_P_Attribute dwarf_add_AT_const_value_string(Dwarf_P_Die, char *, 465 Dwarf_Error *); 466 Dwarf_P_Attribute dwarf_add_AT_const_value_unsignedint(Dwarf_P_Die, 467 Dwarf_Unsigned, Dwarf_Error *); 468 Dwarf_P_Attribute dwarf_add_AT_dataref(Dwarf_P_Debug, Dwarf_P_Die, Dwarf_Half, 469 Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Error *); 470 Dwarf_P_Attribute dwarf_add_AT_flag(Dwarf_P_Debug, Dwarf_P_Die, Dwarf_Half, 471 Dwarf_Small, Dwarf_Error *); 472 Dwarf_P_Attribute dwarf_add_AT_location_expr(Dwarf_P_Debug, Dwarf_P_Die, 473 Dwarf_Half, Dwarf_P_Expr, Dwarf_Error *); 474 Dwarf_P_Attribute dwarf_add_AT_name(Dwarf_P_Die, char *, Dwarf_Error *); 475 Dwarf_P_Attribute dwarf_add_AT_producer(Dwarf_P_Die, char *, Dwarf_Error *); 476 Dwarf_P_Attribute dwarf_add_AT_ref_address(Dwarf_P_Debug, Dwarf_P_Die, 477 Dwarf_Half, Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Error *); 478 Dwarf_P_Attribute dwarf_add_AT_reference(Dwarf_P_Debug, Dwarf_P_Die, Dwarf_Half, 479 Dwarf_P_Die, Dwarf_Error *); 480 Dwarf_P_Attribute dwarf_add_AT_signed_const(Dwarf_P_Debug, Dwarf_P_Die, 481 Dwarf_Half, Dwarf_Signed, Dwarf_Error *); 482 Dwarf_P_Attribute dwarf_add_AT_string(Dwarf_P_Debug, Dwarf_P_Die, Dwarf_Half, 483 char *, Dwarf_Error *); 484 Dwarf_P_Attribute dwarf_add_AT_targ_address(Dwarf_P_Debug, Dwarf_P_Die, 485 Dwarf_Half, Dwarf_Unsigned, Dwarf_Signed, Dwarf_Error *); 486 Dwarf_P_Attribute dwarf_add_AT_targ_address_b(Dwarf_P_Debug, Dwarf_P_Die, 487 Dwarf_Half, Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Error *); 488 Dwarf_P_Attribute dwarf_add_AT_unsigned_const(Dwarf_P_Debug, Dwarf_P_Die, 489 Dwarf_Half, Dwarf_Unsigned, Dwarf_Error *); 490 Dwarf_Unsigned dwarf_add_arange(Dwarf_P_Debug, Dwarf_Addr, Dwarf_Unsigned, 491 Dwarf_Signed, Dwarf_Error *); 492 Dwarf_Unsigned dwarf_add_arange_b(Dwarf_P_Debug, Dwarf_Addr, Dwarf_Unsigned, 493 Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Addr, Dwarf_Error *); 494 Dwarf_Unsigned dwarf_add_die_to_debug(Dwarf_P_Debug, Dwarf_P_Die, 495 Dwarf_Error *); 496 Dwarf_Unsigned dwarf_add_directory_decl(Dwarf_P_Debug, char *, Dwarf_Error *); 497 Dwarf_Unsigned dwarf_add_expr_addr(Dwarf_P_Expr, Dwarf_Unsigned, 498 Dwarf_Signed, Dwarf_Error *); 499 Dwarf_Unsigned dwarf_add_expr_addr_b(Dwarf_P_Expr, Dwarf_Unsigned, 500 Dwarf_Unsigned, Dwarf_Error *); 501 Dwarf_Unsigned dwarf_add_expr_gen(Dwarf_P_Expr, Dwarf_Small, Dwarf_Unsigned, 502 Dwarf_Unsigned, Dwarf_Error *); 503 Dwarf_P_Fde dwarf_add_fde_inst(Dwarf_P_Fde, Dwarf_Small, Dwarf_Unsigned, 504 Dwarf_Unsigned, Dwarf_Error *); 505 Dwarf_Unsigned dwarf_add_file_decl(Dwarf_P_Debug, char *, Dwarf_Unsigned, 506 Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Error *); 507 Dwarf_Unsigned dwarf_add_frame_cie(Dwarf_P_Debug, char *, Dwarf_Small, 508 Dwarf_Small, Dwarf_Small, Dwarf_Ptr, Dwarf_Unsigned, 509 Dwarf_Error *); 510 Dwarf_Unsigned dwarf_add_frame_fde(Dwarf_P_Debug, Dwarf_P_Fde, Dwarf_P_Die, 511 Dwarf_Unsigned, Dwarf_Addr, Dwarf_Unsigned, Dwarf_Unsigned, 512 Dwarf_Error *); 513 Dwarf_Unsigned dwarf_add_frame_fde_b(Dwarf_P_Debug, Dwarf_P_Fde, Dwarf_P_Die, 514 Dwarf_Unsigned, Dwarf_Addr, Dwarf_Unsigned, Dwarf_Unsigned, 515 Dwarf_Unsigned, Dwarf_Addr, Dwarf_Error *); 516 Dwarf_Unsigned dwarf_add_funcname(Dwarf_P_Debug, Dwarf_P_Die, char *, 517 Dwarf_Error *); 518 Dwarf_Unsigned dwarf_add_line_entry(Dwarf_P_Debug, Dwarf_Unsigned, 519 Dwarf_Addr, Dwarf_Unsigned, Dwarf_Signed, Dwarf_Bool, 520 Dwarf_Bool, Dwarf_Error *); 521 Dwarf_Unsigned dwarf_add_pubname(Dwarf_P_Debug, Dwarf_P_Die, char *, 522 Dwarf_Error *); 523 Dwarf_Unsigned dwarf_add_typename(Dwarf_P_Debug, Dwarf_P_Die, char *, 524 Dwarf_Error *); 525 Dwarf_Unsigned dwarf_add_varname(Dwarf_P_Debug, Dwarf_P_Die, char *, 526 Dwarf_Error *); 527 Dwarf_Unsigned dwarf_add_weakname(Dwarf_P_Debug, Dwarf_P_Die, char *, 528 Dwarf_Error *); 529 int dwarf_arrayorder(Dwarf_Die, Dwarf_Unsigned *, Dwarf_Error *); 530 int dwarf_attr(Dwarf_Die, Dwarf_Half, Dwarf_Attribute *, 531 Dwarf_Error *); 532 int dwarf_attrlist(Dwarf_Die, Dwarf_Attribute **, 533 Dwarf_Signed *, Dwarf_Error *); 534 int dwarf_attroffset(Dwarf_Attribute, Dwarf_Off *, Dwarf_Error *); 535 int dwarf_attrval_flag(Dwarf_Die, Dwarf_Half, Dwarf_Bool *, 536 Dwarf_Error *); 537 int dwarf_attrval_signed(Dwarf_Die, Dwarf_Half, Dwarf_Signed *, 538 Dwarf_Error *); 539 int dwarf_attrval_string(Dwarf_Die, Dwarf_Half, const char **, 540 Dwarf_Error *); 541 int dwarf_attrval_unsigned(Dwarf_Die, Dwarf_Half, Dwarf_Unsigned *, 542 Dwarf_Error *); 543 int dwarf_bitoffset(Dwarf_Die, Dwarf_Unsigned *, Dwarf_Error *); 544 int dwarf_bitsize(Dwarf_Die, Dwarf_Unsigned *, Dwarf_Error *); 545 int dwarf_bytesize(Dwarf_Die, Dwarf_Unsigned *, Dwarf_Error *); 546 int dwarf_child(Dwarf_Die, Dwarf_Die *, Dwarf_Error *); 547 void dwarf_dealloc(Dwarf_Debug, Dwarf_Ptr, Dwarf_Unsigned); 548 int dwarf_def_macro(Dwarf_P_Debug, Dwarf_Unsigned, char *, char *, 549 Dwarf_Error *); 550 int dwarf_die_CU_offset(Dwarf_Die, Dwarf_Off *, Dwarf_Error *); 551 int dwarf_die_CU_offset_range(Dwarf_Die, Dwarf_Off *, Dwarf_Off *, 552 Dwarf_Error *); 553 int dwarf_die_abbrev_code(Dwarf_Die); 554 Dwarf_P_Die dwarf_die_link(Dwarf_P_Die, Dwarf_P_Die, Dwarf_P_Die, 555 Dwarf_P_Die, Dwarf_P_Die, Dwarf_Error *); 556 int dwarf_diename(Dwarf_Die, char **, Dwarf_Error *); 557 int dwarf_dieoffset(Dwarf_Die, Dwarf_Off *, Dwarf_Error *); 558 int dwarf_elf_init(Elf *, int, Dwarf_Handler, Dwarf_Ptr, 559 Dwarf_Debug *, Dwarf_Error *); 560 int dwarf_end_macro_file(Dwarf_P_Debug, Dwarf_Error *); 561 const char *dwarf_errmsg_(Dwarf_Error *); 562 int dwarf_expand_frame_instructions(Dwarf_Cie, Dwarf_Ptr, 563 Dwarf_Unsigned, Dwarf_Frame_Op **, Dwarf_Signed *, 564 Dwarf_Error *); 565 Dwarf_Unsigned dwarf_expr_current_offset(Dwarf_P_Expr, Dwarf_Error *); 566 Dwarf_Addr dwarf_expr_into_block(Dwarf_P_Expr, Dwarf_Unsigned *, 567 Dwarf_Error *); 568 Dwarf_P_Fde dwarf_fde_cfa_offset(Dwarf_P_Fde, Dwarf_Unsigned, Dwarf_Signed, 569 Dwarf_Error *); 570 void dwarf_fde_cie_list_dealloc(Dwarf_Debug, Dwarf_Cie *, 571 Dwarf_Signed, Dwarf_Fde *, Dwarf_Signed); 572 char *dwarf_find_macro_value_start(char *); 573 int dwarf_finish(Dwarf_Debug, Dwarf_Error *); 574 int dwarf_formaddr(Dwarf_Attribute, Dwarf_Addr *, Dwarf_Error *); 575 int dwarf_formblock(Dwarf_Attribute, Dwarf_Block **, Dwarf_Error *); 576 int dwarf_formexprloc(Dwarf_Attribute, Dwarf_Unsigned *, 577 Dwarf_Ptr *, Dwarf_Error *); 578 int dwarf_formflag(Dwarf_Attribute, Dwarf_Bool *, Dwarf_Error *); 579 int dwarf_formref(Dwarf_Attribute, Dwarf_Off *, Dwarf_Error *); 580 int dwarf_formsdata(Dwarf_Attribute, Dwarf_Signed *, Dwarf_Error *); 581 int dwarf_formsig8(Dwarf_Attribute, Dwarf_Sig8 *, Dwarf_Error *); 582 int dwarf_formstring(Dwarf_Attribute, char **, Dwarf_Error *); 583 int dwarf_formudata(Dwarf_Attribute, Dwarf_Unsigned *, 584 Dwarf_Error *); 585 int dwarf_func_cu_offset(Dwarf_Func, Dwarf_Off *, Dwarf_Error *); 586 int dwarf_func_die_offset(Dwarf_Func, Dwarf_Off *, 587 Dwarf_Error *); 588 int dwarf_func_name_offsets(Dwarf_Func, char **, 589 Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); 590 int dwarf_funcname(Dwarf_Func, char **, Dwarf_Error *); 591 void dwarf_funcs_dealloc(Dwarf_Debug, Dwarf_Func *, Dwarf_Signed); 592 int dwarf_get_ACCESS_name(unsigned, const char **); 593 int dwarf_get_ATE_name(unsigned, const char **); 594 int dwarf_get_AT_name(unsigned, const char **); 595 int dwarf_get_CC_name(unsigned, const char **); 596 int dwarf_get_CFA_name(unsigned, const char **); 597 int dwarf_get_CHILDREN_name(unsigned, const char **); 598 int dwarf_get_DSC_name(unsigned, const char **); 599 int dwarf_get_DS_name(unsigned, const char **); 600 int dwarf_get_EH_name(unsigned, const char **); 601 int dwarf_get_END_name(unsigned, const char **); 602 int dwarf_get_FORM_name(unsigned, const char **); 603 int dwarf_get_ID_name(unsigned, const char **); 604 int dwarf_get_INL_name(unsigned, const char **); 605 int dwarf_get_LANG_name(unsigned, const char **); 606 int dwarf_get_LNE_name(unsigned, const char **); 607 int dwarf_get_LNS_name(unsigned, const char **); 608 int dwarf_get_MACINFO_name(unsigned, const char **); 609 int dwarf_get_OP_name(unsigned, const char **); 610 int dwarf_get_ORD_name(unsigned, const char **); 611 int dwarf_get_TAG_name(unsigned, const char **); 612 int dwarf_get_UT_name(unsigned, const char **); 613 int dwarf_get_VIRTUALITY_name(unsigned, const char **); 614 int dwarf_get_VIS_name(unsigned, const char **); 615 int dwarf_get_abbrev(Dwarf_Debug, Dwarf_Unsigned, Dwarf_Abbrev *, 616 Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Error *); 617 int dwarf_get_abbrev_children_flag(Dwarf_Abbrev, Dwarf_Signed *, 618 Dwarf_Error *); 619 int dwarf_get_abbrev_code(Dwarf_Abbrev, Dwarf_Unsigned *, 620 Dwarf_Error *); 621 int dwarf_get_abbrev_entry(Dwarf_Abbrev, Dwarf_Signed, Dwarf_Half *, 622 Dwarf_Signed *, Dwarf_Off *, Dwarf_Error *); 623 int dwarf_get_abbrev_tag(Dwarf_Abbrev, Dwarf_Half *, Dwarf_Error *); 624 int dwarf_get_address_size(Dwarf_Debug, Dwarf_Half *, 625 Dwarf_Error *); 626 int dwarf_get_arange(Dwarf_Arange *, Dwarf_Unsigned, Dwarf_Addr, 627 Dwarf_Arange *, Dwarf_Error *); 628 int dwarf_get_arange_cu_header_offset(Dwarf_Arange, Dwarf_Off *, 629 Dwarf_Error *); 630 int dwarf_get_arange_info(Dwarf_Arange, Dwarf_Addr *, 631 Dwarf_Unsigned *, Dwarf_Off *, Dwarf_Error *); 632 int dwarf_get_aranges(Dwarf_Debug, Dwarf_Arange **, Dwarf_Signed *, 633 Dwarf_Error *); 634 int dwarf_get_cie_index(Dwarf_Cie, Dwarf_Signed *, Dwarf_Error *); 635 int dwarf_get_cie_info(Dwarf_Cie, Dwarf_Unsigned *, Dwarf_Small *, 636 char **, Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Half *, 637 Dwarf_Ptr *, Dwarf_Unsigned *, Dwarf_Error *); 638 int dwarf_get_cie_of_fde(Dwarf_Fde, Dwarf_Cie *, Dwarf_Error *); 639 int dwarf_get_cu_die_offset(Dwarf_Arange, Dwarf_Off *, 640 Dwarf_Error *); 641 int dwarf_get_cu_die_offset_given_cu_header_offset(Dwarf_Debug, 642 Dwarf_Off, Dwarf_Off *, Dwarf_Error *); 643 int dwarf_get_cu_die_offset_given_cu_header_offset_b(Dwarf_Debug, 644 Dwarf_Off, Dwarf_Bool, Dwarf_Off *, Dwarf_Error *); 645 Dwarf_Bool dwarf_get_die_infotypes_flag(Dwarf_Die); 646 int dwarf_get_elf(Dwarf_Debug, Elf **, Dwarf_Error *); 647 int dwarf_get_fde_at_pc(Dwarf_Fde *, Dwarf_Addr, Dwarf_Fde *, 648 Dwarf_Addr *, Dwarf_Addr *, Dwarf_Error *); 649 int dwarf_get_fde_info_for_all_regs(Dwarf_Fde, Dwarf_Addr, 650 Dwarf_Regtable *, Dwarf_Addr *, Dwarf_Error *); 651 int dwarf_get_fde_info_for_all_regs3(Dwarf_Fde, Dwarf_Addr, 652 Dwarf_Regtable3 *, Dwarf_Addr *, Dwarf_Error *); 653 int dwarf_get_fde_info_for_cfa_reg3(Dwarf_Fde, Dwarf_Addr, 654 Dwarf_Small *, Dwarf_Signed *, Dwarf_Signed *, Dwarf_Signed *, 655 Dwarf_Ptr *, Dwarf_Addr *, Dwarf_Error *); 656 int dwarf_get_fde_info_for_reg(Dwarf_Fde, Dwarf_Half, Dwarf_Addr, 657 Dwarf_Signed *, Dwarf_Signed *, Dwarf_Signed *, 658 Dwarf_Addr *, Dwarf_Error *); 659 int dwarf_get_fde_info_for_reg3(Dwarf_Fde, Dwarf_Half, Dwarf_Addr, 660 Dwarf_Small *, Dwarf_Signed *, Dwarf_Signed *, 661 Dwarf_Signed *, Dwarf_Ptr *, Dwarf_Addr *, Dwarf_Error *); 662 int dwarf_get_fde_instr_bytes(Dwarf_Fde, Dwarf_Ptr *, 663 Dwarf_Unsigned *, Dwarf_Error *); 664 int dwarf_get_fde_list(Dwarf_Debug, Dwarf_Cie **, Dwarf_Signed *, 665 Dwarf_Fde **, Dwarf_Signed *, Dwarf_Error *); 666 int dwarf_get_fde_list_eh(Dwarf_Debug, Dwarf_Cie **, Dwarf_Signed *, 667 Dwarf_Fde **, Dwarf_Signed *, Dwarf_Error *); 668 int dwarf_get_fde_n(Dwarf_Fde *, Dwarf_Unsigned, Dwarf_Fde *, 669 Dwarf_Error *); 670 int dwarf_get_fde_range(Dwarf_Fde, Dwarf_Addr *, Dwarf_Unsigned *, 671 Dwarf_Ptr *, Dwarf_Unsigned *, Dwarf_Off *, Dwarf_Signed *, 672 Dwarf_Off *, Dwarf_Error *); 673 enum Dwarf_Form_Class dwarf_get_form_class(Dwarf_Half, Dwarf_Half, Dwarf_Half, 674 Dwarf_Half); 675 int dwarf_get_funcs(Dwarf_Debug, Dwarf_Func **, Dwarf_Signed *, 676 Dwarf_Error *); 677 int dwarf_get_globals(Dwarf_Debug, Dwarf_Global **, Dwarf_Signed *, 678 Dwarf_Error *); 679 int dwarf_get_loclist_entry(Dwarf_Debug, Dwarf_Unsigned, 680 Dwarf_Addr *, Dwarf_Addr *, Dwarf_Ptr *, Dwarf_Unsigned *, 681 Dwarf_Unsigned *, Dwarf_Error *); 682 int dwarf_get_macro_details(Dwarf_Debug, Dwarf_Off, Dwarf_Unsigned, 683 Dwarf_Signed *, Dwarf_Macro_Details **, Dwarf_Error *); 684 int dwarf_get_pubtypes(Dwarf_Debug, Dwarf_Type **, Dwarf_Signed *, 685 Dwarf_Error *); 686 int dwarf_get_ranges(Dwarf_Debug, Dwarf_Off, Dwarf_Ranges **, 687 Dwarf_Signed *, Dwarf_Unsigned *, Dwarf_Error *); 688 int dwarf_get_ranges_a(Dwarf_Debug, Dwarf_Off, Dwarf_Die, 689 Dwarf_Ranges **, Dwarf_Signed *, Dwarf_Unsigned *, 690 Dwarf_Error *); 691 int dwarf_get_relocation_info(Dwarf_P_Debug, Dwarf_Signed *, 692 Dwarf_Signed *, Dwarf_Unsigned *, Dwarf_Relocation_Data *, 693 Dwarf_Error *); 694 int dwarf_get_relocation_info_count(Dwarf_P_Debug, Dwarf_Unsigned *, 695 int *, Dwarf_Error *); 696 Dwarf_Ptr dwarf_get_section_bytes(Dwarf_P_Debug, Dwarf_Signed, 697 Dwarf_Signed *, Dwarf_Unsigned *, Dwarf_Error *); 698 int dwarf_get_section_max_offsets(Dwarf_Debug, Dwarf_Unsigned *, 699 Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, 700 Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, 701 Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, 702 Dwarf_Unsigned *); 703 int dwarf_get_section_max_offsets_b(Dwarf_Debug, Dwarf_Unsigned *, 704 Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, 705 Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, 706 Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, 707 Dwarf_Unsigned *, Dwarf_Unsigned *); 708 int dwarf_get_str(Dwarf_Debug, Dwarf_Off, char **, Dwarf_Signed *, 709 Dwarf_Error *); 710 int dwarf_get_types(Dwarf_Debug, Dwarf_Type **, Dwarf_Signed *, 711 Dwarf_Error *); 712 int dwarf_get_vars(Dwarf_Debug, Dwarf_Var **, Dwarf_Signed *, 713 Dwarf_Error *); 714 int dwarf_get_weaks(Dwarf_Debug, Dwarf_Weak **, Dwarf_Signed *, 715 Dwarf_Error *); 716 int dwarf_global_cu_offset(Dwarf_Global, Dwarf_Off *, Dwarf_Error *); 717 int dwarf_global_die_offset(Dwarf_Global, Dwarf_Off *, 718 Dwarf_Error *); 719 int dwarf_global_formref(Dwarf_Attribute, Dwarf_Off *, 720 Dwarf_Error *); 721 int dwarf_global_name_offsets(Dwarf_Global, char **, 722 Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); 723 void dwarf_globals_dealloc(Dwarf_Debug, Dwarf_Global *, Dwarf_Signed); 724 int dwarf_globname(Dwarf_Global, char **, Dwarf_Error *); 725 int dwarf_hasattr(Dwarf_Die, Dwarf_Half, Dwarf_Bool *, 726 Dwarf_Error *); 727 int dwarf_hasform(Dwarf_Attribute, Dwarf_Half, Dwarf_Bool *, 728 Dwarf_Error *); 729 int dwarf_highpc(Dwarf_Die, Dwarf_Addr *, Dwarf_Error *); 730 int dwarf_highpc_b(Dwarf_Die, Dwarf_Addr *, Dwarf_Half *, 731 enum Dwarf_Form_Class *, Dwarf_Error *); 732 int dwarf_init(int, int, Dwarf_Handler, Dwarf_Ptr, Dwarf_Debug *, 733 Dwarf_Error *); 734 int dwarf_line_srcfileno(Dwarf_Line, Dwarf_Unsigned *, 735 Dwarf_Error *); 736 int dwarf_lineaddr(Dwarf_Line, Dwarf_Addr *, Dwarf_Error *); 737 int dwarf_linebeginstatement(Dwarf_Line, Dwarf_Bool *, 738 Dwarf_Error *); 739 int dwarf_lineblock(Dwarf_Line, Dwarf_Bool *, Dwarf_Error *); 740 int dwarf_lineendsequence(Dwarf_Line, Dwarf_Bool *, Dwarf_Error *); 741 int dwarf_lineno(Dwarf_Line, Dwarf_Unsigned *, Dwarf_Error *); 742 int dwarf_lineoff(Dwarf_Line, Dwarf_Signed *, Dwarf_Error *); 743 int dwarf_linesrc(Dwarf_Line, char **, Dwarf_Error *); 744 Dwarf_Unsigned dwarf_lne_end_sequence(Dwarf_P_Debug, Dwarf_Addr, Dwarf_Error *); 745 Dwarf_Unsigned dwarf_lne_set_address(Dwarf_P_Debug, Dwarf_Addr, Dwarf_Unsigned, 746 Dwarf_Error *); 747 int dwarf_loclist(Dwarf_Attribute, Dwarf_Locdesc **, Dwarf_Signed *, 748 Dwarf_Error *); 749 int dwarf_loclist_from_expr(Dwarf_Debug, Dwarf_Ptr, Dwarf_Unsigned, 750 Dwarf_Locdesc **, Dwarf_Signed *, Dwarf_Error *); 751 int dwarf_loclist_from_expr_a(Dwarf_Debug, Dwarf_Ptr, 752 Dwarf_Unsigned, Dwarf_Half, Dwarf_Locdesc **, 753 Dwarf_Signed *, Dwarf_Error *); 754 int dwarf_loclist_from_expr_b(Dwarf_Debug, Dwarf_Ptr, 755 Dwarf_Unsigned, Dwarf_Half, Dwarf_Half, 756 Dwarf_Small, Dwarf_Locdesc **, Dwarf_Signed *, 757 Dwarf_Error *); 758 int dwarf_loclist_n(Dwarf_Attribute, Dwarf_Locdesc ***, 759 Dwarf_Signed *, Dwarf_Error *); 760 int dwarf_lowpc(Dwarf_Die, Dwarf_Addr *, Dwarf_Error *); 761 Dwarf_P_Die dwarf_new_die(Dwarf_P_Debug, Dwarf_Tag, Dwarf_P_Die, 762 Dwarf_P_Die, Dwarf_P_Die, Dwarf_P_Die, Dwarf_Error *); 763 Dwarf_P_Expr dwarf_new_expr(Dwarf_P_Debug, Dwarf_Error *); 764 Dwarf_P_Fde dwarf_new_fde(Dwarf_P_Debug, Dwarf_Error *); 765 int dwarf_next_cu_header(Dwarf_Debug, Dwarf_Unsigned *, 766 Dwarf_Half *, Dwarf_Off *, Dwarf_Half *, 767 Dwarf_Unsigned *, Dwarf_Error *); 768 int dwarf_next_cu_header_b(Dwarf_Debug, Dwarf_Unsigned *, 769 Dwarf_Half *, Dwarf_Off *, Dwarf_Half *, Dwarf_Half *, 770 Dwarf_Half *, Dwarf_Unsigned *, Dwarf_Error *); 771 int dwarf_next_cu_header_c(Dwarf_Debug, Dwarf_Bool, 772 Dwarf_Unsigned *, Dwarf_Half *, Dwarf_Off *, Dwarf_Half *, 773 Dwarf_Half *, Dwarf_Half *, Dwarf_Sig8 *, Dwarf_Unsigned *, 774 Dwarf_Unsigned *, Dwarf_Error *); 775 int dwarf_next_cu_header_d(Dwarf_Debug, Dwarf_Bool, 776 Dwarf_Unsigned *, Dwarf_Half *, Dwarf_Off *, Dwarf_Half *, 777 Dwarf_Half *, Dwarf_Half *, Dwarf_Sig8 *, Dwarf_Unsigned *, 778 Dwarf_Unsigned *, Dwarf_Half *, Dwarf_Error *); 779 int dwarf_next_types_section(Dwarf_Debug, Dwarf_Error *); 780 int dwarf_object_finish(Dwarf_Debug, Dwarf_Error *); 781 int dwarf_object_init(Dwarf_Obj_Access_Interface *, Dwarf_Handler, 782 Dwarf_Ptr, Dwarf_Debug *, Dwarf_Error *); 783 int dwarf_offdie(Dwarf_Debug, Dwarf_Off, Dwarf_Die *, 784 Dwarf_Error *); 785 int dwarf_offdie_b(Dwarf_Debug, Dwarf_Off, Dwarf_Bool, Dwarf_Die *, 786 Dwarf_Error *); 787 Dwarf_Unsigned dwarf_producer_finish(Dwarf_P_Debug, Dwarf_Error *); 788 Dwarf_P_Debug dwarf_producer_init(Dwarf_Unsigned, Dwarf_Callback_Func, 789 Dwarf_Handler, Dwarf_Ptr, Dwarf_Error *); 790 Dwarf_P_Debug dwarf_producer_init_b(Dwarf_Unsigned, Dwarf_Callback_Func_b, 791 Dwarf_Handler, Dwarf_Ptr, Dwarf_Error *); 792 int dwarf_producer_set_isa(Dwarf_P_Debug, enum Dwarf_ISA, 793 Dwarf_Error *); 794 int dwarf_pubtype_cu_offset(Dwarf_Type, Dwarf_Off *, Dwarf_Error *); 795 int dwarf_pubtype_die_offset(Dwarf_Type, Dwarf_Off *, 796 Dwarf_Error *); 797 int dwarf_pubtype_name_offsets(Dwarf_Type, char **, 798 Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); 799 int dwarf_pubtypename(Dwarf_Type, char **, Dwarf_Error *); 800 void dwarf_pubtypes_dealloc(Dwarf_Debug, Dwarf_Type *, Dwarf_Signed); 801 void dwarf_ranges_dealloc(Dwarf_Debug, Dwarf_Ranges *, Dwarf_Signed); 802 void dwarf_reset_section_bytes(Dwarf_P_Debug); 803 Dwarf_Half dwarf_set_frame_cfa_value(Dwarf_Debug, Dwarf_Half); 804 Dwarf_Half dwarf_set_frame_rule_initial_value(Dwarf_Debug, Dwarf_Half); 805 Dwarf_Half dwarf_set_frame_rule_table_size(Dwarf_Debug, Dwarf_Half); 806 Dwarf_Half dwarf_set_frame_same_value(Dwarf_Debug, Dwarf_Half); 807 Dwarf_Half dwarf_set_frame_undefined_value(Dwarf_Debug, Dwarf_Half); 808 int dwarf_set_reloc_application(int); 809 Dwarf_Ptr dwarf_seterrarg(Dwarf_Debug, Dwarf_Ptr); 810 Dwarf_Handler dwarf_seterrhand(Dwarf_Debug, Dwarf_Handler); 811 int dwarf_siblingof(Dwarf_Debug, Dwarf_Die, Dwarf_Die *, Dwarf_Error *); 812 int dwarf_siblingof_b(Dwarf_Debug, Dwarf_Die, Dwarf_Die *, Dwarf_Bool, 813 Dwarf_Error *); 814 int dwarf_srcfiles(Dwarf_Die, char ***, Dwarf_Signed *, Dwarf_Error *); 815 int dwarf_srclang(Dwarf_Die, Dwarf_Unsigned *, Dwarf_Error *); 816 int dwarf_srclines(Dwarf_Die, Dwarf_Line **, Dwarf_Signed *, 817 Dwarf_Error *); 818 void dwarf_srclines_dealloc(Dwarf_Debug, Dwarf_Line *, 819 Dwarf_Signed); 820 int dwarf_start_macro_file(Dwarf_P_Debug, Dwarf_Unsigned, 821 Dwarf_Unsigned, Dwarf_Error *); 822 int dwarf_tag(Dwarf_Die, Dwarf_Half *, Dwarf_Error *); 823 Dwarf_Signed dwarf_transform_to_disk_form(Dwarf_P_Debug, Dwarf_Error *); 824 int dwarf_type_cu_offset(Dwarf_Type, Dwarf_Off *, Dwarf_Error *); 825 int dwarf_type_die_offset(Dwarf_Type, Dwarf_Off *, Dwarf_Error *); 826 int dwarf_type_name_offsets(Dwarf_Type, char **, 827 Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); 828 int dwarf_typename(Dwarf_Type, char **, Dwarf_Error *); 829 void dwarf_types_dealloc(Dwarf_Debug, Dwarf_Type *, Dwarf_Signed); 830 int dwarf_undef_macro(Dwarf_P_Debug, Dwarf_Unsigned, char *, 831 Dwarf_Error *); 832 int dwarf_var_cu_offset(Dwarf_Var, Dwarf_Off *, Dwarf_Error *); 833 int dwarf_var_die_offset(Dwarf_Var, Dwarf_Off *, 834 Dwarf_Error *); 835 int dwarf_var_name_offsets(Dwarf_Var, char **, 836 Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); 837 int dwarf_varname(Dwarf_Var, char **, Dwarf_Error *); 838 void dwarf_vars_dealloc(Dwarf_Debug, Dwarf_Var *, Dwarf_Signed); 839 int dwarf_vendor_ext(Dwarf_P_Debug, Dwarf_Unsigned, char *, 840 Dwarf_Error *); 841 int dwarf_weak_cu_offset(Dwarf_Weak, Dwarf_Off *, Dwarf_Error *); 842 int dwarf_weak_die_offset(Dwarf_Weak, Dwarf_Off *, 843 Dwarf_Error *); 844 int dwarf_weak_name_offsets(Dwarf_Weak, char **, 845 Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); 846 int dwarf_weakname(Dwarf_Weak, char **, Dwarf_Error *); 847 void dwarf_weaks_dealloc(Dwarf_Debug, Dwarf_Weak *, Dwarf_Signed); 848 int dwarf_whatattr(Dwarf_Attribute, Dwarf_Half *, Dwarf_Error *); 849 int dwarf_whatform(Dwarf_Attribute, Dwarf_Half *, Dwarf_Error *); 850 int dwarf_whatform_direct(Dwarf_Attribute, Dwarf_Half *, 851 Dwarf_Error *); 852 #ifdef __cplusplus 853 } 854 #endif 855 856 #endif /* !_LIBDWARF_H_ */ 857