1 /* $NetBSD: libdwarf.h,v 1.2 2014/03/09 16:58:04 christos Exp $ */
4 * Copyright (c) 2007 John Birrell (jb@freebsd.org)
5 * Copyright (c) 2009-2011 Kai Wang
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
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.
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
29 * Id: libdwarf.h 2576 2012-09-13 09:16:11Z jkoshy
37 typedef int Dwarf_Bool
;
38 typedef off_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
;
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_CU
*Dwarf_CU
;
53 typedef struct _Dwarf_Cie
*Dwarf_Cie
;
54 typedef struct _Dwarf_Cie
*Dwarf_P_Cie
;
55 typedef struct _Dwarf_Debug
*Dwarf_Debug
;
56 typedef struct _Dwarf_Debug
*Dwarf_P_Debug
;
57 typedef struct _Dwarf_Die
*Dwarf_Die
;
58 typedef struct _Dwarf_Die
*Dwarf_P_Die
;
59 typedef struct _Dwarf_Fde
*Dwarf_Fde
;
60 typedef struct _Dwarf_Fde
*Dwarf_P_Fde
;
61 typedef struct _Dwarf_FrameSec
*Dwarf_FrameSec
;
62 typedef struct _Dwarf_Line
*Dwarf_Line
;
63 typedef struct _Dwarf_LineFile
*Dwarf_LineFile
;
64 typedef struct _Dwarf_LineInfo
*Dwarf_LineInfo
;
65 typedef struct _Dwarf_Loclist
*Dwarf_Loclist
;
66 typedef struct _Dwarf_MacroSet
*Dwarf_MacroSet
;
67 typedef struct _Dwarf_NamePair
*Dwarf_NamePair
;
68 typedef struct _Dwarf_NamePair
*Dwarf_Func
;
69 typedef struct _Dwarf_NamePair
*Dwarf_Global
;
70 typedef struct _Dwarf_NamePair
*Dwarf_Type
;
71 typedef struct _Dwarf_NamePair
*Dwarf_Var
;
72 typedef struct _Dwarf_NamePair
*Dwarf_Weak
;
73 typedef struct _Dwarf_NameTbl
*Dwarf_NameTbl
;
74 typedef struct _Dwarf_NameSec
*Dwarf_NameSec
;
75 typedef struct _Dwarf_P_Expr
*Dwarf_P_Expr
;
76 typedef struct _Dwarf_Rangelist
*Dwarf_Rangelist
;
87 } Dwarf_Obj_Access_Section
;
90 int (*get_section_info
)(void *_obj
, Dwarf_Half _index
,
91 Dwarf_Obj_Access_Section
*_ret_section
, int *_error
);
92 Dwarf_Endianness (*get_byte_order
)(void *_obj
);
93 Dwarf_Small (*get_length_size
)(void *_obj
);
94 Dwarf_Small (*get_pointer_size
)(void *_obj
);
95 Dwarf_Unsigned (*get_section_count
)(void *_obj
);
96 int (*load_section
)(void *_obj
, Dwarf_Half _index
,
97 Dwarf_Small
**_ret_data
, int *_error
);
98 } Dwarf_Obj_Access_Methods
;
102 const Dwarf_Obj_Access_Methods
*methods
;
103 } Dwarf_Obj_Access_Interface
;
105 typedef int (*Dwarf_Callback_Func
)(char *_name
, int _size
,
106 Dwarf_Unsigned _type
, Dwarf_Unsigned _flags
, Dwarf_Unsigned _link
,
107 Dwarf_Unsigned _info
, int *_index
, int *_error
);
109 typedef int (*Dwarf_Callback_Func_b
)(char *_name
, int _size
,
110 Dwarf_Unsigned _type
, Dwarf_Unsigned _flags
, Dwarf_Unsigned _link
,
111 Dwarf_Unsigned _info
, Dwarf_Unsigned
*_index
, int *_error
);
113 typedef Dwarf_Unsigned Dwarf_Tag
;
117 Dwarf_Unsigned lr_number
;
118 Dwarf_Unsigned lr_number2
;
119 Dwarf_Unsigned lr_offset
;
134 Dwarf_Unsigned bl_len
;
138 enum Dwarf_Ranges_Entry_Type
{
140 DW_RANGES_ADDRESS_SELECTION
,
145 Dwarf_Unsigned dwr_addr1
;
146 Dwarf_Unsigned dwr_addr2
;
147 enum Dwarf_Ranges_Entry_Type dwr_type
;
150 enum Dwarf_Form_Class
{
151 DW_FORM_CLASS_UNKNOWN
,
152 DW_FORM_CLASS_ADDRESS
,
154 DW_FORM_CLASS_CONSTANT
,
155 DW_FORM_CLASS_EXPRLOC
,
157 DW_FORM_CLASS_LINEPTR
,
158 DW_FORM_CLASS_LOCLISTPTR
,
159 DW_FORM_CLASS_MACPTR
,
160 DW_FORM_CLASS_RANGELISTPTR
,
161 DW_FORM_CLASS_REFERENCE
,
165 #ifndef DW_FRAME_HIGHEST_NORMAL_REGISTER
166 #define DW_FRAME_HIGHEST_NORMAL_REGISTER 63
169 #define DW_FRAME_RA_COL (DW_FRAME_HIGHEST_NORMAL_REGISTER + 1)
170 #define DW_FRAME_STATIC_LINK (DW_FRAME_HIGHEST_NORMAL_REGISTER + 2)
172 #ifndef DW_FRAME_LAST_REG_NUM
173 #define DW_FRAME_LAST_REG_NUM (DW_FRAME_HIGHEST_NORMAL_REGISTER + 3)
176 #ifndef DW_FRAME_REG_INITIAL_VALUE
177 #define DW_FRAME_REG_INITIAL_VALUE DW_FRAME_SAME_VAL
180 #define DW_FRAME_UNDEFINED_VAL 1034
181 #define DW_FRAME_SAME_VAL 1035
182 #define DW_FRAME_CFA_COL3 1436
184 #define DW_EXPR_OFFSET 0
185 #define DW_EXPR_VAL_OFFSET 1
186 #define DW_EXPR_EXPRESSION 2
187 #define DW_EXPR_VAL_EXPRESSION 3
190 * Frame operation only for DWARF 2.
193 #define DW_FRAME_CFA_COL 0
196 Dwarf_Small fp_base_op
;
197 Dwarf_Small fp_extended_op
;
198 Dwarf_Half fp_register
;
199 Dwarf_Signed fp_offset
;
200 Dwarf_Off fp_instr_offset
;
203 #ifndef DW_REG_TABLE_SIZE
204 #define DW_REG_TABLE_SIZE 66
209 Dwarf_Small dw_offset_relevant
;
210 Dwarf_Half dw_regnum
;
211 Dwarf_Addr dw_offset
;
212 } rules
[DW_REG_TABLE_SIZE
];
216 * Frame operation for DWARF 3 and DWARF 2.
220 Dwarf_Small fp_base_op
;
221 Dwarf_Small fp_extended_op
;
222 Dwarf_Half fp_register
;
223 Dwarf_Unsigned fp_offset_or_block_len
;
224 Dwarf_Small
*fp_expr_block
;
225 Dwarf_Off fp_instr_offset
;
229 Dwarf_Small dw_offset_relevant
;
230 Dwarf_Small dw_value_type
;
231 Dwarf_Half dw_regnum
;
232 Dwarf_Unsigned dw_offset_or_block_len
;
233 Dwarf_Ptr dw_block_ptr
;
234 } Dwarf_Regtable_Entry3
;
237 Dwarf_Regtable_Entry3 rt3_cfa_rule
;
238 Dwarf_Half rt3_reg_table_size
;
239 Dwarf_Regtable_Entry3
*rt3_rules
;
243 Dwarf_Off dmd_offset
;
244 Dwarf_Small dmd_type
;
245 Dwarf_Signed dmd_lineno
;
246 Dwarf_Signed dmd_fileindex
;
248 } Dwarf_Macro_Details
;
251 * Symbols denoting allocation types, for use with dwarf_dealloc(3).
254 enum Dwarf_Allocation_Type
{
289 enum Dwarf_Rel_Type
{
291 dwarf_drt_data_reloc
,
292 dwarf_drt_segment_rel
,
293 dwarf_drt_first_of_length_pair
,
294 dwarf_drt_second_of_length_pair
300 typedef struct Dwarf_Relocation_Data_s
{
301 unsigned char drd_type
;
302 unsigned char drd_length
;
303 Dwarf_Unsigned drd_offset
;
304 Dwarf_Unsigned drd_symbol_index
;
305 } *Dwarf_Relocation_Data
;
307 #define DWARF_DRD_BUFFER_VERSION 2
310 * Error numbers which are specific to this implementation.
313 DW_DLE_NONE
, /* No error. */
314 DW_DLE_ERROR
, /* An error! */
315 DW_DLE_ARGUMENT
, /* Invalid argument. */
316 DW_DLE_DEBUG_INFO_NULL
, /* Debug info NULL. */
317 DW_DLE_NO_ENTRY
, /* No entry. */
318 DW_DLE_MEMORY
, /* Insufficient memory. */
319 DW_DLE_ELF
, /* ELF error. */
320 DW_DLE_CU_LENGTH_ERROR
, /* Invalid compilation unit data. */
321 DW_DLE_VERSION_STAMP_ERROR
, /* Invalid version. */
322 DW_DLE_DEBUG_ABBREV_NULL
, /* Abbrev not found. */
323 DW_DLE_DIE_NO_CU_CONTEXT
, /* No current compilation unit. */
324 DW_DLE_LOC_EXPR_BAD
, /* Invalid location expression. */
325 DW_DLE_EXPR_LENGTH_BAD
, /* Invalid DWARF expression. */
326 DW_DLE_DEBUG_LOC_SECTION_SHORT
, /* Loclist section too short. */
327 DW_DLE_ATTR_FORM_BAD
, /* Invalid attribute form. */
328 DW_DLE_DEBUG_LINE_LENGTH_BAD
, /* Line info section too short. */
329 DW_DLE_LINE_FILE_NUM_BAD
, /* Invalid file number. */
330 DW_DLE_DIR_INDEX_BAD
, /* Invalid dir index. */
331 DW_DLE_DEBUG_FRAME_LENGTH_BAD
, /* Frame section too short. */
332 DW_DLE_NO_CIE_FOR_FDE
, /* CIE not found for certain FDE. */
333 DW_DLE_FRAME_AUGMENTATION_UNKNOWN
, /* Unknown CIE augmentation. */
334 DW_DLE_FRAME_INSTR_EXEC_ERROR
, /* Frame instruction exec error. */
335 DW_DLE_FRAME_VERSION_BAD
, /* Invalid frame section version. */
336 DW_DLE_FRAME_TABLE_COL_BAD
, /* Invalid table column. */
337 DW_DLE_DF_REG_NUM_TOO_HIGH
, /* Insufficient regtable space. */
338 DW_DLE_PC_NOT_IN_FDE_RANGE
, /* PC requested not in the FDE range. */
339 DW_DLE_ARANGE_OFFSET_BAD
, /* Invalid arange offset. */
340 DW_DLE_DEBUG_MACRO_INCONSISTENT
,/* Invalid macinfo data. */
341 DW_DLE_ELF_SECT_ERR
, /* Application callback failed. */
342 DW_DLE_NUM
/* Max error number. */
346 * Mapping of SGI libdwarf error codes for comptibility.
348 #define DW_DLE_DBG_ALLOC DW_DLE_MEMORY
349 #define DW_DLE_ALLOC_FAIL DW_DLE_MEMORY
350 #define DW_DLE_SECT_ALLOC DW_DLE_MEMORY
351 #define DW_DLE_FILE_ENTRY_ALLOC DW_DLE_MEMORY
352 #define DW_DLE_LINE_ALLOC DW_DLE_MEMORY
353 #define DW_DLE_FPGM_ALLOC DW_DLE_MEMORY
354 #define DW_DLE_INCDIR_ALLOC DW_DLE_MEMORY
355 #define DW_DLE_STRING_ALLOC DW_DLE_MEMORY
356 #define DW_DLE_CHUNK_ALLOC DW_DLE_MEMORY
357 #define DW_DLE_CIE_ALLOC DW_DLE_MEMORY
358 #define DW_DLE_FDE_ALLOC DW_DLE_MEMORY
359 #define DW_DLE_CIE_OFFS_ALLOC DW_DLE_MEMORY
360 #define DW_DLE_DIE_ALLOC DW_DLE_MEMORY
361 #define DW_DLE_ATTR_ALLOC DW_DLE_MEMORY
362 #define DW_DLE_ABBREV_ALLOC DW_DLE_MEMORY
363 #define DW_DLE_ADDR_ALLOC DW_DLE_MEMORY
364 #define DW_DLE_REL_ALLOC DW_DLE_MEMORY
365 #define DW_DLE_MACINFO_MALLOC_FAIL DW_DLE_MEMORY
366 #define DW_DLE_DEBUG_MACRO_MALLOC_SPACE DW_DLE_MEMORY
367 #define DW_DLE_DF_ALLOC_FAIL DW_DLE_MEMORY
368 #define DW_DLE_RELOC_SECTION_MALLOC_FAIL DW_DLE_MEMORY
369 #define DW_DLE_DBG_NULL DW_DLE_ARGUMENT
370 #define DW_DLE_DIE_NULL DW_DLE_ARGUMENT
371 #define DW_DLE_FDE_NULL DW_DLE_ARGUMENT
372 #define DW_DLE_CIE_NULL DW_DLE_ARGUMENT
373 #define DW_DLE_ATTR_NULL DW_DLE_ARGUMENT
374 #define DW_DLE_GLOBAL_NULL DW_DLE_ARGUMENT
375 #define DW_DLE_ARANGES_NULL DW_DLE_ARGUMENT
376 #define DW_DLE_ARANGE_NULL DW_DLE_ARGUMENT
377 #define DW_DLE_EXPR_NULL DW_DLE_ARGUMENT
378 #define DW_DLE_FUNC_NULL DW_DLE_ARGUMENT
379 #define DW_DLE_TYPE_NULL DW_DLE_ARGUMENT
380 #define DW_DLE_VAR_NULL DW_DLE_ARGUMENT
381 #define DW_DLE_WEAK_NULL DW_DLE_ARGUMENT
382 #define DW_DLE_ELF_BEGIN_ERROR DW_DLE_ELF
383 #define DW_DLE_ELF_GETEHDR_ERROR DW_DLE_ELF
384 #define DW_DLE_ELF_GETSHDR_ERROR DW_DLE_ELF
385 #define DW_DLE_ELF_STRPTR_ERROR DW_DLE_ELF
386 #define DW_DLE_ELF_SECT_ERROR DW_DLE_ELF
387 #define DW_DLE_ELF_GETIDENT_ERROR DW_DLE_ELF
389 typedef struct _Dwarf_Error
{
390 int err_error
; /* DWARF error. */
391 int err_elferror
; /* ELF error. */
392 const char *err_func
; /* Function name where error occurred. */
393 int err_line
; /* Line number where error occurred. */
394 char err_msg
[1024]; /* Formatted error message. */
398 * Dwarf error handler.
400 typedef void (*Dwarf_Handler
)(Dwarf_Error
, Dwarf_Ptr
);
402 #define dwarf_errno(error) error.err_error
403 #define dwarf_errmsg(error) dwarf_errmsg_(&error)
406 * Return values which have to be compatible with other
407 * implementations of libdwarf.
409 #define DW_DLV_NO_ENTRY -1
411 #define DW_DLV_ERROR 1
412 #define DW_DLV_BADADDR NULL
413 #define DW_DLV_NOCOUNT ((Dwarf_Signed) -1)
418 #define DW_DLC_READ 0x0001
419 #define DW_DLC_WRITE 0x0002
420 #define DW_DLC_RDWR 0x0004
423 * Flags used by libdwarf producer.
425 #define DW_DLC_SIZE_64 0x40000000
426 #define DW_DLC_SIZE_32 0x20000000
427 #define DW_DLC_OFFSET_SIZE_64 0x10000000
428 #define DW_DLC_ISA_MIPS 0x80000000
429 #define DW_DLC_ISA_IA64 0x01000000
430 #define DW_DLC_STREAM_RELOCATIONS 0x02000000
431 #define DW_DLC_SYMBOLIC_RELOCATIONS 0x04000000
432 #define DW_DLC_TARGET_BIGENDIAN 0x08000000
433 #define DW_DLC_TARGET_LITTLEENDIAN 0x00100000
436 * Instruction set architectures supported by this implementation.
449 /* Function prototype definitions. */
451 Dwarf_P_Attribute
dwarf_add_AT_comp_dir(Dwarf_P_Die
, char *, Dwarf_Error
*);
452 Dwarf_P_Attribute
dwarf_add_AT_const_value_signedint(Dwarf_P_Die
, Dwarf_Signed
,
454 Dwarf_P_Attribute
dwarf_add_AT_const_value_string(Dwarf_P_Die
, char *,
456 Dwarf_P_Attribute
dwarf_add_AT_const_value_unsignedint(Dwarf_P_Die
,
457 Dwarf_Unsigned
, Dwarf_Error
*);
458 Dwarf_P_Attribute
dwarf_add_AT_dataref(Dwarf_P_Debug
, Dwarf_P_Die
, Dwarf_Half
,
459 Dwarf_Unsigned
, Dwarf_Unsigned
, Dwarf_Error
*);
460 Dwarf_P_Attribute
dwarf_add_AT_flag(Dwarf_P_Debug
, Dwarf_P_Die
, Dwarf_Half
,
461 Dwarf_Small
, Dwarf_Error
*);
462 Dwarf_P_Attribute
dwarf_add_AT_location_expr(Dwarf_P_Debug
, Dwarf_P_Die
,
463 Dwarf_Half
, Dwarf_P_Expr
, Dwarf_Error
*);
464 Dwarf_P_Attribute
dwarf_add_AT_name(Dwarf_P_Die
, char *, Dwarf_Error
*);
465 Dwarf_P_Attribute
dwarf_add_AT_producer(Dwarf_P_Die
, char *, Dwarf_Error
*);
466 Dwarf_P_Attribute
dwarf_add_AT_ref_address(Dwarf_P_Debug
, Dwarf_P_Die
,
467 Dwarf_Half
, Dwarf_Unsigned
, Dwarf_Unsigned
, Dwarf_Error
*);
468 Dwarf_P_Attribute
dwarf_add_AT_reference(Dwarf_P_Debug
, Dwarf_P_Die
, Dwarf_Half
,
469 Dwarf_P_Die
, Dwarf_Error
*);
470 Dwarf_P_Attribute
dwarf_add_AT_signed_const(Dwarf_P_Debug
, Dwarf_P_Die
,
471 Dwarf_Half
, Dwarf_Signed
, Dwarf_Error
*);
472 Dwarf_P_Attribute
dwarf_add_AT_string(Dwarf_P_Debug
, Dwarf_P_Die
, Dwarf_Half
,
473 char *, Dwarf_Error
*);
474 Dwarf_P_Attribute
dwarf_add_AT_targ_address(Dwarf_P_Debug
, Dwarf_P_Die
,
475 Dwarf_Half
, Dwarf_Unsigned
, Dwarf_Signed
, Dwarf_Error
*);
476 Dwarf_P_Attribute
dwarf_add_AT_targ_address_b(Dwarf_P_Debug
, Dwarf_P_Die
,
477 Dwarf_Half
, Dwarf_Unsigned
, Dwarf_Unsigned
, Dwarf_Error
*);
478 Dwarf_P_Attribute
dwarf_add_AT_unsigned_const(Dwarf_P_Debug
, Dwarf_P_Die
,
479 Dwarf_Half
, Dwarf_Unsigned
, Dwarf_Error
*);
480 Dwarf_Unsigned
dwarf_add_arange(Dwarf_P_Debug
, Dwarf_Addr
, Dwarf_Unsigned
,
481 Dwarf_Signed
, Dwarf_Error
*);
482 Dwarf_Unsigned
dwarf_add_arange_b(Dwarf_P_Debug
, Dwarf_Addr
, Dwarf_Unsigned
,
483 Dwarf_Unsigned
, Dwarf_Unsigned
, Dwarf_Addr
, Dwarf_Error
*);
484 Dwarf_Unsigned
dwarf_add_die_to_debug(Dwarf_P_Debug
, Dwarf_P_Die
,
486 Dwarf_Unsigned
dwarf_add_directory_decl(Dwarf_P_Debug
, char *, Dwarf_Error
*);
487 Dwarf_Unsigned
dwarf_add_expr_addr(Dwarf_P_Expr
, Dwarf_Unsigned
,
488 Dwarf_Signed
, Dwarf_Error
*);
489 Dwarf_Unsigned
dwarf_add_expr_addr_b(Dwarf_P_Expr
, Dwarf_Unsigned
,
490 Dwarf_Unsigned
, Dwarf_Error
*);
491 Dwarf_Unsigned
dwarf_add_expr_gen(Dwarf_P_Expr
, Dwarf_Small
, Dwarf_Unsigned
,
492 Dwarf_Unsigned
, Dwarf_Error
*);
493 Dwarf_P_Fde
dwarf_add_fde_inst(Dwarf_P_Fde
, Dwarf_Small
, Dwarf_Unsigned
,
494 Dwarf_Unsigned
, Dwarf_Error
*);
495 Dwarf_Unsigned
dwarf_add_file_decl(Dwarf_P_Debug
, char *, Dwarf_Unsigned
,
496 Dwarf_Unsigned
, Dwarf_Unsigned
, Dwarf_Error
*);
497 Dwarf_Unsigned
dwarf_add_frame_cie(Dwarf_P_Debug
, char *, Dwarf_Small
,
498 Dwarf_Small
, Dwarf_Small
, Dwarf_Ptr
, Dwarf_Unsigned
,
500 Dwarf_Unsigned
dwarf_add_frame_fde(Dwarf_P_Debug
, Dwarf_P_Fde
, Dwarf_P_Die
,
501 Dwarf_Unsigned
, Dwarf_Addr
, Dwarf_Unsigned
, Dwarf_Unsigned
,
503 Dwarf_Unsigned
dwarf_add_frame_fde_b(Dwarf_P_Debug
, Dwarf_P_Fde
, Dwarf_P_Die
,
504 Dwarf_Unsigned
, Dwarf_Addr
, Dwarf_Unsigned
, Dwarf_Unsigned
,
505 Dwarf_Unsigned
, Dwarf_Addr
, Dwarf_Error
*);
506 Dwarf_Unsigned
dwarf_add_funcname(Dwarf_P_Debug
, Dwarf_P_Die
, char *,
508 Dwarf_Unsigned
dwarf_add_line_entry(Dwarf_P_Debug
, Dwarf_Unsigned
,
509 Dwarf_Addr
, Dwarf_Unsigned
, Dwarf_Signed
, Dwarf_Bool
,
510 Dwarf_Bool
, Dwarf_Error
*);
511 Dwarf_Unsigned
dwarf_add_pubname(Dwarf_P_Debug
, Dwarf_P_Die
, char *,
513 Dwarf_Unsigned
dwarf_add_typename(Dwarf_P_Debug
, Dwarf_P_Die
, char *,
515 Dwarf_Unsigned
dwarf_add_varname(Dwarf_P_Debug
, Dwarf_P_Die
, char *,
517 Dwarf_Unsigned
dwarf_add_weakname(Dwarf_P_Debug
, Dwarf_P_Die
, char *,
519 int dwarf_arrayorder(Dwarf_Die
, Dwarf_Unsigned
*, Dwarf_Error
*);
520 int dwarf_attr(Dwarf_Die
, Dwarf_Half
, Dwarf_Attribute
*,
522 int dwarf_attrlist(Dwarf_Die
, Dwarf_Attribute
**,
523 Dwarf_Signed
*, Dwarf_Error
*);
524 int dwarf_attrval_flag(Dwarf_Die
, Dwarf_Half
, Dwarf_Bool
*,
526 int dwarf_attrval_signed(Dwarf_Die
, Dwarf_Half
, Dwarf_Signed
*,
528 int dwarf_attrval_string(Dwarf_Die
, Dwarf_Half
, const char **,
530 int dwarf_attrval_unsigned(Dwarf_Die
, Dwarf_Half
, Dwarf_Unsigned
*,
532 int dwarf_bitoffset(Dwarf_Die
, Dwarf_Unsigned
*, Dwarf_Error
*);
533 int dwarf_bitsize(Dwarf_Die
, Dwarf_Unsigned
*, Dwarf_Error
*);
534 int dwarf_bytesize(Dwarf_Die
, Dwarf_Unsigned
*, Dwarf_Error
*);
535 int dwarf_child(Dwarf_Die
, Dwarf_Die
*, Dwarf_Error
*);
536 void dwarf_dealloc(Dwarf_Debug
, Dwarf_Ptr
, Dwarf_Unsigned
);
537 int dwarf_def_macro(Dwarf_P_Debug
, Dwarf_Unsigned
, char *, char *,
539 int dwarf_die_CU_offset(Dwarf_Die
, Dwarf_Off
*, Dwarf_Error
*);
540 int dwarf_die_CU_offset_range(Dwarf_Die
, Dwarf_Off
*, Dwarf_Off
*,
542 int dwarf_die_abbrev_code(Dwarf_Die
);
543 Dwarf_P_Die
dwarf_die_link(Dwarf_P_Die
, Dwarf_P_Die
, Dwarf_P_Die
,
544 Dwarf_P_Die
, Dwarf_P_Die
, Dwarf_Error
*);
545 int dwarf_diename(Dwarf_Die
, char **, Dwarf_Error
*);
546 int dwarf_dieoffset(Dwarf_Die
, Dwarf_Off
*, Dwarf_Error
*);
547 int dwarf_elf_init(Elf
*, int, Dwarf_Handler
, Dwarf_Ptr
,
548 Dwarf_Debug
*, Dwarf_Error
*);
549 int dwarf_end_macro_file(Dwarf_P_Debug
, Dwarf_Error
*);
550 const char *dwarf_errmsg_(Dwarf_Error
*);
551 int dwarf_expand_frame_instructions(Dwarf_Cie
, Dwarf_Ptr
,
552 Dwarf_Unsigned
, Dwarf_Frame_Op
**, Dwarf_Signed
*,
554 Dwarf_Unsigned
dwarf_expr_current_offset(Dwarf_P_Expr
, Dwarf_Error
*);
555 Dwarf_Addr
dwarf_expr_into_block(Dwarf_P_Expr
, Dwarf_Unsigned
*,
557 Dwarf_P_Fde
dwarf_fde_cfa_offset(Dwarf_P_Fde
, Dwarf_Unsigned
, Dwarf_Signed
,
559 void dwarf_fde_cie_list_dealloc(Dwarf_Debug
, Dwarf_Cie
*,
560 Dwarf_Signed
, Dwarf_Fde
*, Dwarf_Signed
);
561 char *dwarf_find_macro_value_start(char *);
562 int dwarf_finish(Dwarf_Debug
, Dwarf_Error
*);
563 int dwarf_formaddr(Dwarf_Attribute
, Dwarf_Addr
*, Dwarf_Error
*);
564 int dwarf_formblock(Dwarf_Attribute
, Dwarf_Block
**, Dwarf_Error
*);
565 int dwarf_formexprloc(Dwarf_Attribute
, Dwarf_Unsigned
*,
566 Dwarf_Ptr
*, Dwarf_Error
*);
567 int dwarf_formflag(Dwarf_Attribute
, Dwarf_Bool
*, Dwarf_Error
*);
568 int dwarf_formref(Dwarf_Attribute
, Dwarf_Off
*, Dwarf_Error
*);
569 int dwarf_formsdata(Dwarf_Attribute
, Dwarf_Signed
*, Dwarf_Error
*);
570 int dwarf_formsig8(Dwarf_Attribute
, Dwarf_Sig8
*, Dwarf_Error
*);
571 int dwarf_formstring(Dwarf_Attribute
, char **, Dwarf_Error
*);
572 int dwarf_formudata(Dwarf_Attribute
, Dwarf_Unsigned
*,
574 int dwarf_func_cu_offset(Dwarf_Func
, Dwarf_Off
*, Dwarf_Error
*);
575 int dwarf_func_die_offset(Dwarf_Func
, Dwarf_Off
*,
577 int dwarf_func_name_offsets(Dwarf_Func
, char **,
578 Dwarf_Off
*, Dwarf_Off
*, Dwarf_Error
*);
579 int dwarf_funcname(Dwarf_Func
, char **, Dwarf_Error
*);
580 void dwarf_funcs_dealloc(Dwarf_Debug
, Dwarf_Func
*, Dwarf_Signed
);
581 int dwarf_get_ACCESS_name(unsigned, const char **);
582 int dwarf_get_ATE_name(unsigned, const char **);
583 int dwarf_get_AT_name(unsigned, const char **);
584 int dwarf_get_CC_name(unsigned, const char **);
585 int dwarf_get_CFA_name(unsigned, const char **);
586 int dwarf_get_CHILDREN_name(unsigned, const char **);
587 int dwarf_get_DSC_name(unsigned, const char **);
588 int dwarf_get_DS_name(unsigned, const char **);
589 int dwarf_get_EH_name(unsigned, const char **);
590 int dwarf_get_END_name(unsigned, const char **);
591 int dwarf_get_FORM_name(unsigned, const char **);
592 int dwarf_get_ID_name(unsigned, const char **);
593 int dwarf_get_INL_name(unsigned, const char **);
594 int dwarf_get_LANG_name(unsigned, const char **);
595 int dwarf_get_LNE_name(unsigned, const char **);
596 int dwarf_get_LNS_name(unsigned, const char **);
597 int dwarf_get_MACINFO_name(unsigned, const char **);
598 int dwarf_get_OP_name(unsigned, const char **);
599 int dwarf_get_ORD_name(unsigned, const char **);
600 int dwarf_get_TAG_name(unsigned, const char **);
601 int dwarf_get_VIRTUALITY_name(unsigned, const char **);
602 int dwarf_get_VIS_name(unsigned, const char **);
603 int dwarf_get_abbrev(Dwarf_Debug
, Dwarf_Unsigned
, Dwarf_Abbrev
*,
604 Dwarf_Unsigned
*, Dwarf_Unsigned
*, Dwarf_Error
*);
605 int dwarf_get_abbrev_children_flag(Dwarf_Abbrev
, Dwarf_Signed
*,
607 int dwarf_get_abbrev_code(Dwarf_Abbrev
, Dwarf_Unsigned
*,
609 int dwarf_get_abbrev_entry(Dwarf_Abbrev
, Dwarf_Signed
, Dwarf_Half
*,
610 Dwarf_Signed
*, Dwarf_Off
*, Dwarf_Error
*);
611 int dwarf_get_abbrev_tag(Dwarf_Abbrev
, Dwarf_Half
*, Dwarf_Error
*);
612 int dwarf_get_address_size(Dwarf_Debug
, Dwarf_Half
*,
614 int dwarf_get_arange(Dwarf_Arange
*, Dwarf_Unsigned
, Dwarf_Addr
,
615 Dwarf_Arange
*, Dwarf_Error
*);
616 int dwarf_get_arange_cu_header_offset(Dwarf_Arange
, Dwarf_Off
*,
618 int dwarf_get_arange_info(Dwarf_Arange
, Dwarf_Addr
*,
619 Dwarf_Unsigned
*, Dwarf_Off
*, Dwarf_Error
*);
620 int dwarf_get_aranges(Dwarf_Debug
, Dwarf_Arange
**, Dwarf_Signed
*,
622 int dwarf_get_cie_index(Dwarf_Cie
, Dwarf_Signed
*, Dwarf_Error
*);
623 int dwarf_get_cie_info(Dwarf_Cie
, Dwarf_Unsigned
*, Dwarf_Small
*,
624 char **, Dwarf_Unsigned
*, Dwarf_Unsigned
*, Dwarf_Half
*,
625 Dwarf_Ptr
*, Dwarf_Unsigned
*, Dwarf_Error
*);
626 int dwarf_get_cie_of_fde(Dwarf_Fde
, Dwarf_Cie
*, Dwarf_Error
*);
627 int dwarf_get_cu_die_offset(Dwarf_Arange
, Dwarf_Off
*,
629 int dwarf_get_cu_die_offset_given_cu_header_offset(Dwarf_Debug
,
630 Dwarf_Off
, Dwarf_Off
*, Dwarf_Error
*);
631 int dwarf_get_elf(Dwarf_Debug
, Elf
**, Dwarf_Error
*);
632 int dwarf_get_fde_at_pc(Dwarf_Fde
*, Dwarf_Addr
, Dwarf_Fde
*,
633 Dwarf_Addr
*, Dwarf_Addr
*, Dwarf_Error
*);
634 int dwarf_get_fde_info_for_all_regs(Dwarf_Fde
, Dwarf_Addr
,
635 Dwarf_Regtable
*, Dwarf_Addr
*, Dwarf_Error
*);
636 int dwarf_get_fde_info_for_all_regs3(Dwarf_Fde
, Dwarf_Addr
,
637 Dwarf_Regtable3
*, Dwarf_Addr
*, Dwarf_Error
*);
638 int dwarf_get_fde_info_for_cfa_reg3(Dwarf_Fde
, Dwarf_Addr
,
639 Dwarf_Small
*, Dwarf_Signed
*, Dwarf_Signed
*, Dwarf_Signed
*,
640 Dwarf_Ptr
*, Dwarf_Addr
*, Dwarf_Error
*);
641 int dwarf_get_fde_info_for_reg(Dwarf_Fde
, Dwarf_Half
, Dwarf_Addr
,
642 Dwarf_Signed
*, Dwarf_Signed
*, Dwarf_Signed
*,
643 Dwarf_Addr
*, Dwarf_Error
*);
644 int dwarf_get_fde_info_for_reg3(Dwarf_Fde
, Dwarf_Half
, Dwarf_Addr
,
645 Dwarf_Small
*, Dwarf_Signed
*, Dwarf_Signed
*,
646 Dwarf_Signed
*, Dwarf_Ptr
*, Dwarf_Addr
*, Dwarf_Error
*);
647 int dwarf_get_fde_instr_bytes(Dwarf_Fde
, Dwarf_Ptr
*,
648 Dwarf_Unsigned
*, Dwarf_Error
*);
649 int dwarf_get_fde_list(Dwarf_Debug
, Dwarf_Cie
**, Dwarf_Signed
*,
650 Dwarf_Fde
**, Dwarf_Signed
*, Dwarf_Error
*);
651 int dwarf_get_fde_list_eh(Dwarf_Debug
, Dwarf_Cie
**, Dwarf_Signed
*,
652 Dwarf_Fde
**, Dwarf_Signed
*, Dwarf_Error
*);
653 int dwarf_get_fde_n(Dwarf_Fde
*, Dwarf_Unsigned
, Dwarf_Fde
*,
655 int dwarf_get_fde_range(Dwarf_Fde
, Dwarf_Addr
*, Dwarf_Unsigned
*,
656 Dwarf_Ptr
*, Dwarf_Unsigned
*, Dwarf_Off
*, Dwarf_Signed
*,
657 Dwarf_Off
*, Dwarf_Error
*);
658 enum Dwarf_Form_Class
dwarf_get_form_class(Dwarf_Half
, Dwarf_Half
, Dwarf_Half
,
660 int dwarf_get_funcs(Dwarf_Debug
, Dwarf_Func
**, Dwarf_Signed
*,
662 int dwarf_get_globals(Dwarf_Debug
, Dwarf_Global
**, Dwarf_Signed
*,
664 int dwarf_get_loclist_entry(Dwarf_Debug
, Dwarf_Unsigned
,
665 Dwarf_Addr
*, Dwarf_Addr
*, Dwarf_Ptr
*, Dwarf_Unsigned
*,
666 Dwarf_Unsigned
*, Dwarf_Error
*);
667 int dwarf_get_macro_details(Dwarf_Debug
, Dwarf_Off
, Dwarf_Unsigned
,
668 Dwarf_Signed
*, Dwarf_Macro_Details
**, Dwarf_Error
*);
669 int dwarf_get_pubtypes(Dwarf_Debug
, Dwarf_Type
**, Dwarf_Signed
*,
671 int dwarf_get_ranges(Dwarf_Debug
, Dwarf_Off
, Dwarf_Ranges
**,
672 Dwarf_Signed
*, Dwarf_Unsigned
*, Dwarf_Error
*);
673 int dwarf_get_ranges_a(Dwarf_Debug
, Dwarf_Off
, Dwarf_Die
,
674 Dwarf_Ranges
**, Dwarf_Signed
*, Dwarf_Unsigned
*,
676 int dwarf_get_relocation_info(Dwarf_P_Debug
, Dwarf_Signed
*,
677 Dwarf_Signed
*, Dwarf_Unsigned
*, Dwarf_Relocation_Data
*,
679 int dwarf_get_relocation_info_count(Dwarf_P_Debug
, Dwarf_Unsigned
*,
680 int *, Dwarf_Error
*);
681 Dwarf_Ptr
dwarf_get_section_bytes(Dwarf_P_Debug
, Dwarf_Signed
,
682 Dwarf_Signed
*, Dwarf_Unsigned
*, Dwarf_Error
*);
683 int dwarf_get_str(Dwarf_Debug
, Dwarf_Off
, char **, Dwarf_Signed
*,
685 int dwarf_get_types(Dwarf_Debug
, Dwarf_Type
**, Dwarf_Signed
*,
687 int dwarf_get_vars(Dwarf_Debug
, Dwarf_Var
**, Dwarf_Signed
*,
689 int dwarf_get_weaks(Dwarf_Debug
, Dwarf_Weak
**, Dwarf_Signed
*,
691 int dwarf_global_cu_offset(Dwarf_Global
, Dwarf_Off
*, Dwarf_Error
*);
692 int dwarf_global_die_offset(Dwarf_Global
, Dwarf_Off
*,
694 int dwarf_global_formref(Dwarf_Attribute
, Dwarf_Off
*,
696 int dwarf_global_name_offsets(Dwarf_Global
, char **,
697 Dwarf_Off
*, Dwarf_Off
*, Dwarf_Error
*);
698 void dwarf_globals_dealloc(Dwarf_Debug
, Dwarf_Global
*, Dwarf_Signed
);
699 int dwarf_globname(Dwarf_Global
, char **, Dwarf_Error
*);
700 int dwarf_hasattr(Dwarf_Die
, Dwarf_Half
, Dwarf_Bool
*,
702 int dwarf_hasform(Dwarf_Attribute
, Dwarf_Half
, Dwarf_Bool
*,
704 int dwarf_highpc(Dwarf_Die
, Dwarf_Addr
*, Dwarf_Error
*);
705 int dwarf_init(int, int, Dwarf_Handler
, Dwarf_Ptr
, Dwarf_Debug
*,
707 int dwarf_line_srcfileno(Dwarf_Line
, Dwarf_Unsigned
*,
709 int dwarf_lineaddr(Dwarf_Line
, Dwarf_Addr
*, Dwarf_Error
*);
710 int dwarf_linebeginstatement(Dwarf_Line
, Dwarf_Bool
*,
712 int dwarf_lineblock(Dwarf_Line
, Dwarf_Bool
*, Dwarf_Error
*);
713 int dwarf_lineendsequence(Dwarf_Line
, Dwarf_Bool
*, Dwarf_Error
*);
714 int dwarf_lineno(Dwarf_Line
, Dwarf_Unsigned
*, Dwarf_Error
*);
715 int dwarf_lineoff(Dwarf_Line
, Dwarf_Signed
*, Dwarf_Error
*);
716 int dwarf_linesrc(Dwarf_Line
, char **, Dwarf_Error
*);
717 Dwarf_Unsigned
dwarf_lne_end_sequence(Dwarf_P_Debug
, Dwarf_Addr
, Dwarf_Error
*);
718 Dwarf_Unsigned
dwarf_lne_set_address(Dwarf_P_Debug
, Dwarf_Addr
, Dwarf_Unsigned
,
720 int dwarf_loclist(Dwarf_Attribute
, Dwarf_Locdesc
**, Dwarf_Signed
*,
722 int dwarf_loclist_from_expr(Dwarf_Debug
, Dwarf_Ptr
, Dwarf_Unsigned
,
723 Dwarf_Locdesc
**, Dwarf_Signed
*, Dwarf_Error
*);
724 int dwarf_loclist_from_expr_a(Dwarf_Debug
, Dwarf_Ptr
,
725 Dwarf_Unsigned
, Dwarf_Half
, Dwarf_Locdesc
**,
726 Dwarf_Signed
*, Dwarf_Error
*);
727 int dwarf_loclist_n(Dwarf_Attribute
, Dwarf_Locdesc
***,
728 Dwarf_Signed
*, Dwarf_Error
*);
729 int dwarf_lowpc(Dwarf_Die
, Dwarf_Addr
*, Dwarf_Error
*);
730 Dwarf_P_Die
dwarf_new_die(Dwarf_P_Debug
, Dwarf_Tag
, Dwarf_P_Die
,
731 Dwarf_P_Die
, Dwarf_P_Die
, Dwarf_P_Die
, Dwarf_Error
*);
732 Dwarf_P_Expr
dwarf_new_expr(Dwarf_P_Debug
, Dwarf_Error
*);
733 Dwarf_P_Fde
dwarf_new_fde(Dwarf_P_Debug
, Dwarf_Error
*);
734 int dwarf_next_cu_header(Dwarf_Debug
, Dwarf_Unsigned
*,
735 Dwarf_Half
*, Dwarf_Off
*, Dwarf_Half
*,
736 Dwarf_Unsigned
*, Dwarf_Error
*);
737 int dwarf_next_cu_header_b(Dwarf_Debug
, Dwarf_Unsigned
*,
738 Dwarf_Half
*, Dwarf_Off
*, Dwarf_Half
*, Dwarf_Half
*,
739 Dwarf_Half
*, Dwarf_Unsigned
*, Dwarf_Error
*);
740 int dwarf_object_finish(Dwarf_Debug
, Dwarf_Error
*);
741 int dwarf_object_init(Dwarf_Obj_Access_Interface
*, Dwarf_Handler
,
742 Dwarf_Ptr
, Dwarf_Debug
*, Dwarf_Error
*);
743 int dwarf_offdie(Dwarf_Debug
, Dwarf_Off
, Dwarf_Die
*,
745 Dwarf_Unsigned
dwarf_producer_finish(Dwarf_P_Debug
, Dwarf_Error
*);
746 Dwarf_P_Debug
dwarf_producer_init(Dwarf_Unsigned
, Dwarf_Callback_Func
,
747 Dwarf_Handler
, Dwarf_Ptr
, Dwarf_Error
*);
748 Dwarf_P_Debug
dwarf_producer_init_b(Dwarf_Unsigned
, Dwarf_Callback_Func_b
,
749 Dwarf_Handler
, Dwarf_Ptr
, Dwarf_Error
*);
750 int dwarf_producer_set_isa(Dwarf_P_Debug
, enum Dwarf_ISA
,
752 int dwarf_pubtype_cu_offset(Dwarf_Type
, Dwarf_Off
*, Dwarf_Error
*);
753 int dwarf_pubtype_die_offset(Dwarf_Type
, Dwarf_Off
*,
755 int dwarf_pubtype_name_offsets(Dwarf_Type
, char **,
756 Dwarf_Off
*, Dwarf_Off
*, Dwarf_Error
*);
757 int dwarf_pubtypename(Dwarf_Type
, char **, Dwarf_Error
*);
758 void dwarf_pubtypes_dealloc(Dwarf_Debug
, Dwarf_Type
*, Dwarf_Signed
);
759 void dwarf_ranges_dealloc(Dwarf_Debug
, Dwarf_Ranges
*, Dwarf_Signed
);
760 void dwarf_reset_section_bytes(Dwarf_P_Debug
);
761 Dwarf_Half
dwarf_set_frame_cfa_value(Dwarf_Debug
, Dwarf_Half
);
762 Dwarf_Half
dwarf_set_frame_rule_initial_value(Dwarf_Debug
, Dwarf_Half
);
763 Dwarf_Half
dwarf_set_frame_rule_table_size(Dwarf_Debug
, Dwarf_Half
);
764 Dwarf_Half
dwarf_set_frame_same_value(Dwarf_Debug
, Dwarf_Half
);
765 Dwarf_Half
dwarf_set_frame_undefined_value(Dwarf_Debug
, Dwarf_Half
);
766 int dwarf_set_reloc_application(int);
767 Dwarf_Ptr
dwarf_seterrarg(Dwarf_Debug
, Dwarf_Ptr
);
768 Dwarf_Handler
dwarf_seterrhand(Dwarf_Debug
, Dwarf_Handler
);
769 int dwarf_siblingof(Dwarf_Debug
, Dwarf_Die
, Dwarf_Die
*, Dwarf_Error
*);
770 int dwarf_srcfiles(Dwarf_Die
, char ***, Dwarf_Signed
*, Dwarf_Error
*);
771 int dwarf_srclang(Dwarf_Die
, Dwarf_Unsigned
*, Dwarf_Error
*);
772 int dwarf_srclines(Dwarf_Die
, Dwarf_Line
**, Dwarf_Signed
*,
774 void dwarf_srclines_dealloc(Dwarf_Debug
, Dwarf_Line
*,
776 int dwarf_start_macro_file(Dwarf_P_Debug
, Dwarf_Unsigned
,
777 Dwarf_Unsigned
, Dwarf_Error
*);
778 int dwarf_tag(Dwarf_Die
, Dwarf_Half
*, Dwarf_Error
*);
779 Dwarf_Signed
dwarf_transform_to_disk_form(Dwarf_P_Debug
, Dwarf_Error
*);
780 int dwarf_type_cu_offset(Dwarf_Type
, Dwarf_Off
*, Dwarf_Error
*);
781 int dwarf_type_die_offset(Dwarf_Type
, Dwarf_Off
*, Dwarf_Error
*);
782 int dwarf_type_name_offsets(Dwarf_Type
, char **,
783 Dwarf_Off
*, Dwarf_Off
*, Dwarf_Error
*);
784 int dwarf_typename(Dwarf_Type
, char **, Dwarf_Error
*);
785 void dwarf_types_dealloc(Dwarf_Debug
, Dwarf_Type
*, Dwarf_Signed
);
786 int dwarf_undef_macro(Dwarf_P_Debug
, Dwarf_Unsigned
, char *,
788 int dwarf_var_cu_offset(Dwarf_Var
, Dwarf_Off
*, Dwarf_Error
*);
789 int dwarf_var_die_offset(Dwarf_Var
, Dwarf_Off
*,
791 int dwarf_var_name_offsets(Dwarf_Var
, char **,
792 Dwarf_Off
*, Dwarf_Off
*, Dwarf_Error
*);
793 int dwarf_varname(Dwarf_Var
, char **, Dwarf_Error
*);
794 void dwarf_vars_dealloc(Dwarf_Debug
, Dwarf_Var
*, Dwarf_Signed
);
795 int dwarf_vendor_ext(Dwarf_P_Debug
, Dwarf_Unsigned
, char *,
797 int dwarf_weak_cu_offset(Dwarf_Weak
, Dwarf_Off
*, Dwarf_Error
*);
798 int dwarf_weak_die_offset(Dwarf_Weak
, Dwarf_Off
*,
800 int dwarf_weak_name_offsets(Dwarf_Weak
, char **,
801 Dwarf_Off
*, Dwarf_Off
*, Dwarf_Error
*);
802 int dwarf_weakname(Dwarf_Weak
, char **, Dwarf_Error
*);
803 void dwarf_weaks_dealloc(Dwarf_Debug
, Dwarf_Weak
*, Dwarf_Signed
);
804 int dwarf_whatattr(Dwarf_Attribute
, Dwarf_Half
*, Dwarf_Error
*);
805 int dwarf_whatform(Dwarf_Attribute
, Dwarf_Half
*, Dwarf_Error
*);
806 int dwarf_whatform_direct(Dwarf_Attribute
, Dwarf_Half
*,
810 #endif /* !_LIBDWARF_H_ */