libdwarf
libdwarf.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2000-2010 Silicon Graphics, Inc. All Rights Reserved.
3  Portions Copyright 2007-2010 Sun Microsystems, Inc. All rights reserved.
4  Portions Copyright 2008-2022 David Anderson. All rights reserved.
5  Portions Copyright 2008-2010 Arxan Technologies, Inc. All rights reserved.
6  Portions Copyright 2010-2012 SN Systems Ltd. All rights reserved.
7 
8  This program is free software; you can redistribute it
9  and/or modify it under the terms of version 2.1 of the
10  GNU Lesser General Public License as published by the Free
11  Software Foundation.
12 
13  This program is distributed in the hope that it would be
14  useful, but WITHOUT ANY WARRANTY; without even the implied
15  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16  PURPOSE.
17 
18  Further, this software is distributed without any warranty
19  that it is free of the rightful claim of any third person
20  regarding infringement or the like. Any license provided
21  herein, whether implied or otherwise, applies only to this
22  software file. Patent licenses, if any, provided herein
23  do not apply to combinations of this program with other
24  software, or any other product whatsoever.
25 
26  You should have received a copy of the GNU Lesser General
27  Public License along with this program; if not, write the
28  Free Software Foundation, Inc., 51 Franklin Street - Fifth
29  Floor, Boston MA 02110-1301, USA.
30 
31 */
46 #ifndef _LIBDWARF_H
47 #define _LIBDWARF_H
48 
49 #ifdef DW_API
50 #undef DW_API
51 #endif /* DW_API */
52 
53 #if defined(_WIN32) || defined(__CYGWIN__)
54 # ifdef LIBDWARF_BUILD
55 # define DW_API __declspec(dllexport)
56 # else /* !LIBDWARF_BUILD */
57 # define DW_API __declspec(dllimport)
58 # endif /* LIBDWARF_BUILD */
59 #elif (defined(__SUNPRO_C) || defined(__SUNPRO_CC))
60 # if defined(PIC) || defined(__PIC__)
61 # define DW_API __global
62 # else /* !PIC __PIC__ */
63 # define DW_API
64 # endif /* PIC */
65 #elif (defined(__GNUC__) && __GNUC__ >= 4) || \
66  defined(__INTEL_COMPILER)
67 # if defined(PIC) || defined(__PIC__)
68 # define DW_API __attribute__ ((visibility("default")))
69 # else /* !PIC __PIC__ */
70 # define DW_API
71 # endif /* PIC */
72 #else /* !LIBDWARF_BUILD !SUPRO !GNUC */
73 # define DW_API
74 #endif /* _WIN32 || __CYGWIN__ */
75 
76 #ifdef __cplusplus
77 extern "C" {
78 #endif /* __cplusplus */
79 
80 /*
81  libdwarf.h
82  $Revision: #9 $ $Date: 2008/01/17 $
83 
84  For libdwarf consumers (reading DWARF2 and later)
85 
86  The interface is defined as having 8-byte signed and unsigned
87  values so it can handle 64-or-32bit target on 64-or-32bit host.
88  Dwarf_Ptr is the native size: it represents pointers on
89  the host machine (not the target!).
90 
91  This contains declarations for types and all producer
92  and consumer functions.
93 
94  Function declarations are written on a single line each here
95  so one can use grep to each declaration in its entirety.
96  The declarations are a little harder to read this way, but...
97 */
101 /* Semantic Version identity for this libdwarf.h */
102 #define DW_LIBDWARF_VERSION "0.4.1"
103 #define DW_LIBDWARF_VERSION_MAJOR 0
104 #define DW_LIBDWARF_VERSION_MINOR 4
105 #define DW_LIBDWARF_VERSION_MICRO 1
106 
107 #define DW_PATHSOURCE_unspecified 0
108 #define DW_PATHSOURCE_basic 1
109 #define DW_PATHSOURCE_dsym 2 /* MacOS dSYM */
110 #define DW_PATHSOURCE_debuglink 3 /* GNU debuglink */
111 
112 #ifndef DW_FTYPE_UNKNOWN
113 #define DW_FTYPE_UNKNOWN 0
114 #define DW_FTYPE_ELF 1 /* Unix/Linux/etc */
115 #define DW_FTYPE_MACH_O 2 /* MacOS. */
116 #define DW_FTYPE_PE 3 /* Windows */
117 #define DW_FTYPE_ARCHIVE 4 /* unix archive */
118 #endif /* DW_FTYPE_UNKNOWN */
119 /* standard return values for functions */
120 #define DW_DLV_NO_ENTRY -1
121 #define DW_DLV_OK 0
122 #define DW_DLV_ERROR 1
123 /* These support opening DWARF5 split dwarf objects and
124  Elf SHT_GROUP blocks of DWARF sections. */
125 #define DW_GROUPNUMBER_ANY 0
126 #define DW_GROUPNUMBER_BASE 1
127 #define DW_GROUPNUMBER_DWO 2
128 
129 /* Special values for offset_into_exception_table field
130  of dwarf fde's. */
131 /* The following value indicates that there is no
132  Exception table offset
133  associated with a dwarf frame. */
134 #define DW_DLX_NO_EH_OFFSET (-1LL)
135 /* The following value indicates that the producer
136  was unable to analyse the
137  source file to generate Exception tables for this function. */
138 #define DW_DLX_EH_OFFSET_UNAVAILABLE (-2LL)
139 
140 /* The augmenter string for CIE */
141 #define DW_CIE_AUGMENTER_STRING_V0 "z"
142 
143 /* FRAME special values */
144 /* The following 3 are assigned numbers, but
145  are only present at run time.
146  Must not conflict with DW_FRAME values in dwarf.h */
147 /* Taken as meaning 'undefined value', this is not
148  a column or register number. */
149 #ifndef DW_FRAME_UNDEFINED_VAL
150 #define DW_FRAME_UNDEFINED_VAL 12288
151 #endif
152 /* Taken as meaning 'same value' as caller had,
153  not a column or register number */
154 #ifndef DW_FRAME_SAME_VAL
155 #define DW_FRAME_SAME_VAL 12289
156 #endif
157 /* DW_FRAME_CFA_COL is assigned a virtual table position
158  but is accessed via CFA specific calls. */
159 #ifndef DW_FRAME_CFA_COL
160 #define DW_FRAME_CFA_COL 12290
161 #endif
162 #define DW_FRAME_CFA_COL3 DW_FRAME_CFA_COL /*compatibility name*/
163 /* END FRAME special values */
164 
165 /* dwarf_pcline function, slide arguments
166 */
167 #define DW_DLS_BACKWARD -1 /* slide backward to find line */
168 #define DW_DLS_NOSLIDE 0 /* match exactly without sliding */
169 #define DW_DLS_FORWARD 1 /* slide forward to find line */
170 
171 /* Defined larger than necessary.
172  struct Dwarf_Debug_Fission_Per_CU_s,
173  being visible, will be difficult to change:
174  binary compatibility. The count is for arrays
175  inside the struct, the struct itself is
176  a single struct. */
177 #define DW_FISSION_SECT_COUNT 12
178 
209 typedef unsigned long long Dwarf_Unsigned;
210 typedef signed long long Dwarf_Signed;
211 typedef unsigned long long Dwarf_Off;
212 typedef unsigned long long Dwarf_Addr;
213  /* Dwarf_Bool as int is wasteful, but for compatibility
214  it must stay as int, not unsigned char. */
215 typedef int Dwarf_Bool; /* boolean type */
216 typedef unsigned short Dwarf_Half; /* 2 byte unsigned value */
217 typedef unsigned char Dwarf_Small; /* 1 byte unsigned value */
218 /* If sizeof(Dwarf_Half) is greater than 2
219  we believe libdwarf still works properly. */
220 
221 typedef void* Dwarf_Ptr; /* host machine pointer */
237 enum Dwarf_Ranges_Entry_Type { DW_RANGES_ENTRY,
238  DW_RANGES_ADDRESS_SELECTION,
239  DW_RANGES_END
240 };
241 
273  DW_FORM_CLASS_UNKNOWN = 0,
274  DW_FORM_CLASS_ADDRESS = 1,
275  DW_FORM_CLASS_BLOCK = 2,
276  DW_FORM_CLASS_CONSTANT =3,
277  DW_FORM_CLASS_EXPRLOC = 4,
278  DW_FORM_CLASS_FLAG = 5,
279  DW_FORM_CLASS_LINEPTR = 6,
280  DW_FORM_CLASS_LOCLISTPTR=7, /* DWARF2,3,4 only */
281  DW_FORM_CLASS_MACPTR = 8, /* DWARF2,3,4 only */
282  DW_FORM_CLASS_RANGELISTPTR=9, /* DWARF2,3,4 only */
283  DW_FORM_CLASS_REFERENCE=10,
284  DW_FORM_CLASS_STRING = 11,
285  DW_FORM_CLASS_FRAMEPTR= 12, /* MIPS/IRIX DWARF2 only */
286  DW_FORM_CLASS_MACROPTR= 13, /* DWARF5 */
287  DW_FORM_CLASS_ADDRPTR = 14, /* DWARF5 */
288  DW_FORM_CLASS_LOCLIST = 15, /* DWARF5 */
289  DW_FORM_CLASS_LOCLISTSPTR=16, /* DWARF5 */
290  DW_FORM_CLASS_RNGLIST =17, /* DWARF5 */
291  DW_FORM_CLASS_RNGLISTSPTR=18, /* DWARF5 */
292  DW_FORM_CLASS_STROFFSETSPTR=19 /* DWARF5 */
293 };
305 typedef struct Dwarf_Form_Data16_s {
306  unsigned char fd_data[16];
308 
316 typedef struct Dwarf_Sig8_s {
317  char signature[8];
318 } Dwarf_Sig8;
319 
333 typedef struct Dwarf_Block_s {
334  Dwarf_Unsigned bl_len;
335  Dwarf_Ptr bl_data;
336  Dwarf_Small bl_from_loclist;
337  Dwarf_Unsigned bl_section_offset;
338 } Dwarf_Block;
339 
344 typedef struct Dwarf_Locdesc_c_s * Dwarf_Locdesc_c;
345 
350 typedef struct Dwarf_Loc_Head_c_s * Dwarf_Loc_Head_c;
351 
352 /* This provides access to data from sections
353  .debug_gnu_pubtypes or .debug_gnu_pubnames.
354  These are not standard DWARF, and can appear
355  with gcc -gdwarf-5
356  */
357 typedef struct Dwarf_Gnu_Index_Head_s * Dwarf_Gnu_Index_Head;
358 
363 typedef struct Dwarf_Dsc_Head_s * Dwarf_Dsc_Head;
364 
370 typedef struct Dwarf_Frame_Instr_Head_s * Dwarf_Frame_Instr_Head;
371 
378  (void * /*user_pointer*/, const char * /*linecontent*/);
379 
381  void * dp_user_pointer;
383  char * dp_buffer;
384  unsigned int dp_buffer_len;
385  int dp_buffer_user_provided;
386  void * dp_reserved;
387 };
388 
402 typedef struct Dwarf_Cmdline_Options_s {
403  Dwarf_Bool check_verbose_mode;
405 
412 typedef struct Dwarf_Str_Offsets_Table_s * Dwarf_Str_Offsets_Table;
413 
419 typedef struct Dwarf_Ranges_s {
420  Dwarf_Addr dwr_addr1;
421  Dwarf_Addr dwr_addr2;
422  enum Dwarf_Ranges_Entry_Type dwr_type;
423 } Dwarf_Ranges;
424 
496 typedef struct Dwarf_Regtable_Entry3_s {
497  Dwarf_Small dw_offset_relevant;
498  Dwarf_Small dw_value_type;
499  Dwarf_Half dw_regnum;
500  Dwarf_Unsigned dw_offset;
501  Dwarf_Unsigned dw_args_size; /* Not dealt with. */
502  Dwarf_Block dw_block;
504 
520 typedef struct Dwarf_Regtable3_s {
521  struct Dwarf_Regtable_Entry3_s rt3_cfa_rule;
522  Dwarf_Half rt3_reg_table_size;
523  struct Dwarf_Regtable_Entry3_s * rt3_rules;
525 
526 /* Opaque types for Consumer Library. */
531 typedef struct Dwarf_Error_s* Dwarf_Error;
532 
537 typedef struct Dwarf_Debug_s* Dwarf_Debug;
538 
542 typedef struct Dwarf_Die_s* Dwarf_Die;
543 
548 typedef struct Dwarf_Line_s* Dwarf_Line;
549 
554 typedef struct Dwarf_Global_s* Dwarf_Global;
555 
561 typedef struct Dwarf_Type_s* Dwarf_Type;
562 
563 /* The next three are SGI extensions not used elsewhere. */
564 typedef struct Dwarf_Func_s* Dwarf_Func;
565 typedef struct Dwarf_Var_s* Dwarf_Var;
566 typedef struct Dwarf_Weak_s* Dwarf_Weak;
567 
571 typedef struct Dwarf_Attribute_s* Dwarf_Attribute;
572 
578 typedef struct Dwarf_Abbrev_s* Dwarf_Abbrev;
579 
583 typedef struct Dwarf_Fde_s* Dwarf_Fde;
587 typedef struct Dwarf_Cie_s* Dwarf_Cie;
588 
593 typedef struct Dwarf_Arange_s* Dwarf_Arange;
598 typedef struct Dwarf_Gdbindex_s* Dwarf_Gdbindex;
604 typedef struct Dwarf_Xu_Index_Header_s *Dwarf_Xu_Index_Header;
608 typedef struct Dwarf_Line_Context_s *Dwarf_Line_Context;
609 
613 typedef struct Dwarf_Macro_Context_s *Dwarf_Macro_Context;
614 
619 typedef struct Dwarf_Dnames_Head_s *Dwarf_Dnames_Head;
620 
626 typedef void (*Dwarf_Handler)(Dwarf_Error dw_error,
627  Dwarf_Ptr dw_errarg);
628 
637  Dwarf_Off dmd_offset; /* offset, in the section,
638  of this macro info */
639  Dwarf_Small dmd_type; /* the type, DW_MACINFO_define etc*/
640  Dwarf_Signed dmd_lineno; /* the source line number where
641  applicable and vend_def number if
642  vendor_extension op */
643  Dwarf_Signed dmd_fileindex;/* the source file index */
644  char * dmd_macro; /* macro name string */
645 };
650 typedef struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head;
651 
653 typedef struct Dwarf_Debug_Fission_Per_CU_s
655 
656 /* ===== BEGIN Obj_Access data ===== */
664 
672 
681  const char* as_name;
682  Dwarf_Unsigned as_type;
683  Dwarf_Unsigned as_flags;
684  Dwarf_Addr as_addr;
685  Dwarf_Unsigned as_offset;
686  Dwarf_Unsigned as_size;
687  Dwarf_Unsigned as_link;
688  Dwarf_Unsigned as_info;
689  Dwarf_Unsigned as_addralign;
690  Dwarf_Unsigned as_entrysize;
691 };
692 
699  int (*om_get_section_info)(void* obj,
700  Dwarf_Half section_index,
701  Dwarf_Obj_Access_Section_a* return_section,
702  int * error);
703  Dwarf_Small (*om_get_byte_order)(void* obj);
704  Dwarf_Small (*om_get_length_size)(void* obj);
705  Dwarf_Small (*om_get_pointer_size)(void* obj);
706  Dwarf_Unsigned (*om_get_filesize)(void* obj);
707  Dwarf_Unsigned (*om_get_section_count)(void* obj);
708  int (*om_load_section)(void* obj,
709  Dwarf_Half section_index,
710  Dwarf_Small** return_data,
711  int * error);
712  int (*om_relocate_a_section)(void* obj,
713  Dwarf_Half section_index,
714  Dwarf_Debug dbg,
715  int * error);
716 };
718  void* ai_object;
719  const Dwarf_Obj_Access_Methods_a *ai_methods;
720 };
721 /* ===== END Obj_Access data ===== */
722 
723 /* User code must allocate this struct, zero it,
724  and pass a pointer to it
725  into dwarf_get_debugfission_for_cu . */
727  /* Do not free the string. It contains "cu" or "tu". */
728  /* If this is not set (ie, not a CU/TU in DWP Package File)
729  then pcu_type will be NULL. */
730  const char * pcu_type;
731  /* pcu_index is the index (range 1 to N )
732  into the tu/cu table of offsets and the table
733  of sizes. 1 to N as the zero index is reserved
734  for special purposes. Not a value one
735  actually needs. */
736  Dwarf_Unsigned pcu_index;
737  Dwarf_Sig8 pcu_hash; /* 8 byte */
738  /* [0] has offset and size 0.
739  [1]-[8] are DW_SECT_* indexes and the
740  values are the offset and size
741  of the respective section contribution
742  of a single .dwo object. When pcu_size[n] is
743  zero the corresponding section is not present. */
744  Dwarf_Unsigned pcu_offset[DW_FISSION_SECT_COUNT];
745  Dwarf_Unsigned pcu_size[DW_FISSION_SECT_COUNT];
746  Dwarf_Unsigned unused1;
747  Dwarf_Unsigned unused2;
748 };
749 
754 typedef struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head;
755 
761 /* Special values for offset_into_exception_table field
762  of dwarf fde's. */
763 /* The following value indicates that there is no
764  Exception table offset
765  associated with a dwarf frame. */
766 #define DW_DLX_NO_EH_OFFSET (-1LL)
767 /* The following value indicates that the producer
768  was unable to analyse the
769  source file to generate Exception tables for this function. */
770 #define DW_DLX_EH_OFFSET_UNAVAILABLE (-2LL)
771 
772 /* The augmenter string for CIE */
773 #define DW_CIE_AUGMENTER_STRING_V0 "z"
774 
775 /* ***IMPORTANT NOTE, TARGET DEPENDENCY ****
776  DW_REG_TABLE_SIZE must be at least as large as
777  the number of registers
778  DW_FRAME_LAST_REG_NUM as defined in dwarf.h
779 */
780 #ifndef DW_REG_TABLE_SIZE
781 #define DW_REG_TABLE_SIZE DW_FRAME_LAST_REG_NUM
782 #endif
783 
784 /* For MIPS, DW_FRAME_SAME_VAL is the correct default value
785  for a frame register value. For other CPUS another value
786  may be better, such as DW_FRAME_UNDEFINED_VAL.
787  See dwarf_set_frame_rule_table_size
788 */
789 #ifndef DW_FRAME_REG_INITIAL_VALUE
790 #define DW_FRAME_REG_INITIAL_VALUE DW_FRAME_SAME_VAL
791 #endif
792 
793 /* The following are all needed to evaluate DWARF3 register rules.
794  These have nothing to do simply printing
795  frame instructions.
796 */
797 #define DW_EXPR_OFFSET 0 /* offset is from CFA reg */
798 #define DW_EXPR_VAL_OFFSET 1
799 #define DW_EXPR_EXPRESSION 2
800 #define DW_EXPR_VAL_EXPRESSION 3
801 
811 #define DW_DLA_STRING 0x01 /* char* */
812 #define DW_DLA_LOC 0x02 /* Dwarf_Loc */
813 #define DW_DLA_LOCDESC 0x03 /* Dwarf_Locdesc */
814 #define DW_DLA_ELLIST 0x04 /* Dwarf_Ellist (not used)*/
815 #define DW_DLA_BOUNDS 0x05 /* Dwarf_Bounds (not used) */
816 #define DW_DLA_BLOCK 0x06 /* Dwarf_Block */
817 #define DW_DLA_DEBUG 0x07 /* Dwarf_Debug */
818 #define DW_DLA_DIE 0x08 /* Dwarf_Die */
819 #define DW_DLA_LINE 0x09 /* Dwarf_Line */
820 #define DW_DLA_ATTR 0x0a /* Dwarf_Attribute */
821 #define DW_DLA_TYPE 0x0b /* Dwarf_Type (not used) */
822 #define DW_DLA_SUBSCR 0x0c /* Dwarf_Subscr (not used) */
823 #define DW_DLA_GLOBAL 0x0d /* Dwarf_Global */
824 #define DW_DLA_ERROR 0x0e /* Dwarf_Error */
825 #define DW_DLA_LIST 0x0f /* a list */
826 #define DW_DLA_LINEBUF 0x10 /* Dwarf_Line* (not used) */
827 #define DW_DLA_ARANGE 0x11 /* Dwarf_Arange */
828 #define DW_DLA_ABBREV 0x12 /* Dwarf_Abbrev */
829 #define DW_DLA_FRAME_INSTR_HEAD 0x13 /* Dwarf_Frame_Instr_Head */
830 #define DW_DLA_CIE 0x14 /* Dwarf_Cie */
831 #define DW_DLA_FDE 0x15 /* Dwarf_Fde */
832 #define DW_DLA_LOC_BLOCK 0x16 /* Dwarf_Loc */
833 
834 #define DW_DLA_FRAME_OP 0x17 /* Dwarf_Frame_Op (not used) */
835 #define DW_DLA_FUNC 0x18 /* Dwarf_Func */
836 #define DW_DLA_TYPENAME 0x19 /* Dwarf_Type */
837 #define DW_DLA_VAR 0x1a /* Dwarf_Var */
838 #define DW_DLA_WEAK 0x1b /* Dwarf_Weak */
839 #define DW_DLA_ADDR 0x1c /* Dwarf_Addr sized entries */
840 #define DW_DLA_RANGES 0x1d /* Dwarf_Ranges */
841 /* 0x1e (30) to 0x34 (52) reserved for internal to libdwarf types. */
842 /* .debug_gnu_typenames/pubnames, 2020 */
843 #define DW_DLA_GNU_INDEX_HEAD 0x35
844 
845 #define DW_DLA_RNGLISTS_HEAD 0x36 /* .debug_rnglists DW5 */
846 #define DW_DLA_GDBINDEX 0x37 /* Dwarf_Gdbindex */
847 #define DW_DLA_XU_INDEX 0x38 /* Dwarf_Xu_Index_Header */
848 #define DW_DLA_LOC_BLOCK_C 0x39 /* Dwarf_Loc_c*/
849 #define DW_DLA_LOCDESC_C 0x3a /* Dwarf_Locdesc_c */
850 #define DW_DLA_LOC_HEAD_C 0x3b /* Dwarf_Loc_Head_c */
851 #define DW_DLA_MACRO_CONTEXT 0x3c /* Dwarf_Macro_Context */
852 /* 0x3d (61) is for libdwarf internal use. */
853 #define DW_DLA_DSC_HEAD 0x3e /* Dwarf_Dsc_Head */
854 #define DW_DLA_DNAMES_HEAD 0x3f /* Dwarf_Dnames_Head */
855 
856 /* struct Dwarf_Str_Offsets_Table_s */
857 #define DW_DLA_STR_OFFSETS 0x40
858 
869 /* libdwarf error numbers */
870 #define DW_DLE_NE 0 /* no error */
871 #define DW_DLE_VMM 1 /* dwarf format/library version mismatch */
872 #define DW_DLE_MAP 2 /* memory map failure */
873 #define DW_DLE_LEE 3 /* libelf error */
874 #define DW_DLE_NDS 4 /* no debug section */
875 #define DW_DLE_NLS 5 /* no line section */
876 #define DW_DLE_ID 6 /* invalid descriptor for query */
877 #define DW_DLE_IOF 7 /* I/O failure */
878 #define DW_DLE_MAF 8 /* memory allocation failure */
879 #define DW_DLE_IA 9 /* invalid argument */
880 #define DW_DLE_MDE 10 /* mangled debugging entry */
881 #define DW_DLE_MLE 11 /* mangled line number entry */
882 #define DW_DLE_FNO 12 /* file not open */
883 #define DW_DLE_FNR 13 /* file not a regular file */
884 #define DW_DLE_FWA 14 /* file open with wrong access */
885 #define DW_DLE_NOB 15 /* not an object file */
886 #define DW_DLE_MOF 16 /* mangled object file header */
887 #define DW_DLE_EOLL 17 /* end of location list entries */
888 #define DW_DLE_NOLL 18 /* no location list section */
889 #define DW_DLE_BADOFF 19 /* Invalid offset */
890 #define DW_DLE_EOS 20 /* end of section */
891 #define DW_DLE_ATRUNC 21 /* abbreviations section appears truncated*/
892 #define DW_DLE_BADBITC 22 /* Address size passed to dwarf bad,*/
893  /* It is not an allowed size (64 or 32) */
894  /* Error codes defined by the current Libdwarf Implementation. */
895 #define DW_DLE_DBG_ALLOC 23
896 #define DW_DLE_FSTAT_ERROR 24
897 #define DW_DLE_FSTAT_MODE_ERROR 25
898 #define DW_DLE_INIT_ACCESS_WRONG 26
899 #define DW_DLE_ELF_BEGIN_ERROR 27
900 #define DW_DLE_ELF_GETEHDR_ERROR 28
901 #define DW_DLE_ELF_GETSHDR_ERROR 29
902 #define DW_DLE_ELF_STRPTR_ERROR 30
903 #define DW_DLE_DEBUG_INFO_DUPLICATE 31
904 #define DW_DLE_DEBUG_INFO_NULL 32
905 #define DW_DLE_DEBUG_ABBREV_DUPLICATE 33
906 #define DW_DLE_DEBUG_ABBREV_NULL 34
907 #define DW_DLE_DEBUG_ARANGES_DUPLICATE 35
908 #define DW_DLE_DEBUG_ARANGES_NULL 36
909 #define DW_DLE_DEBUG_LINE_DUPLICATE 37
910 #define DW_DLE_DEBUG_LINE_NULL 38
911 #define DW_DLE_DEBUG_LOC_DUPLICATE 39
912 #define DW_DLE_DEBUG_LOC_NULL 40
913 #define DW_DLE_DEBUG_MACINFO_DUPLICATE 41
914 #define DW_DLE_DEBUG_MACINFO_NULL 42
915 #define DW_DLE_DEBUG_PUBNAMES_DUPLICATE 43
916 #define DW_DLE_DEBUG_PUBNAMES_NULL 44
917 #define DW_DLE_DEBUG_STR_DUPLICATE 45
918 #define DW_DLE_DEBUG_STR_NULL 46
919 #define DW_DLE_CU_LENGTH_ERROR 47
920 #define DW_DLE_VERSION_STAMP_ERROR 48
921 #define DW_DLE_ABBREV_OFFSET_ERROR 49
922 #define DW_DLE_ADDRESS_SIZE_ERROR 50
923 #define DW_DLE_DEBUG_INFO_PTR_NULL 51
924 #define DW_DLE_DIE_NULL 52
925 #define DW_DLE_STRING_OFFSET_BAD 53
926 #define DW_DLE_DEBUG_LINE_LENGTH_BAD 54
927 #define DW_DLE_LINE_PROLOG_LENGTH_BAD 55
928 #define DW_DLE_LINE_NUM_OPERANDS_BAD 56
929 #define DW_DLE_LINE_SET_ADDR_ERROR 57
930 #define DW_DLE_LINE_EXT_OPCODE_BAD 58
931 #define DW_DLE_DWARF_LINE_NULL 59
932 #define DW_DLE_INCL_DIR_NUM_BAD 60
933 #define DW_DLE_LINE_FILE_NUM_BAD 61
934 #define DW_DLE_ALLOC_FAIL 62
935 #define DW_DLE_NO_CALLBACK_FUNC 63
936 #define DW_DLE_SECT_ALLOC 64
937 #define DW_DLE_FILE_ENTRY_ALLOC 65
938 #define DW_DLE_LINE_ALLOC 66
939 #define DW_DLE_FPGM_ALLOC 67
940 #define DW_DLE_INCDIR_ALLOC 68
941 #define DW_DLE_STRING_ALLOC 69
942 #define DW_DLE_CHUNK_ALLOC 70
943 #define DW_DLE_BYTEOFF_ERR 71
944 #define DW_DLE_CIE_ALLOC 72
945 #define DW_DLE_FDE_ALLOC 73
946 #define DW_DLE_REGNO_OVFL 74
947 #define DW_DLE_CIE_OFFS_ALLOC 75
948 #define DW_DLE_WRONG_ADDRESS 76
949 #define DW_DLE_EXTRA_NEIGHBORS 77
950 #define DW_DLE_WRONG_TAG 78
951 #define DW_DLE_DIE_ALLOC 79
952 #define DW_DLE_PARENT_EXISTS 80
953 #define DW_DLE_DBG_NULL 81
954 #define DW_DLE_DEBUGLINE_ERROR 82
955 #define DW_DLE_DEBUGFRAME_ERROR 83
956 #define DW_DLE_DEBUGINFO_ERROR 84
957 #define DW_DLE_ATTR_ALLOC 85
958 #define DW_DLE_ABBREV_ALLOC 86
959 #define DW_DLE_OFFSET_UFLW 87
960 #define DW_DLE_ELF_SECT_ERR 88
961 #define DW_DLE_DEBUG_FRAME_LENGTH_BAD 89
962 #define DW_DLE_FRAME_VERSION_BAD 90
963 #define DW_DLE_CIE_RET_ADDR_REG_ERROR 91
964 #define DW_DLE_FDE_NULL 92
965 #define DW_DLE_FDE_DBG_NULL 93
966 #define DW_DLE_CIE_NULL 94
967 #define DW_DLE_CIE_DBG_NULL 95
968 #define DW_DLE_FRAME_TABLE_COL_BAD 96
969 #define DW_DLE_PC_NOT_IN_FDE_RANGE 97
970 #define DW_DLE_CIE_INSTR_EXEC_ERROR 98
971 #define DW_DLE_FRAME_INSTR_EXEC_ERROR 99
972 #define DW_DLE_FDE_PTR_NULL 100
973 #define DW_DLE_RET_OP_LIST_NULL 101
974 #define DW_DLE_LINE_CONTEXT_NULL 102
975 #define DW_DLE_DBG_NO_CU_CONTEXT 103
976 #define DW_DLE_DIE_NO_CU_CONTEXT 104
977 #define DW_DLE_FIRST_DIE_NOT_CU 105
978 #define DW_DLE_NEXT_DIE_PTR_NULL 106
979 #define DW_DLE_DEBUG_FRAME_DUPLICATE 107
980 #define DW_DLE_DEBUG_FRAME_NULL 108
981 #define DW_DLE_ABBREV_DECODE_ERROR 109
982 #define DW_DLE_DWARF_ABBREV_NULL 110
983 #define DW_DLE_ATTR_NULL 111
984 #define DW_DLE_DIE_BAD 112
985 #define DW_DLE_DIE_ABBREV_BAD 113
986 #define DW_DLE_ATTR_FORM_BAD 114
987 #define DW_DLE_ATTR_NO_CU_CONTEXT 115
988 #define DW_DLE_ATTR_FORM_SIZE_BAD 116
989 #define DW_DLE_ATTR_DBG_NULL 117
990 #define DW_DLE_BAD_REF_FORM 118
991 #define DW_DLE_ATTR_FORM_OFFSET_BAD 119
992 #define DW_DLE_LINE_OFFSET_BAD 120
993 #define DW_DLE_DEBUG_STR_OFFSET_BAD 121
994 #define DW_DLE_STRING_PTR_NULL 122
995 #define DW_DLE_PUBNAMES_VERSION_ERROR 123
996 #define DW_DLE_PUBNAMES_LENGTH_BAD 124
997 #define DW_DLE_GLOBAL_NULL 125
998 #define DW_DLE_GLOBAL_CONTEXT_NULL 126
999 #define DW_DLE_DIR_INDEX_BAD 127
1000 #define DW_DLE_LOC_EXPR_BAD 128
1001 #define DW_DLE_DIE_LOC_EXPR_BAD 129
1002 #define DW_DLE_ADDR_ALLOC 130
1003 #define DW_DLE_OFFSET_BAD 131
1004 #define DW_DLE_MAKE_CU_CONTEXT_FAIL 132
1005 #define DW_DLE_REL_ALLOC 133
1006 #define DW_DLE_ARANGE_OFFSET_BAD 134
1007 #define DW_DLE_SEGMENT_SIZE_BAD 135
1008 #define DW_DLE_ARANGE_LENGTH_BAD 136
1009 #define DW_DLE_ARANGE_DECODE_ERROR 137
1010 #define DW_DLE_ARANGES_NULL 138
1011 #define DW_DLE_ARANGE_NULL 139
1012 #define DW_DLE_NO_FILE_NAME 140
1013 #define DW_DLE_NO_COMP_DIR 141
1014 #define DW_DLE_CU_ADDRESS_SIZE_BAD 142
1015 #define DW_DLE_INPUT_ATTR_BAD 143
1016 #define DW_DLE_EXPR_NULL 144
1017 #define DW_DLE_BAD_EXPR_OPCODE 145
1018 #define DW_DLE_EXPR_LENGTH_BAD 146
1019 #define DW_DLE_MULTIPLE_RELOC_IN_EXPR 147
1020 #define DW_DLE_ELF_GETIDENT_ERROR 148
1021 #define DW_DLE_NO_AT_MIPS_FDE 149
1022 #define DW_DLE_NO_CIE_FOR_FDE 150
1023 #define DW_DLE_DIE_ABBREV_LIST_NULL 151
1024 #define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE 152
1025 #define DW_DLE_DEBUG_FUNCNAMES_NULL 153
1026 #define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR 154
1027 #define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD 155
1028 #define DW_DLE_FUNC_NULL 156
1029 #define DW_DLE_FUNC_CONTEXT_NULL 157
1030 #define DW_DLE_DEBUG_TYPENAMES_DUPLICATE 158
1031 #define DW_DLE_DEBUG_TYPENAMES_NULL 159
1032 #define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR 160
1033 #define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD 161
1034 #define DW_DLE_TYPE_NULL 162
1035 #define DW_DLE_TYPE_CONTEXT_NULL 163
1036 #define DW_DLE_DEBUG_VARNAMES_DUPLICATE 164
1037 #define DW_DLE_DEBUG_VARNAMES_NULL 165
1038 #define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR 166
1039 #define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD 167
1040 #define DW_DLE_VAR_NULL 168
1041 #define DW_DLE_VAR_CONTEXT_NULL 169
1042 #define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE 170
1043 #define DW_DLE_DEBUG_WEAKNAMES_NULL 171
1044 #define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR 172
1045 #define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD 173
1046 #define DW_DLE_WEAK_NULL 174
1047 #define DW_DLE_WEAK_CONTEXT_NULL 175
1048 #define DW_DLE_LOCDESC_COUNT_WRONG 176
1049 #define DW_DLE_MACINFO_STRING_NULL 177
1050 #define DW_DLE_MACINFO_STRING_EMPTY 178
1051 #define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE 179
1052 #define DW_DLE_MACINFO_MALLOC_FAIL 180
1053 #define DW_DLE_DEBUGMACINFO_ERROR 181
1054 #define DW_DLE_DEBUG_MACRO_LENGTH_BAD 182
1055 #define DW_DLE_DEBUG_MACRO_MAX_BAD 183
1056 #define DW_DLE_DEBUG_MACRO_INTERNAL_ERR 184
1057 #define DW_DLE_DEBUG_MACRO_MALLOC_SPACE 185
1058 #define DW_DLE_DEBUG_MACRO_INCONSISTENT 186
1059 #define DW_DLE_DF_NO_CIE_AUGMENTATION 187
1060 #define DW_DLE_DF_REG_NUM_TOO_HIGH 188
1061 #define DW_DLE_DF_MAKE_INSTR_NO_INIT 189
1062 #define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC 190
1063 #define DW_DLE_DF_POP_EMPTY_STACK 191
1064 #define DW_DLE_DF_ALLOC_FAIL 192
1065 #define DW_DLE_DF_FRAME_DECODING_ERROR 193
1066 #define DW_DLE_DEBUG_LOC_SECTION_SHORT 194
1067 #define DW_DLE_FRAME_AUGMENTATION_UNKNOWN 195
1068 #define DW_DLE_PUBTYPE_CONTEXT 196 /* Unused. */
1069 #define DW_DLE_DEBUG_PUBTYPES_LENGTH_BAD 197
1070 #define DW_DLE_DEBUG_PUBTYPES_VERSION_ERROR 198
1071 #define DW_DLE_DEBUG_PUBTYPES_DUPLICATE 199
1072 #define DW_DLE_FRAME_CIE_DECODE_ERROR 200
1073 #define DW_DLE_FRAME_REGISTER_UNREPRESENTABLE 201
1074 #define DW_DLE_FRAME_REGISTER_COUNT_MISMATCH 202
1075 #define DW_DLE_LINK_LOOP 203
1076 #define DW_DLE_STRP_OFFSET_BAD 204
1077 #define DW_DLE_DEBUG_RANGES_DUPLICATE 205
1078 #define DW_DLE_DEBUG_RANGES_OFFSET_BAD 206
1079 #define DW_DLE_DEBUG_RANGES_MISSING_END 207
1080 #define DW_DLE_DEBUG_RANGES_OUT_OF_MEM 208
1081 #define DW_DLE_DEBUG_SYMTAB_ERR 209
1082 #define DW_DLE_DEBUG_STRTAB_ERR 210
1083 #define DW_DLE_RELOC_MISMATCH_INDEX 211
1084 #define DW_DLE_RELOC_MISMATCH_RELOC_INDEX 212
1085 #define DW_DLE_RELOC_MISMATCH_STRTAB_INDEX 213
1086 #define DW_DLE_RELOC_SECTION_MISMATCH 214
1087 #define DW_DLE_RELOC_SECTION_MISSING_INDEX 215
1088 #define DW_DLE_RELOC_SECTION_LENGTH_ODD 216
1089 #define DW_DLE_RELOC_SECTION_PTR_NULL 217
1090 #define DW_DLE_RELOC_SECTION_MALLOC_FAIL 218
1091 #define DW_DLE_NO_ELF64_SUPPORT 219
1092 #define DW_DLE_MISSING_ELF64_SUPPORT 220
1093 #define DW_DLE_ORPHAN_FDE 221
1094 #define DW_DLE_DUPLICATE_INST_BLOCK 222
1095 #define DW_DLE_BAD_REF_SIG8_FORM 223
1096 #define DW_DLE_ATTR_EXPRLOC_FORM_BAD 224
1097 #define DW_DLE_FORM_SEC_OFFSET_LENGTH_BAD 225
1098 #define DW_DLE_NOT_REF_FORM 226
1099 #define DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE 227
1100 #define DW_DLE_REF_SIG8_NOT_HANDLED 228
1101 #define DW_DLE_DEBUG_FRAME_POSSIBLE_ADDRESS_BOTCH 229
1102 #define DW_DLE_LOC_BAD_TERMINATION 230
1103 #define DW_DLE_SYMTAB_SECTION_LENGTH_ODD 231
1104 #define DW_DLE_RELOC_SECTION_SYMBOL_INDEX_BAD 232
1105 #define DW_DLE_RELOC_SECTION_RELOC_TARGET_SIZE_UNKNOWN 233
1106 #define DW_DLE_SYMTAB_SECTION_ENTRYSIZE_ZERO 234
1107 #define DW_DLE_LINE_NUMBER_HEADER_ERROR 235
1108 #define DW_DLE_DEBUG_TYPES_NULL 236
1109 #define DW_DLE_DEBUG_TYPES_DUPLICATE 237
1110 #define DW_DLE_DEBUG_TYPES_ONLY_DWARF4 238
1111 #define DW_DLE_DEBUG_TYPEOFFSET_BAD 239
1112 #define DW_DLE_GNU_OPCODE_ERROR 240
1113 #define DW_DLE_DEBUGPUBTYPES_ERROR 241
1114 #define DW_DLE_AT_FIXUP_NULL 242
1115 #define DW_DLE_AT_FIXUP_DUP 243
1116 #define DW_DLE_BAD_ABINAME 244
1117 #define DW_DLE_TOO_MANY_DEBUG 245
1118 #define DW_DLE_DEBUG_STR_OFFSETS_DUPLICATE 246
1119 #define DW_DLE_SECTION_DUPLICATION 247
1120 #define DW_DLE_SECTION_ERROR 248
1121 #define DW_DLE_DEBUG_ADDR_DUPLICATE 249
1122 #define DW_DLE_DEBUG_CU_UNAVAILABLE_FOR_FORM 250
1123 #define DW_DLE_DEBUG_FORM_HANDLING_INCOMPLETE 251
1124 #define DW_DLE_NEXT_DIE_PAST_END 252
1125 #define DW_DLE_NEXT_DIE_WRONG_FORM 253
1126 #define DW_DLE_NEXT_DIE_NO_ABBREV_LIST 254
1127 #define DW_DLE_NESTED_FORM_INDIRECT_ERROR 255
1128 #define DW_DLE_CU_DIE_NO_ABBREV_LIST 256
1129 #define DW_DLE_MISSING_NEEDED_DEBUG_ADDR_SECTION 257
1130 #define DW_DLE_ATTR_FORM_NOT_ADDR_INDEX 258
1131 #define DW_DLE_ATTR_FORM_NOT_STR_INDEX 259
1132 #define DW_DLE_DUPLICATE_GDB_INDEX 260
1133 #define DW_DLE_ERRONEOUS_GDB_INDEX_SECTION 261
1134 #define DW_DLE_GDB_INDEX_COUNT_ERROR 262
1135 #define DW_DLE_GDB_INDEX_COUNT_ADDR_ERROR 263
1136 #define DW_DLE_GDB_INDEX_INDEX_ERROR 264
1137 #define DW_DLE_GDB_INDEX_CUVEC_ERROR 265
1138 #define DW_DLE_DUPLICATE_CU_INDEX 266
1139 #define DW_DLE_DUPLICATE_TU_INDEX 267
1140 #define DW_DLE_XU_TYPE_ARG_ERROR 268
1141 #define DW_DLE_XU_IMPOSSIBLE_ERROR 269
1142 #define DW_DLE_XU_NAME_COL_ERROR 270
1143 #define DW_DLE_XU_HASH_ROW_ERROR 271
1144 #define DW_DLE_XU_HASH_INDEX_ERROR 272
1145 /* ..._FAILSAFE_ERRVAL is an aid when out of memory. */
1146 #define DW_DLE_FAILSAFE_ERRVAL 273
1147 #define DW_DLE_ARANGE_ERROR 274
1148 #define DW_DLE_PUBNAMES_ERROR 275
1149 #define DW_DLE_FUNCNAMES_ERROR 276
1150 #define DW_DLE_TYPENAMES_ERROR 277
1151 #define DW_DLE_VARNAMES_ERROR 278
1152 #define DW_DLE_WEAKNAMES_ERROR 279
1153 #define DW_DLE_RELOCS_ERROR 280
1154 #define DW_DLE_ATTR_OUTSIDE_SECTION 281
1155 #define DW_DLE_FISSION_INDEX_WRONG 282
1156 #define DW_DLE_FISSION_VERSION_ERROR 283
1157 #define DW_DLE_NEXT_DIE_LOW_ERROR 284
1158 #define DW_DLE_CU_UT_TYPE_ERROR 285
1159 #define DW_DLE_NO_SUCH_SIGNATURE_FOUND 286
1160 #define DW_DLE_SIGNATURE_SECTION_NUMBER_WRONG 287
1161 #define DW_DLE_ATTR_FORM_NOT_DATA8 288
1162 #define DW_DLE_SIG_TYPE_WRONG_STRING 289
1163 #define DW_DLE_MISSING_REQUIRED_TU_OFFSET_HASH 290
1164 #define DW_DLE_MISSING_REQUIRED_CU_OFFSET_HASH 291
1165 #define DW_DLE_DWP_MISSING_DWO_ID 292
1166 #define DW_DLE_DWP_SIBLING_ERROR 293
1167 #define DW_DLE_DEBUG_FISSION_INCOMPLETE 294
1168 #define DW_DLE_FISSION_SECNUM_ERR 295
1169 #define DW_DLE_DEBUG_MACRO_DUPLICATE 296
1170 #define DW_DLE_DEBUG_NAMES_DUPLICATE 297
1171 #define DW_DLE_DEBUG_LINE_STR_DUPLICATE 298
1172 #define DW_DLE_DEBUG_SUP_DUPLICATE 299
1173 #define DW_DLE_NO_SIGNATURE_TO_LOOKUP 300
1174 #define DW_DLE_NO_TIED_ADDR_AVAILABLE 301
1175 #define DW_DLE_NO_TIED_SIG_AVAILABLE 302
1176 #define DW_DLE_STRING_NOT_TERMINATED 303
1177 #define DW_DLE_BAD_LINE_TABLE_OPERATION 304
1178 #define DW_DLE_LINE_CONTEXT_BOTCH 305
1179 #define DW_DLE_LINE_CONTEXT_INDEX_WRONG 306
1180 #define DW_DLE_NO_TIED_STRING_AVAILABLE 307
1181 #define DW_DLE_NO_TIED_FILE_AVAILABLE 308
1182 #define DW_DLE_CU_TYPE_MISSING 309
1183 #define DW_DLE_LLE_CODE_UNKNOWN 310
1184 #define DW_DLE_LOCLIST_INTERFACE_ERROR 311
1185 #define DW_DLE_LOCLIST_INDEX_ERROR 312
1186 #define DW_DLE_INTERFACE_NOT_SUPPORTED 313
1187 #define DW_DLE_ZDEBUG_REQUIRES_ZLIB 314
1188 #define DW_DLE_ZDEBUG_INPUT_FORMAT_ODD 315
1189 #define DW_DLE_ZLIB_BUF_ERROR 316
1190 #define DW_DLE_ZLIB_DATA_ERROR 317
1191 #define DW_DLE_MACRO_OFFSET_BAD 318
1192 #define DW_DLE_MACRO_OPCODE_BAD 319
1193 #define DW_DLE_MACRO_OPCODE_FORM_BAD 320
1194 #define DW_DLE_UNKNOWN_FORM 321
1195 #define DW_DLE_BAD_MACRO_HEADER_POINTER 322
1196 #define DW_DLE_BAD_MACRO_INDEX 323
1197 #define DW_DLE_MACRO_OP_UNHANDLED 324
1198 #define DW_DLE_MACRO_PAST_END 325
1199 #define DW_DLE_LINE_STRP_OFFSET_BAD 326
1200 #define DW_DLE_STRING_FORM_IMPROPER 327
1201 #define DW_DLE_ELF_FLAGS_NOT_AVAILABLE 328
1202 #define DW_DLE_LEB_IMPROPER 329
1203 #define DW_DLE_DEBUG_LINE_RANGE_ZERO 330
1204 #define DW_DLE_READ_LITTLEENDIAN_ERROR 331
1205 #define DW_DLE_READ_BIGENDIAN_ERROR 332
1206 #define DW_DLE_RELOC_INVALID 333
1207 #define DW_DLE_INFO_HEADER_ERROR 334
1208 #define DW_DLE_ARANGES_HEADER_ERROR 335
1209 #define DW_DLE_LINE_OFFSET_WRONG_FORM 336
1210 #define DW_DLE_FORM_BLOCK_LENGTH_ERROR 337
1211 #define DW_DLE_ZLIB_SECTION_SHORT 338
1212 #define DW_DLE_CIE_INSTR_PTR_ERROR 339
1213 #define DW_DLE_FDE_INSTR_PTR_ERROR 340
1214 #define DW_DLE_FISSION_ADDITION_ERROR 341
1215 #define DW_DLE_HEADER_LEN_BIGGER_THAN_SECSIZE 342
1216 #define DW_DLE_LOCEXPR_OFF_SECTION_END 343
1217 #define DW_DLE_POINTER_SECTION_UNKNOWN 344
1218 #define DW_DLE_ERRONEOUS_XU_INDEX_SECTION 345
1219 #define DW_DLE_DIRECTORY_FORMAT_COUNT_VS_DIRECTORIES_MISMATCH 346
1220 #define DW_DLE_COMPRESSED_EMPTY_SECTION 347
1221 #define DW_DLE_SIZE_WRAPAROUND 348
1222 #define DW_DLE_ILLOGICAL_TSEARCH 349
1223 #define DW_DLE_BAD_STRING_FORM 350
1224 #define DW_DLE_DEBUGSTR_ERROR 351
1225 #define DW_DLE_DEBUGSTR_UNEXPECTED_REL 352
1226 #define DW_DLE_DISCR_ARRAY_ERROR 353
1227 #define DW_DLE_LEB_OUT_ERROR 354
1228 #define DW_DLE_SIBLING_LIST_IMPROPER 355
1229 #define DW_DLE_LOCLIST_OFFSET_BAD 356
1230 #define DW_DLE_LINE_TABLE_BAD 357
1231 #define DW_DLE_DEBUG_LOClISTS_DUPLICATE 358
1232 #define DW_DLE_DEBUG_RNGLISTS_DUPLICATE 359
1233 #define DW_DLE_ABBREV_OFF_END 360
1234 #define DW_DLE_FORM_STRING_BAD_STRING 361
1235 #define DW_DLE_AUGMENTATION_STRING_OFF_END 362
1236 #define DW_DLE_STRING_OFF_END_PUBNAMES_LIKE 363
1237 #define DW_DLE_LINE_STRING_BAD 364
1238 #define DW_DLE_DEFINE_FILE_STRING_BAD 365
1239 #define DW_DLE_MACRO_STRING_BAD 366
1240 #define DW_DLE_MACINFO_STRING_BAD 367
1241 #define DW_DLE_ZLIB_UNCOMPRESS_ERROR 368
1242 #define DW_DLE_IMPROPER_DWO_ID 369
1243 #define DW_DLE_GROUPNUMBER_ERROR 370
1244 #define DW_DLE_ADDRESS_SIZE_ZERO 371
1245 #define DW_DLE_DEBUG_NAMES_HEADER_ERROR 372
1246 #define DW_DLE_DEBUG_NAMES_AUG_STRING_ERROR 373
1247 #define DW_DLE_DEBUG_NAMES_PAD_NON_ZERO 374
1248 #define DW_DLE_DEBUG_NAMES_OFF_END 375
1249 #define DW_DLE_DEBUG_NAMES_ABBREV_OVERFLOW 376
1250 #define DW_DLE_DEBUG_NAMES_ABBREV_CORRUPTION 377
1251 #define DW_DLE_DEBUG_NAMES_NULL_POINTER 378
1252 #define DW_DLE_DEBUG_NAMES_BAD_INDEX_ARG 379
1253 #define DW_DLE_DEBUG_NAMES_ENTRYPOOL_OFFSET 380
1254 #define DW_DLE_DEBUG_NAMES_UNHANDLED_FORM 381
1255 #define DW_DLE_LNCT_CODE_UNKNOWN 382
1256 #define DW_DLE_LNCT_FORM_CODE_NOT_HANDLED 383
1257 #define DW_DLE_LINE_HEADER_LENGTH_BOTCH 384
1258 #define DW_DLE_STRING_HASHTAB_IDENTITY_ERROR 385
1259 #define DW_DLE_UNIT_TYPE_NOT_HANDLED 386
1260 #define DW_DLE_GROUP_MAP_ALLOC 387
1261 #define DW_DLE_GROUP_MAP_DUPLICATE 388
1262 #define DW_DLE_GROUP_COUNT_ERROR 389
1263 #define DW_DLE_GROUP_INTERNAL_ERROR 390
1264 #define DW_DLE_GROUP_LOAD_ERROR 391
1265 #define DW_DLE_GROUP_LOAD_READ_ERROR 392
1266 #define DW_DLE_AUG_DATA_LENGTH_BAD 393
1267 #define DW_DLE_ABBREV_MISSING 394
1268 #define DW_DLE_NO_TAG_FOR_DIE 395
1269 #define DW_DLE_LOWPC_WRONG_CLASS 396
1270 #define DW_DLE_HIGHPC_WRONG_FORM 397
1271 #define DW_DLE_STR_OFFSETS_BASE_WRONG_FORM 398
1272 #define DW_DLE_DATA16_OUTSIDE_SECTION 399
1273 #define DW_DLE_LNCT_MD5_WRONG_FORM 400
1274 #define DW_DLE_LINE_HEADER_CORRUPT 401
1275 #define DW_DLE_STR_OFFSETS_NULLARGUMENT 402
1276 #define DW_DLE_STR_OFFSETS_NULL_DBG 403
1277 #define DW_DLE_STR_OFFSETS_NO_MAGIC 404
1278 #define DW_DLE_STR_OFFSETS_ARRAY_SIZE 405
1279 #define DW_DLE_STR_OFFSETS_VERSION_WRONG 406
1280 #define DW_DLE_STR_OFFSETS_ARRAY_INDEX_WRONG 407
1281 #define DW_DLE_STR_OFFSETS_EXTRA_BYTES 408
1282 #define DW_DLE_DUP_ATTR_ON_DIE 409
1283 #define DW_DLE_SECTION_NAME_BIG 410
1284 #define DW_DLE_FILE_UNAVAILABLE 411
1285 #define DW_DLE_FILE_WRONG_TYPE 412
1286 #define DW_DLE_SIBLING_OFFSET_WRONG 413
1287 #define DW_DLE_OPEN_FAIL 414
1288 #define DW_DLE_OFFSET_SIZE 415
1289 #define DW_DLE_MACH_O_SEGOFFSET_BAD 416
1290 #define DW_DLE_FILE_OFFSET_BAD 417
1291 #define DW_DLE_SEEK_ERROR 418
1292 #define DW_DLE_READ_ERROR 419
1293 #define DW_DLE_ELF_CLASS_BAD 420
1294 #define DW_DLE_ELF_ENDIAN_BAD 421
1295 #define DW_DLE_ELF_VERSION_BAD 422
1296 #define DW_DLE_FILE_TOO_SMALL 423
1297 #define DW_DLE_PATH_SIZE_TOO_SMALL 424
1298 #define DW_DLE_BAD_TYPE_SIZE 425
1299 #define DW_DLE_PE_SIZE_SMALL 426
1300 #define DW_DLE_PE_OFFSET_BAD 427
1301 #define DW_DLE_PE_STRING_TOO_LONG 428
1302 #define DW_DLE_IMAGE_FILE_UNKNOWN_TYPE 429
1303 #define DW_DLE_LINE_TABLE_LINENO_ERROR 430
1304 #define DW_DLE_PRODUCER_CODE_NOT_AVAILABLE 431
1305 #define DW_DLE_NO_ELF_SUPPORT 432
1306 #define DW_DLE_NO_STREAM_RELOC_SUPPORT 433
1307 #define DW_DLE_RETURN_EMPTY_PUBNAMES_ERROR 434
1308 #define DW_DLE_SECTION_SIZE_ERROR 435
1309 #define DW_DLE_INTERNAL_NULL_POINTER 436
1310 #define DW_DLE_SECTION_STRING_OFFSET_BAD 437
1311 #define DW_DLE_SECTION_INDEX_BAD 438
1312 #define DW_DLE_INTEGER_TOO_SMALL 439
1313 #define DW_DLE_ELF_SECTION_LINK_ERROR 440
1314 #define DW_DLE_ELF_SECTION_GROUP_ERROR 441
1315 #define DW_DLE_ELF_SECTION_COUNT_MISMATCH 442
1316 #define DW_DLE_ELF_STRING_SECTION_MISSING 443
1317 #define DW_DLE_SEEK_OFF_END 444
1318 #define DW_DLE_READ_OFF_END 445
1319 #define DW_DLE_ELF_SECTION_ERROR 446
1320 #define DW_DLE_ELF_STRING_SECTION_ERROR 447
1321 #define DW_DLE_MIXING_SPLIT_DWARF_VERSIONS 448
1322 #define DW_DLE_TAG_CORRUPT 449
1323 #define DW_DLE_FORM_CORRUPT 450
1324 #define DW_DLE_ATTR_CORRUPT 451
1325 #define DW_DLE_ABBREV_ATTR_DUPLICATION 452
1326 #define DW_DLE_DWP_SIGNATURE_MISMATCH 453
1327 #define DW_DLE_CU_UT_TYPE_VALUE 454
1328 #define DW_DLE_DUPLICATE_GNU_DEBUGLINK 455
1329 #define DW_DLE_CORRUPT_GNU_DEBUGLINK 456
1330 #define DW_DLE_CORRUPT_NOTE_GNU_DEBUGID 457
1331 #define DW_DLE_CORRUPT_GNU_DEBUGID_SIZE 458
1332 #define DW_DLE_CORRUPT_GNU_DEBUGID_STRING 459
1333 #define DW_DLE_HEX_STRING_ERROR 460
1334 #define DW_DLE_DECIMAL_STRING_ERROR 461
1335 #define DW_DLE_PRO_INIT_EXTRAS_UNKNOWN 462
1336 #define DW_DLE_PRO_INIT_EXTRAS_ERR 463
1337 #define DW_DLE_NULL_ARGS_DWARF_ADD_PATH 464
1338 #define DW_DLE_DWARF_INIT_DBG_NULL 465
1339 #define DW_DLE_ELF_RELOC_SECTION_ERROR 466
1340 #define DW_DLE_USER_DECLARED_ERROR 467
1341 #define DW_DLE_RNGLISTS_ERROR 468
1342 #define DW_DLE_LOCLISTS_ERROR 469
1343 #define DW_DLE_SECTION_SIZE_OR_OFFSET_LARGE 470
1344 #define DW_DLE_GDBINDEX_STRING_ERROR 471
1345 #define DW_DLE_GNU_PUBNAMES_ERROR 472
1346 #define DW_DLE_GNU_PUBTYPES_ERROR 473
1347 #define DW_DLE_DUPLICATE_GNU_DEBUG_PUBNAMES 474
1348 #define DW_DLE_DUPLICATE_GNU_DEBUG_PUBTYPES 475
1349 #define DW_DLE_DEBUG_SUP_STRING_ERROR 476
1350 #define DW_DLE_DEBUG_SUP_ERROR 477
1351 #define DW_DLE_LOCATION_ERROR 478
1352 #define DW_DLE_DEBUGLINK_PATH_SHORT 479
1353 #define DW_DLE_SIGNATURE_MISMATCH 480
1354 #define DW_DLE_MACRO_VERSION_ERROR 481
1355 #define DW_DLE_NEGATIVE_SIZE 482
1356 #define DW_DLE_UDATA_VALUE_NEGATIVE 483
1357 #define DW_DLE_DEBUG_NAMES_ERROR 484
1358 #define DW_DLE_CFA_INSTRUCTION_ERROR 485
1359 #define DW_DLE_MACHO_CORRUPT_HEADER 486
1360 #define DW_DLE_MACHO_CORRUPT_COMMAND 487
1361 #define DW_DLE_MACHO_CORRUPT_SECTIONDETAILS 488
1362 #define DW_DLE_RELOCATION_SECTION_SIZE_ERROR 489
1363 #define DW_DLE_SYMBOL_SECTION_SIZE_ERROR 490
1364 #define DW_DLE_PE_SECTION_SIZE_ERROR 491
1365 
1367 #define DW_DLE_LAST 491
1368 #define DW_DLE_LO_USER 0x10000
1369 
1426 DW_API int dwarf_init_path(const char * dw_path,
1427  char * dw_true_path_out_buffer,
1428  unsigned int dw_true_path_bufferlen,
1429  unsigned int dw_groupnumber,
1430  Dwarf_Handler dw_errhand,
1431  Dwarf_Ptr dw_errarg,
1432  Dwarf_Debug* dw_dbg,
1433  Dwarf_Error* dw_error);
1434 
1487 DW_API int dwarf_init_path_dl(const char * dw_path,
1488  char * dw_true_path_out_buffer,
1489  unsigned int dw_true_path_bufferlen,
1490  unsigned int dw_groupnumber,
1491  Dwarf_Handler dw_errhand,
1492  Dwarf_Ptr dw_errarg,
1493  Dwarf_Debug* dw_dbg,
1494  char ** dw_dl_path_array,
1495  unsigned int dw_dl_path_array_size,
1496  unsigned char * dw_dl_path_source,
1497  Dwarf_Error* dw_error);
1498 
1530 DW_API int dwarf_init_b(int dw_fd,
1531  unsigned int dw_groupnumber,
1532  Dwarf_Handler dw_errhand,
1533  Dwarf_Ptr dw_errarg,
1534  Dwarf_Debug* dw_dbg,
1535  Dwarf_Error* dw_error);
1536 
1548 DW_API int dwarf_finish(Dwarf_Debug dw_dbg);
1549 
1580  Dwarf_Handler dw_errhand,
1581  Dwarf_Ptr dw_errarg,
1582  unsigned int dw_groupnumber,
1583  Dwarf_Debug* dw_dbg,
1584  Dwarf_Error* dw_error);
1585 
1599 DW_API int dwarf_object_finish(Dwarf_Debug dw_dbg);
1600 
1619 DW_API int dwarf_set_tied_dbg(Dwarf_Debug dw_basedbg,
1620  Dwarf_Debug dw_tied_dbg,
1621  Dwarf_Error* dw_error);
1622 
1631 DW_API int dwarf_get_tied_dbg(Dwarf_Debug dw_dbg,
1632  Dwarf_Debug * dw_tieddbg_out,
1633  Dwarf_Error * dw_error);
1690 DW_API int dwarf_next_cu_header_d(Dwarf_Debug dw_dbg,
1691  Dwarf_Bool dw_is_info,
1692  Dwarf_Unsigned* dw_cu_header_length,
1693  Dwarf_Half* dw_version_stamp,
1694  Dwarf_Off* dw_abbrev_offset,
1695  Dwarf_Half* dw_address_size,
1696  Dwarf_Half* dw_length_size,
1697  Dwarf_Half* dw_extension_size,
1698  Dwarf_Sig8* dw_type_signature,
1699  Dwarf_Unsigned* dw_typeoffset,
1700  Dwarf_Unsigned* dw_next_cu_header_offset,
1701  Dwarf_Half * dw_header_cu_type,
1702  Dwarf_Error* dw_error);
1703 
1726 DW_API int dwarf_siblingof_b(Dwarf_Debug dw_dbg,
1727  Dwarf_Die dw_die,
1728  Dwarf_Bool dw_is_info,
1729  Dwarf_Die* dw_return_siblingdie,
1730  Dwarf_Error* dw_error);
1731 
1771 DW_API int dwarf_cu_header_basics(Dwarf_Die dw_die,
1772  Dwarf_Half * dw_version,
1773  Dwarf_Bool * dw_is_info,
1774  Dwarf_Bool * dw_is_dwo,
1775  Dwarf_Half * dw_offset_size,
1776  Dwarf_Half * dw_address_size,
1777  Dwarf_Half * dw_extension_size,
1778  Dwarf_Sig8 ** dw_signature,
1779  Dwarf_Off * dw_offset_of_length,
1780  Dwarf_Unsigned * dw_total_byte_length,
1781  Dwarf_Error * dw_error);
1782 
1802 DW_API int dwarf_child(Dwarf_Die dw_die,
1803  Dwarf_Die* dw_return_childdie,
1804  Dwarf_Error* dw_error);
1805 
1810 DW_API void dwarf_dealloc_die( Dwarf_Die dw_die);
1811 
1829 DW_API int dwarf_die_from_hash_signature(Dwarf_Debug dw_dbg,
1830  Dwarf_Sig8 * dw_hash_sig,
1831  const char * dw_sig_type,
1832  Dwarf_Die* dw_returned_CU_die,
1833  Dwarf_Error* dw_error);
1834 
1865 DW_API int dwarf_offdie_b(Dwarf_Debug dw_dbg,
1866  Dwarf_Off dw_offset,
1867  Dwarf_Bool dw_is_info,
1868  Dwarf_Die* dw_return_die,
1869  Dwarf_Error* dw_error);
1870 
1893 DW_API int dwarf_find_die_given_sig8(Dwarf_Debug dw_dbg,
1894  Dwarf_Sig8 * dw_ref,
1895  Dwarf_Die * dw_die_out,
1896  Dwarf_Bool * dw_is_info,
1897  Dwarf_Error* dw_error);
1898 
1938 DW_API int dwarf_die_abbrev_global_offset(Dwarf_Die dw_die,
1939  Dwarf_Off * dw_abbrev_offset,
1940  Dwarf_Unsigned * dw_abbrev_count,
1941  Dwarf_Error* dw_error);
1942 
1953 DW_API int dwarf_tag(Dwarf_Die dw_die,
1954  Dwarf_Half* dw_return_tag,
1955  Dwarf_Error* dw_error);
1956 
1969 DW_API int dwarf_dieoffset(Dwarf_Die dw_die,
1970  Dwarf_Off* dw_return_offset,
1971  Dwarf_Error* dw_error);
1972 
1988 DW_API int dwarf_debug_addr_index_to_addr(Dwarf_Die dw_die,
1989  Dwarf_Unsigned dw_index,
1990  Dwarf_Addr * dw_return_addr,
1991  Dwarf_Error * dw_error);
1992 
2001 DW_API Dwarf_Bool dwarf_addr_form_is_indexed(int dw_form);
2002 
2022 DW_API int dwarf_CU_dieoffset_given_die(Dwarf_Die dw_die,
2023  Dwarf_Off* dw_return_offset,
2024  Dwarf_Error* dw_error);
2025 
2047  Dwarf_Debug dw_dbg,
2048  Dwarf_Off dw_in_cu_header_offset,
2049  Dwarf_Bool dw_is_info,
2050  Dwarf_Off * dw_out_cu_die_offset,
2051  Dwarf_Error *dw_error);
2052 
2066 DW_API int dwarf_die_CU_offset(Dwarf_Die dw_die,
2067  Dwarf_Off* dw_return_offset,
2068  Dwarf_Error* dw_error);
2069 
2085 DW_API int dwarf_die_CU_offset_range(Dwarf_Die dw_die,
2086  Dwarf_Off* dw_return_CU_header_offset,
2087  Dwarf_Off* dw_return_CU_length_bytes,
2088  Dwarf_Error* dw_error);
2089 
2107 DW_API int dwarf_attr(Dwarf_Die dw_die,
2108  Dwarf_Half dw_attrnum,
2109  Dwarf_Attribute * dw_returned_attr,
2110  Dwarf_Error* dw_error);
2111 
2133 DW_API int dwarf_die_text(Dwarf_Die dw_die,
2134  Dwarf_Half dw_attrnum,
2135  char ** dw_ret_name,
2136  Dwarf_Error * dw_error);
2137 
2157 DW_API int dwarf_diename(Dwarf_Die dw_die,
2158  char ** dw_diename,
2159  Dwarf_Error* dw_error);
2160 
2175 DW_API int dwarf_die_abbrev_code(Dwarf_Die dw_die);
2176 
2190 DW_API int dwarf_die_abbrev_children_flag(Dwarf_Die dw_die,
2191  Dwarf_Half * dw_ab_has_child);
2192 
2200 DW_API int dwarf_validate_die_sibling(Dwarf_Die dw_sibling,
2201  Dwarf_Off* dw_offset);
2202 
2203 /* convenience functions, alternative to using dwarf_attrlist */
2204 
2223 DW_API int dwarf_hasattr(Dwarf_Die dw_die,
2224  Dwarf_Half dw_attrnum,
2225  Dwarf_Bool * dw_returned_bool,
2226  Dwarf_Error* dw_error);
2227 
2257 DW_API int dwarf_offset_list(Dwarf_Debug dw_dbg,
2258  Dwarf_Off dw_offset,
2259  Dwarf_Bool dw_is_info,
2260  Dwarf_Off ** dw_offbuf,
2261  Dwarf_Unsigned * dw_offcount,
2262  Dwarf_Error * dw_error);
2263 
2276 DW_API int dwarf_get_die_address_size(Dwarf_Die dw_die,
2277  Dwarf_Half * dw_addr_size,
2278  Dwarf_Error * dw_error);
2279 
2280 /* Get both offsets (local and global) */
2295 DW_API int dwarf_die_offsets(Dwarf_Die dw_die,
2296  Dwarf_Off* dw_global_offset,
2297  Dwarf_Off* dw_local_offset,
2298  Dwarf_Error* dw_error);
2299 
2316 DW_API int dwarf_get_version_of_die(Dwarf_Die dw_die,
2317  Dwarf_Half * dw_version,
2318  Dwarf_Half * dw_offset_size);
2319 
2333 DW_API int dwarf_lowpc(Dwarf_Die dw_die,
2334  Dwarf_Addr * dw_returned_addr,
2335  Dwarf_Error* dw_error);
2336 
2337 /* When the highpc attribute is of class 'constant'
2338  it is not an address, it is an offset from the
2339  base address (such as lowpc) of the function.
2340  This is therefore a required interface for DWARF4
2341  style DW_AT_highpc. */
2342 
2361 DW_API int dwarf_highpc_b(Dwarf_Die dw_die,
2362  Dwarf_Addr * dw_return_addr,
2363  Dwarf_Half * dw_return_form,
2364  enum Dwarf_Form_Class * dw_return_class,
2365  Dwarf_Error * dw_error);
2366 
2382 DW_API int dwarf_dietype_offset(Dwarf_Die dw_die,
2383  Dwarf_Off * dw_return_offset,
2384  Dwarf_Error * dw_error);
2385 
2397 DW_API int dwarf_bytesize(Dwarf_Die dw_die,
2398  Dwarf_Unsigned * dw_returned_size,
2399  Dwarf_Error* dw_error);
2400 
2412 DW_API int dwarf_bitsize(Dwarf_Die dw_die,
2413  Dwarf_Unsigned * dw_returned_size,
2414  Dwarf_Error* dw_error);
2415 
2436 DW_API int dwarf_bitoffset(Dwarf_Die dw_die,
2437  Dwarf_Half * dw_attrnum,
2438  Dwarf_Unsigned * dw_returned_offset,
2439  Dwarf_Error* dw_error);
2453 DW_API int dwarf_srclang(Dwarf_Die dw_die,
2454  Dwarf_Unsigned * dw_returned_lang,
2455  Dwarf_Error * dw_error);
2456 
2469 DW_API int dwarf_arrayorder(Dwarf_Die dw_die,
2470  Dwarf_Unsigned * dw_returned_order,
2471  Dwarf_Error* dw_error);
2472 
2501 DW_API int dwarf_attrlist(Dwarf_Die dw_die,
2502  Dwarf_Attribute** dw_attrbuf,
2503  Dwarf_Signed * dw_attrcount,
2504  Dwarf_Error* dw_error);
2505 
2522 DW_API int dwarf_hasform(Dwarf_Attribute dw_attr,
2523  Dwarf_Half dw_form,
2524  Dwarf_Bool * dw_returned_bool,
2525  Dwarf_Error* dw_error);
2526 
2545 DW_API int dwarf_whatform(Dwarf_Attribute dw_attr,
2546  Dwarf_Half * dw_returned_final_form,
2547  Dwarf_Error* dw_error);
2548 
2565 DW_API int dwarf_whatform_direct(Dwarf_Attribute dw_attr,
2566  Dwarf_Half * dw_returned_initial_form,
2567  Dwarf_Error* dw_error);
2568 
2584 DW_API int dwarf_whatattr(Dwarf_Attribute dw_attr,
2585  Dwarf_Half * dw_returned_attrnum,
2586  Dwarf_Error* dw_error);
2587 
2612 DW_API int dwarf_formref(Dwarf_Attribute dw_attr,
2613  Dwarf_Off* dw_return_offset,
2614  Dwarf_Bool * dw_is_info,
2615  Dwarf_Error* dw_error);
2616 
2649 DW_API int dwarf_global_formref_b(Dwarf_Attribute dw_attr,
2650  Dwarf_Off * dw_return_offset,
2651  Dwarf_Bool * dw_offset_is_info,
2652  Dwarf_Error* dw_error);
2653 
2664 DW_API int dwarf_global_formref(Dwarf_Attribute dw_attr,
2665  Dwarf_Off* dw_return_offset,
2666  Dwarf_Error* dw_error);
2667 
2686 DW_API int dwarf_formsig8(Dwarf_Attribute dw_attr,
2687  Dwarf_Sig8 * dw_returned_sig_bytes,
2688  Dwarf_Error* dw_error);
2689 
2708 DW_API int dwarf_formsig8_const(Dwarf_Attribute dw_attr,
2709  Dwarf_Sig8 * dw_returned_sig_bytes,
2710  Dwarf_Error* dw_error);
2711 
2731 DW_API int dwarf_formaddr(Dwarf_Attribute dw_attr,
2732  Dwarf_Addr * dw_returned_addr,
2733  Dwarf_Error* dw_error);
2734 
2754 DW_API int dwarf_get_debug_addr_index(Dwarf_Attribute dw_attr,
2755  Dwarf_Unsigned * dw_return_index,
2756  Dwarf_Error * dw_error);
2757 
2771 DW_API int dwarf_formflag(Dwarf_Attribute dw_attr,
2772  Dwarf_Bool * dw_returned_bool,
2773  Dwarf_Error* dw_error);
2774 
2790 DW_API int dwarf_formudata(Dwarf_Attribute dw_attr,
2791  Dwarf_Unsigned * dw_returned_val,
2792  Dwarf_Error* dw_error);
2793 
2808 DW_API int dwarf_formsdata(Dwarf_Attribute dw_attr,
2809  Dwarf_Signed * dw_returned_val,
2810  Dwarf_Error* dw_error);
2811 
2829 DW_API int dwarf_formdata16(Dwarf_Attribute dw_attr,
2830  Dwarf_Form_Data16 * dw_returned_val,
2831  Dwarf_Error* dw_error);
2832 
2851 DW_API int dwarf_formblock(Dwarf_Attribute dw_attr,
2852  Dwarf_Block ** dw_returned_block,
2853  Dwarf_Error* dw_error);
2854 
2867 DW_API int dwarf_formstring(Dwarf_Attribute dw_attr,
2868  char ** dw_returned_string,
2869  Dwarf_Error* dw_error);
2870 
2886 DW_API int dwarf_get_debug_str_index(Dwarf_Attribute dw_attr,
2887  Dwarf_Unsigned * dw_return_index,
2888  Dwarf_Error * dw_error);
2889 
2908 DW_API int dwarf_formexprloc(Dwarf_Attribute dw_attr,
2909  Dwarf_Unsigned * dw_return_exprlen,
2910  Dwarf_Ptr * dw_block_ptr,
2911  Dwarf_Error * dw_error);
2912 
2933  Dwarf_Half dw_version,
2934  Dwarf_Half dw_attrnum,
2935  Dwarf_Half dw_offset_size,
2936  Dwarf_Half dw_form);
2937 
2953 DW_API int dwarf_attr_offset(Dwarf_Die dw_die,
2954  Dwarf_Attribute dw_attr,
2955  Dwarf_Off * dw_return_offset,
2956  Dwarf_Error * dw_error);
2957 
2966  Dwarf_Unsigned dw_input_length_in_bytes,
2967  void * dw_input_block,
2968  Dwarf_Unsigned * dw_value_count,
2969  Dwarf_Signed ** dw_value_array,
2970  Dwarf_Error * dw_error);
2971 
2980  void *dw_value_array);
2981 
3002  Dwarf_Off dw_offset,
3003  Dwarf_Off* dw_return_offset,
3004  Dwarf_Error* dw_error);
3005 
3011 DW_API void dwarf_dealloc_attribute(Dwarf_Attribute dw_attr);
3012 
3039 DW_API int dwarf_discr_list(Dwarf_Debug dw_dbg,
3040  Dwarf_Small * dw_blockpointer,
3041  Dwarf_Unsigned dw_blocklen,
3042  Dwarf_Dsc_Head * dw_dsc_head_out,
3043  Dwarf_Unsigned * dw_dsc_array_length_out,
3044  Dwarf_Error * dw_error);
3045 
3071 DW_API int dwarf_discr_entry_u(Dwarf_Dsc_Head dw_dsc,
3072  Dwarf_Unsigned dw_entrynum,
3073  Dwarf_Half * dw_out_type,
3074  Dwarf_Unsigned * dw_out_discr_low,
3075  Dwarf_Unsigned * dw_out_discr_high,
3076  Dwarf_Error * dw_error);
3077 
3083 DW_API int dwarf_discr_entry_s(Dwarf_Dsc_Head dw_dsc,
3084  Dwarf_Unsigned dw_entrynum,
3085  Dwarf_Half * dw_out_type,
3086  Dwarf_Signed * dw_out_discr_low,
3087  Dwarf_Signed * dw_out_discr_high,
3088  Dwarf_Error * dw_error);
3089 
3119 DW_API int dwarf_srcfiles(Dwarf_Die dw_cu_die,
3120  char *** dw_srcfiles,
3121  Dwarf_Signed * dw_filecount,
3122  Dwarf_Error * dw_error);
3123 
3147 DW_API int dwarf_srclines_b(Dwarf_Die dw_cudie,
3148  Dwarf_Unsigned * dw_version_out,
3149  Dwarf_Small * dw_table_count,
3150  Dwarf_Line_Context * dw_linecontext,
3151  Dwarf_Error * dw_error);
3152 
3174  Dwarf_Line_Context dw_linecontext,
3175  Dwarf_Line ** dw_linebuf,
3176  Dwarf_Signed * dw_linecount,
3177  Dwarf_Error * dw_error);
3178 
3196  Dwarf_Line_Context dw_context,
3197  Dwarf_Line ** dw_linebuf ,
3198  Dwarf_Signed * dw_linecount,
3199  Dwarf_Line ** dw_linebuf_actuals,
3200  Dwarf_Signed * dw_linecount_actuals,
3201  Dwarf_Error * dw_error);
3202 
3212 DW_API void dwarf_srclines_dealloc_b(Dwarf_Line_Context dw_context);
3213 
3229 DW_API int dwarf_srclines_table_offset(Dwarf_Line_Context dw_context,
3230  Dwarf_Unsigned * dw_offset,
3231  Dwarf_Error * dw_error);
3232 
3248 DW_API int dwarf_srclines_comp_dir(Dwarf_Line_Context dw_context,
3249  const char ** dw_compilation_directory,
3250  Dwarf_Error * dw_error);
3251 
3267 DW_API int dwarf_srclines_subprog_count(Dwarf_Line_Context dw_context,
3268  Dwarf_Signed * dw_count,
3269  Dwarf_Error * dw_error);
3270 
3289 DW_API int dwarf_srclines_subprog_data(Dwarf_Line_Context dw_context,
3290  Dwarf_Signed dw_index,
3291  const char ** dw_name,
3292  Dwarf_Unsigned * dw_decl_file,
3293  Dwarf_Unsigned * dw_decl_line,
3294  Dwarf_Error * dw_error);
3295 
3320 DW_API int dwarf_srclines_files_indexes(
3321  Dwarf_Line_Context dw_context,
3322  Dwarf_Signed * dw_baseindex,
3323  Dwarf_Signed * dw_count,
3324  Dwarf_Signed * dw_endindex,
3325  Dwarf_Error * dw_error);
3326 
3379 DW_API int dwarf_srclines_files_data_b(
3380  Dwarf_Line_Context dw_context,
3381  Dwarf_Signed dw_index_in,
3382  const char ** dw_name,
3383  Dwarf_Unsigned * dw_directory_index,
3384  Dwarf_Unsigned * dw_last_mod_time,
3385  Dwarf_Unsigned * dw_file_length,
3386  Dwarf_Form_Data16 ** dw_md5ptr,
3387  Dwarf_Error * dw_error);
3388 
3404  Dwarf_Line_Context dw_line_context,
3405  Dwarf_Signed * dw_count,
3406  Dwarf_Error * dw_error);
3407 
3431  Dwarf_Line_Context dw_line_context,
3432  Dwarf_Signed dw_index,
3433  const char ** dw_name,
3434  Dwarf_Error * dw_error);
3435 
3458 DW_API int dwarf_srclines_version(Dwarf_Line_Context dw_line_context,
3459  Dwarf_Unsigned * dw_version,
3460  Dwarf_Small * dw_table_count,
3461  Dwarf_Error * dw_error);
3462 
3478 DW_API int dwarf_linebeginstatement(Dwarf_Line dw_line,
3479  Dwarf_Bool * dw_returned_bool,
3480  Dwarf_Error * dw_error);
3481 
3497 DW_API int dwarf_lineendsequence(Dwarf_Line dw_line,
3498  Dwarf_Bool * dw_returned_bool,
3499  Dwarf_Error * dw_error);
3500 
3515 DW_API int dwarf_lineno(Dwarf_Line dw_line,
3516  Dwarf_Unsigned * dw_returned_linenum,
3517  Dwarf_Error * dw_error);
3518 
3533 DW_API int dwarf_line_srcfileno(Dwarf_Line dw_line,
3534  Dwarf_Unsigned * dw_returned_filenum,
3535  Dwarf_Error * dw_error);
3536 
3550 DW_API int dwarf_line_is_addr_set(Dwarf_Line dw_line,
3551  Dwarf_Bool * dw_is_addr_set,
3552  Dwarf_Error * dw_error);
3553 
3568 DW_API int dwarf_lineaddr(Dwarf_Line dw_line,
3569  Dwarf_Addr * dw_returned_addr,
3570  Dwarf_Error* dw_error);
3571 
3586 DW_API int dwarf_lineoff_b(Dwarf_Line dw_line,
3587  Dwarf_Unsigned * dw_returned_lineoffset,
3588  Dwarf_Error* dw_error);
3589 
3607 DW_API int dwarf_linesrc(Dwarf_Line dw_line,
3608  char ** dw_returned_name,
3609  Dwarf_Error* dw_error);
3610 
3625 DW_API int dwarf_lineblock(Dwarf_Line dw_line,
3626  Dwarf_Bool * dw_returned_bool,
3627  Dwarf_Error* dw_error);
3628 
3629 /* We gather these into one call as it's likely one
3630  will want all or none of them. */
3654 DW_API int dwarf_prologue_end_etc(Dwarf_Line dw_line,
3655  Dwarf_Bool * dw_prologue_end,
3656  Dwarf_Bool * dw_epilogue_begin,
3657  Dwarf_Unsigned * dw_isa,
3658  Dwarf_Unsigned * dw_discriminator,
3659  Dwarf_Error * dw_error);
3660 /* End line table operations */
3661 
3667 DW_API int dwarf_linelogical(Dwarf_Line dw_line,
3668  Dwarf_Unsigned * dw_returned_logical,
3669  Dwarf_Error* dw_error);
3670 
3677 DW_API int dwarf_linecontext(Dwarf_Line dw_line,
3678  Dwarf_Unsigned * dw_returned_context,
3679  Dwarf_Error* dw_error);
3680 
3687 DW_API int dwarf_line_subprogno(Dwarf_Line /*line*/,
3688  Dwarf_Unsigned * /*ret_subprogno*/,
3689  Dwarf_Error * /*error*/);
3690 
3697 DW_API int dwarf_line_subprog(Dwarf_Line /*line*/,
3698  char ** /*returned_subprog_name*/,
3699  char ** /*returned_filename*/,
3700  Dwarf_Unsigned * /*returned_lineno*/,
3701  Dwarf_Error * /*error*/);
3702 
3723 DW_API int dwarf_check_lineheader_b(Dwarf_Die dw_cu_die,
3724  int * dw_errcount_out,
3725  Dwarf_Error * dw_error);
3726 
3754 DW_API int dwarf_print_lines(Dwarf_Die dw_cu_die,
3755  Dwarf_Error * dw_error,
3756  int * dw_errorcount_out);
3757 
3775 DW_API struct Dwarf_Printf_Callback_Info_s
3777  struct Dwarf_Printf_Callback_Info_s * dw_callbackinfo);
3778 
3832 DW_API int dwarf_get_ranges_b(Dwarf_Debug dw_dbg,
3833  Dwarf_Off dw_rangesoffset,
3834  Dwarf_Die dw_die,
3835  Dwarf_Off * dw_return_realoffset,
3836  Dwarf_Ranges ** dw_rangesbuf,
3837  Dwarf_Signed * dw_rangecount,
3838  Dwarf_Unsigned * dw_bytecount,
3839  Dwarf_Error * dw_error);
3840 
3850 DW_API void dwarf_dealloc_ranges(Dwarf_Debug dw_dbg,
3851  Dwarf_Ranges * dw_rangesbuf,
3852  Dwarf_Signed dw_rangecount);
3894 DW_API int dwarf_rnglists_get_rle_head(Dwarf_Attribute dw_attr,
3895  Dwarf_Half dw_theform,
3896  Dwarf_Unsigned dw_index_or_offset_value,
3897  Dwarf_Rnglists_Head * dw_head_out,
3898  Dwarf_Unsigned * dw_count_of_entries_in_head,
3899  Dwarf_Unsigned * dw_global_offset_of_rle_set,
3900  Dwarf_Error * dw_error);
3901 
3945  Dwarf_Rnglists_Head dw_head,
3946  Dwarf_Unsigned dw_entrynum,
3947  unsigned int * dw_entrylen,
3948  unsigned int * dw_rle_value_out,
3949  Dwarf_Unsigned * dw_raw1,
3950  Dwarf_Unsigned * dw_raw2,
3951  Dwarf_Bool * dw_debug_addr_unavailable,
3952  Dwarf_Unsigned * dw_cooked1,
3953  Dwarf_Unsigned * dw_cooked2,
3954  Dwarf_Error * dw_error);
3955 
3964 
3995 DW_API int dwarf_load_rnglists(Dwarf_Debug dw_dbg,
3996  Dwarf_Unsigned * dw_rnglists_count,
3997  Dwarf_Error * dw_error);
3998 
4026  Dwarf_Unsigned dw_context_index,
4027  Dwarf_Unsigned dw_offsetentry_index,
4028  Dwarf_Unsigned * dw_offset_value_out,
4029  Dwarf_Unsigned * dw_global_offset_value_out,
4030  Dwarf_Error * dw_error);
4031 
4039  Dwarf_Unsigned * dw_rle_count,
4040  Dwarf_Unsigned * dw_rnglists_version,
4041  Dwarf_Unsigned * dw_rnglists_index_returned,
4042  Dwarf_Unsigned * dw_bytes_total_in_rle,
4043  Dwarf_Half * dw_offset_size,
4044  Dwarf_Half * dw_address_size,
4045  Dwarf_Half * dw_segment_selector_size,
4046  Dwarf_Unsigned * dw_overall_offset_of_this_context,
4047  Dwarf_Unsigned * dw_total_length_of_this_context,
4048  Dwarf_Unsigned * dw_offset_table_offset,
4049  Dwarf_Unsigned * dw_offset_table_entrycount,
4050  Dwarf_Bool * dw_rnglists_base_present,
4051  Dwarf_Unsigned * dw_rnglists_base,
4052  Dwarf_Bool * dw_rnglists_base_address_present,
4053  Dwarf_Unsigned * dw_rnglists_base_address,
4054  Dwarf_Bool * dw_rnglists_debug_addr_base_present,
4055  Dwarf_Unsigned * dw_rnglists_debug_addr_base,
4056  Dwarf_Error * dw_error);
4057 
4074  Dwarf_Unsigned dw_index,
4075  Dwarf_Unsigned * dw_header_offset,
4076  Dwarf_Small * dw_offset_size,
4077  Dwarf_Small * dw_extension_size,
4078  unsigned int * dw_version,
4079  Dwarf_Small * dw_address_size,
4080  Dwarf_Small * dw_segment_selector_size,
4081  Dwarf_Unsigned * dw_offset_entry_count,
4082  Dwarf_Unsigned * dw_offset_of_offset_array,
4083  Dwarf_Unsigned * dw_offset_of_first_rangeentry,
4084  Dwarf_Unsigned * dw_offset_past_last_rangeentry,
4085  Dwarf_Error * dw_error);
4086 
4096 DW_API int dwarf_get_rnglist_rle(Dwarf_Debug dw_dbg,
4097  Dwarf_Unsigned dw_contextnumber,
4098  Dwarf_Unsigned dw_entry_offset,
4099  Dwarf_Unsigned dw_endoffset,
4100  unsigned int * dw_entrylen,
4101  unsigned int * dw_entry_kind,
4102  Dwarf_Unsigned * dw_entry_operand1,
4103  Dwarf_Unsigned * dw_entry_operand2,
4104  Dwarf_Error * dw_error);
4130 DW_API int dwarf_get_loclist_c(Dwarf_Attribute dw_attr,
4131  Dwarf_Loc_Head_c * dw_loclist_head,
4132  Dwarf_Unsigned * dw_locentry_count,
4133  Dwarf_Error * dw_error);
4134 
4135 #define DW_LKIND_expression 0 /* DWARF2,3,4,5 */
4136 #define DW_LKIND_loclist 1 /* DWARF 2,3,4 */
4137 #define DW_LKIND_GNU_exp_list 2 /* GNU DWARF4 .dwo extension */
4138 #define DW_LKIND_loclists 5 /* DWARF5 loclists */
4139 #define DW_LKIND_unknown 99
4140 
4153 DW_API int dwarf_get_loclist_head_kind(
4154  Dwarf_Loc_Head_c dw_loclist_head,
4155  unsigned int * dw_lkind,
4156  Dwarf_Error * dw_error);
4157 
4212 DW_API int dwarf_get_locdesc_entry_d(Dwarf_Loc_Head_c dw_loclist_head,
4213  Dwarf_Unsigned dw_index,
4214  Dwarf_Small * dw_lle_value_out,
4215  Dwarf_Unsigned * dw_rawlowpc,
4216  Dwarf_Unsigned * dw_rawhipc,
4217  Dwarf_Bool * dw_debug_addr_unavailable,
4218  Dwarf_Addr * dw_lowpc_cooked,
4219  Dwarf_Addr * dw_hipc_cooked,
4220  Dwarf_Unsigned * dw_locexpr_op_count_out,
4221  Dwarf_Locdesc_c * dw_locentry_out,
4222  Dwarf_Small * dw_loclist_source_out,
4223  Dwarf_Unsigned * dw_expression_offset_out,
4224  Dwarf_Unsigned * dw_locdesc_offset_out,
4225  Dwarf_Error * dw_error);
4226 
4252 DW_API int dwarf_get_location_op_value_c(Dwarf_Locdesc_c dw_locdesc,
4253  Dwarf_Unsigned dw_index,
4254  Dwarf_Small * dw_operator_out,
4255  Dwarf_Unsigned * dw_operand1,
4256  Dwarf_Unsigned * dw_operand2,
4257  Dwarf_Unsigned * dw_operand3,
4258  Dwarf_Unsigned * dw_offset_for_branch,
4259  Dwarf_Error* dw_error);
4291 DW_API int dwarf_loclist_from_expr_c(Dwarf_Debug dw_dbg,
4292  Dwarf_Ptr dw_expression_in,
4293  Dwarf_Unsigned dw_expression_length,
4294  Dwarf_Half dw_address_size,
4295  Dwarf_Half dw_offset_size,
4296  Dwarf_Small dw_dwarf_version,
4297  Dwarf_Loc_Head_c* dw_loc_head,
4298  Dwarf_Unsigned * dw_listlen,
4299  Dwarf_Error * dw_error);
4300 
4308 DW_API void dwarf_dealloc_loc_head_c(Dwarf_Loc_Head_c dw_head);
4309 
4310 /* These interfaces allow reading the .debug_loclists
4311  section. Independently of DIEs.
4312  Normal use of .debug_loclists uses
4313  dwarf_get_loclist_c() to open access to any kind of location
4314  or loclist and uses dwarf_loc_head_c_dealloc() to
4315  deallocate that memory once one is finished with
4316  that data. So for most purposes you do not need
4317  to use these functions
4318  See dwarf_get_loclist_c() to open a Dwarf_Loc_Head_c
4319  on any type of location list or expression. */
4320 
4321 /* Loads all the loclists headers and
4322  returns DW_DLV_NO_ENTRY if the section
4323  is missing or empty.
4324  Intended to be done quite early and
4325  it is automatically
4326  done if .debug_info is loaded.
4327  Doing it more than once is never necessary
4328  or harmful. There is no deallocation call
4329  made visible, deallocation happens
4330  when dwarf_finish() is called.
4331  With DW_DLV_OK it returns the number of
4332  loclists headers in the section through
4333  loclists_count. */
4358 DW_API int dwarf_load_loclists(Dwarf_Debug dw_dbg,
4359  Dwarf_Unsigned * dw_loclists_count,
4360  Dwarf_Error * dw_error);
4361 
4388  Dwarf_Unsigned dw_context_index,
4389  Dwarf_Unsigned dw_offsetentry_index,
4390  Dwarf_Unsigned * dw_offset_value_out,
4391  Dwarf_Unsigned * dw_global_offset_value_out,
4392  Dwarf_Error * dw_error);
4393 
4409  Dwarf_Small * dw_lkind,
4410  Dwarf_Unsigned * dw_lle_count,
4411  Dwarf_Unsigned * dw_loclists_version,
4412  Dwarf_Unsigned * dw_loclists_index_returned,
4413  Dwarf_Unsigned * dw_bytes_total_in_rle,
4414  Dwarf_Half * dw_offset_size,
4415  Dwarf_Half * dw_address_size,
4416  Dwarf_Half * dw_segment_selector_size,
4417  Dwarf_Unsigned * dw_overall_offset_of_this_context,
4418  Dwarf_Unsigned * dw_total_length_of_this_context,
4419  Dwarf_Unsigned * dw_offset_table_offset,
4420  Dwarf_Unsigned * dw_offset_table_entrycount,
4421  Dwarf_Bool * dw_loclists_base_present,
4422  Dwarf_Unsigned * dw_loclists_base,
4423  Dwarf_Bool * dw_loclists_base_address_present,
4424  Dwarf_Unsigned * dw_loclists_base_address,
4425  Dwarf_Bool * dw_loclists_debug_addr_base_present,
4426  Dwarf_Unsigned * dw_loclists_debug_addr_base,
4427  Dwarf_Unsigned * dw_offset_this_lle_area,
4428  Dwarf_Error * dw_error);
4429 
4439  Dwarf_Unsigned dw_index,
4440  Dwarf_Unsigned * dw_header_offset,
4441  Dwarf_Small * dw_offset_size,
4442  Dwarf_Small * dw_extension_size,
4443  unsigned int * dw_version,
4444  Dwarf_Small * dw_address_size,
4445  Dwarf_Small * dw_segment_selector_size,
4446  Dwarf_Unsigned * dw_offset_entry_count,
4447  Dwarf_Unsigned * dw_offset_of_offset_array,
4448  Dwarf_Unsigned * dw_offset_of_first_locentry,
4449  Dwarf_Unsigned * dw_offset_past_last_locentry,
4450  Dwarf_Error * dw_error);
4451 
4456 DW_API int dwarf_get_loclist_lle( Dwarf_Debug dw_dbg,
4457  Dwarf_Unsigned dw_contextnumber,
4458  Dwarf_Unsigned dw_entry_offset,
4459  Dwarf_Unsigned dw_endoffset,
4460  unsigned int * dw_entrylen,
4461  unsigned int * dw_entry_kind,
4462  Dwarf_Unsigned * dw_entry_operand1,
4463  Dwarf_Unsigned * dw_entry_operand2,
4464  Dwarf_Unsigned * dw_expr_ops_blocksize,
4465  Dwarf_Unsigned * dw_expr_ops_offset,
4466  Dwarf_Small ** dw_expr_opsdata,
4467  Dwarf_Error * dw_error);
4502 DW_API int dwarf_get_macro_context(Dwarf_Die dw_die,
4503  Dwarf_Unsigned * dw_version_out,
4504  Dwarf_Macro_Context * dw_macro_context,
4505  Dwarf_Unsigned * dw_macro_unit_offset_out,
4506  Dwarf_Unsigned * dw_macro_ops_count_out,
4507  Dwarf_Unsigned * dw_macro_ops_data_length_out,
4508  Dwarf_Error * dw_error);
4509 
4538  Dwarf_Unsigned dw_offset,
4539  Dwarf_Unsigned * dw_version_out,
4540  Dwarf_Macro_Context * dw_macro_context,
4541  Dwarf_Unsigned * dw_macro_ops_count_out,
4542  Dwarf_Unsigned * dw_macro_ops_data_length,
4543  Dwarf_Error * dw_error);
4544 
4545 /* New December 2020. Sometimes its necessary to know
4546  a context total length including macro 5 header */
4560  Dwarf_Macro_Context dw_context,
4561  Dwarf_Unsigned * dw_mac_total_len,
4562  Dwarf_Error * dw_error);
4563 
4572 
4579  Dwarf_Half * dw_version,
4580  Dwarf_Unsigned * dw_mac_offset,
4581  Dwarf_Unsigned * dw_mac_len,
4582  Dwarf_Unsigned * dw_mac_header_len,
4583  unsigned int * dw_flags,
4584  Dwarf_Bool * dw_has_line_offset,
4585  Dwarf_Unsigned * dw_line_offset,
4586  Dwarf_Bool * dw_has_offset_size_64,
4587  Dwarf_Bool * dw_has_operands_table,
4588  Dwarf_Half * dw_opcode_count,
4589  Dwarf_Error * dw_error);
4590 
4614  Dwarf_Half dw_index, /* 0 to opcode_count -1 */
4615  Dwarf_Half * dw_opcode_number,
4616  Dwarf_Half * dw_operand_count,
4617  const Dwarf_Small ** dw_operand_array,
4618  Dwarf_Error * dw_error);
4619 
4644 DW_API int dwarf_get_macro_op(Dwarf_Macro_Context dw_macro_context,
4645  Dwarf_Unsigned dw_op_number,
4646  Dwarf_Unsigned * dw_op_start_section_offset,
4647  Dwarf_Half * dw_macro_operator,
4648  Dwarf_Half * dw_forms_count,
4649  const Dwarf_Small ** dw_formcode_array,
4650  Dwarf_Error * dw_error);
4651 
4689 DW_API int dwarf_get_macro_defundef(
4690  Dwarf_Macro_Context dw_macro_context,
4691  Dwarf_Unsigned dw_op_number,
4692  Dwarf_Unsigned * dw_line_number,
4693  Dwarf_Unsigned * dw_index,
4694  Dwarf_Unsigned * dw_offset,
4695  Dwarf_Half * dw_forms_count,
4696  const char ** dw_macro_string,
4697  Dwarf_Error * dw_error);
4698 
4727  Dwarf_Macro_Context dw_macro_context,
4728  Dwarf_Unsigned dw_op_number,
4729  Dwarf_Unsigned * dw_line_number,
4730  Dwarf_Unsigned * dw_name_index_to_line_tab,
4731  const char ** dw_src_file_name,
4732  Dwarf_Error * dw_error);
4733 
4749 DW_API int dwarf_get_macro_import(
4750  Dwarf_Macro_Context dw_macro_context,
4751  Dwarf_Unsigned dw_op_number,
4752  Dwarf_Unsigned * dw_target_offset,
4753  Dwarf_Error * dw_error);
4783 DW_API char* dwarf_find_macro_value_start(char * dw_macro_string);
4784 
4810 DW_API int dwarf_get_macro_details(Dwarf_Debug dw_dbg,
4811  Dwarf_Off dw_macro_offset,
4812  Dwarf_Unsigned dw_maximum_count,
4813  Dwarf_Signed * dw_entry_count,
4814  Dwarf_Macro_Details ** dw_details,
4815  Dwarf_Error * dw_error);
4816 
4853 DW_API int dwarf_get_fde_list(Dwarf_Debug dw_dbg,
4854  Dwarf_Cie** dw_cie_data,
4855  Dwarf_Signed* dw_cie_element_count,
4856  Dwarf_Fde** dw_fde_data,
4857  Dwarf_Signed* dw_fde_element_count,
4858  Dwarf_Error* dw_error);
4868 DW_API int dwarf_get_fde_list_eh(Dwarf_Debug dw_dbg,
4869  Dwarf_Cie** dw_cie_data,
4870  Dwarf_Signed* dw_cie_element_count,
4871  Dwarf_Fde** dw_fde_data,
4872  Dwarf_Signed* dw_fde_element_count,
4873  Dwarf_Error* dw_error);
4874 
4894 DW_API void dwarf_dealloc_fde_cie_list(Dwarf_Debug dw_dbg,
4895  Dwarf_Cie * dw_cie_data,
4896  Dwarf_Signed dw_cie_element_count,
4897  Dwarf_Fde * dw_fde_data,
4898  Dwarf_Signed dw_fde_element_count);
4899 
4927 DW_API int dwarf_get_fde_range(Dwarf_Fde dw_fde,
4928  Dwarf_Addr* dw_low_pc,
4929  Dwarf_Unsigned* dw_func_length,
4930  Dwarf_Small **dw_fde_bytes,
4931  Dwarf_Unsigned* dw_fde_byte_length,
4932  Dwarf_Off* dw_cie_offset,
4933  Dwarf_Signed* dw_cie_index,
4934  Dwarf_Off* dw_fde_offset,
4935  Dwarf_Error* dw_error);
4936 
4942 DW_API int dwarf_get_fde_exception_info(Dwarf_Fde dw_fde,
4943  Dwarf_Signed* dw_offset_into_exception_tables,
4944  Dwarf_Error* dw_error);
4945 
4957 DW_API int dwarf_get_cie_of_fde(Dwarf_Fde dw_fde,
4958  Dwarf_Cie * dw_cie_returned,
4959  Dwarf_Error* dw_error);
4960 
4994 DW_API int dwarf_get_cie_info_b(Dwarf_Cie dw_cie,
4995  Dwarf_Unsigned * dw_bytes_in_cie,
4996  Dwarf_Small* dw_version,
4997  char ** dw_augmenter,
4998  Dwarf_Unsigned* dw_code_alignment_factor,
4999  Dwarf_Signed* dw_data_alignment_factor,
5000  Dwarf_Half* dw_return_address_register_rule,
5001  Dwarf_Small ** dw_initial_instructions,
5002  Dwarf_Unsigned* dw_initial_instructions_length,
5003  Dwarf_Half* dw_offset_size,
5004  Dwarf_Error* dw_error);
5005 
5018 DW_API int dwarf_get_cie_index(Dwarf_Cie dw_cie,
5019  Dwarf_Signed* dw_index,
5020  Dwarf_Error * dw_error);
5021 
5040 DW_API int dwarf_get_fde_instr_bytes(Dwarf_Fde dw_fde,
5041  Dwarf_Small ** dw_outinstrs,
5042  Dwarf_Unsigned * dw_outlen,
5043  Dwarf_Error * dw_error);
5044 
5069  Dwarf_Addr dw_pc_requested,
5070  Dwarf_Regtable3* dw_reg_table,
5071  Dwarf_Addr* dw_row_pc,
5072  Dwarf_Error* dw_error);
5073 
5074 /* See discussion of dw_value_type, libdwarf.h. */
5121 DW_API int dwarf_get_fde_info_for_reg3_b(Dwarf_Fde dw_fde,
5122  Dwarf_Half dw_table_column,
5123  Dwarf_Addr dw_pc_requested,
5124  Dwarf_Small * dw_value_type,
5125  Dwarf_Unsigned * dw_offset_relevant,
5126  Dwarf_Unsigned * dw_register,
5127  Dwarf_Unsigned * dw_offset,
5128  Dwarf_Block * dw_block_content,
5129  Dwarf_Addr * dw_row_pc_out,
5130  Dwarf_Bool * dw_has_more_rows,
5131  Dwarf_Addr * dw_subsequent_pc,
5132  Dwarf_Error * dw_error);
5133 
5144  Dwarf_Addr dw_pc_requested,
5145  Dwarf_Small * dw_value_type,
5146  Dwarf_Unsigned* dw_offset_relevant,
5147  Dwarf_Unsigned* dw_register,
5148  Dwarf_Unsigned* dw_offset,
5149  Dwarf_Block * dw_block,
5150  Dwarf_Addr * dw_row_pc_out,
5151  Dwarf_Bool * dw_has_more_rows,
5152  Dwarf_Addr * dw_subsequent_pc,
5153  Dwarf_Error * dw_error);
5154 
5160 DW_API int dwarf_get_fde_for_die(Dwarf_Debug dw_dbg,
5161  Dwarf_Die dw_subr_die,
5162  Dwarf_Fde * dw_returned_fde,
5163  Dwarf_Error* dw_error);
5164 
5172 DW_API int dwarf_get_fde_n(Dwarf_Fde* dw_fde_data,
5173  Dwarf_Unsigned dw_fde_index,
5174  Dwarf_Fde * dw_returned_fde,
5175  Dwarf_Error * dw_error);
5176 
5207 DW_API int dwarf_get_fde_at_pc(Dwarf_Fde* dw_fde_data,
5208  Dwarf_Addr dw_pc_of_interest,
5209  Dwarf_Fde * dw_returned_fde,
5210  Dwarf_Addr * dw_lopc,
5211  Dwarf_Addr * dw_hipc,
5212  Dwarf_Error* dw_error);
5213 
5233 DW_API int dwarf_get_cie_augmentation_data(Dwarf_Cie dw_cie,
5234  Dwarf_Small ** dw_augdata,
5235  Dwarf_Unsigned * dw_augdata_len,
5236  Dwarf_Error* dw_error);
5237 
5257 DW_API int dwarf_get_fde_augmentation_data(Dwarf_Fde dw_fde,
5258  Dwarf_Small ** dw_augdata,
5259  Dwarf_Unsigned * dw_augdata_len,
5260  Dwarf_Error* dw_error);
5261 
5286 DW_API int dwarf_expand_frame_instructions(Dwarf_Cie dw_cie,
5287  Dwarf_Small * dw_instructionspointer,
5288  Dwarf_Unsigned dw_length_in_bytes,
5289  Dwarf_Frame_Instr_Head * dw_head,
5290  Dwarf_Unsigned * dw_instr_count,
5291  Dwarf_Error * dw_error);
5292 
5358 DW_API int dwarf_get_frame_instruction(
5359  Dwarf_Frame_Instr_Head dw_head,
5360  Dwarf_Unsigned dw_instr_index,
5361  Dwarf_Unsigned * dw_instr_offset_in_instrs,
5362  Dwarf_Small * dw_cfa_operation,
5363  const char ** dw_fields_description,
5364  Dwarf_Unsigned * dw_u0,
5365  Dwarf_Unsigned * dw_u1,
5366  Dwarf_Signed * dw_s0,
5367  Dwarf_Signed * dw_s1,
5368  Dwarf_Unsigned * dw_code_alignment_factor,
5369  Dwarf_Signed * dw_data_alignment_factor,
5370  Dwarf_Block * dw_expression_block,
5371  Dwarf_Error * dw_error);
5388  Dwarf_Frame_Instr_Head dw_/* head*/,
5389  Dwarf_Unsigned dw_instr_index,
5390  Dwarf_Unsigned * dw_instr_offset_in_instrs,
5391  Dwarf_Small * dw_cfa_operation,
5392  const char ** dw_fields_description,
5393  Dwarf_Unsigned * dw_u0,
5394  Dwarf_Unsigned * dw_u1,
5395  Dwarf_Unsigned * dw_u2,
5396  Dwarf_Signed * dw_s0,
5397  Dwarf_Signed * dw_s1,
5398  Dwarf_Unsigned * dw_code_alignment_factor,
5399  Dwarf_Signed * dw_data_alignment_factor,
5400  Dwarf_Block * dw_expression_block,
5401  Dwarf_Error * dw_error);
5402 
5412  dw_head);
5413 
5430 DW_API int dwarf_fde_section_offset(Dwarf_Debug dw_dbg,
5431  Dwarf_Fde dw_in_fde,
5432  Dwarf_Off * dw_fde_off,
5433  Dwarf_Off * dw_cie_off,
5434  Dwarf_Error * dw_error);
5435 
5450 DW_API int dwarf_cie_section_offset(Dwarf_Debug dw_dbg,
5451  Dwarf_Cie dw_in_cie,
5452  Dwarf_Off * dw_cie_off,
5453  Dwarf_Error * dw_error);
5454 
5465  Dwarf_Debug dw_dbg,
5466  Dwarf_Half dw_value);
5479  Dwarf_Debug dw_dbg,
5480  Dwarf_Half dw_value);
5491  Dwarf_Debug dw_dbg,
5492  Dwarf_Half dw_value);
5493 
5504  Dwarf_Debug dw_dbg,
5505  Dwarf_Half dw_value);
5516  Dwarf_Debug dw_dbg,
5517  Dwarf_Half dw_value);
5566 DW_API int dwarf_get_abbrev(Dwarf_Debug dw_dbg,
5567  Dwarf_Unsigned dw_offset,
5568  Dwarf_Abbrev * dw_returned_abbrev,
5569  Dwarf_Unsigned* dw_length,
5570  Dwarf_Unsigned* dw_attr_count,
5571  Dwarf_Error* dw_error);
5572 
5584 DW_API int dwarf_get_abbrev_tag(Dwarf_Abbrev dw_abbrev,
5585  Dwarf_Half* dw_return_tag_number,
5586  Dwarf_Error* dw_error);
5587 
5601 DW_API int dwarf_get_abbrev_code(Dwarf_Abbrev dw_abbrev,
5602  Dwarf_Unsigned* dw_return_code_number,
5603  Dwarf_Error* dw_error);
5604 
5618 DW_API int dwarf_get_abbrev_children_flag(Dwarf_Abbrev dw_abbrev,
5619  Dwarf_Signed* dw_return_flag,
5620  Dwarf_Error* dw_error);
5621 
5655 DW_API int dwarf_get_abbrev_entry_b(Dwarf_Abbrev dw_abbrev,
5656  Dwarf_Unsigned dw_indx,
5657  Dwarf_Bool dw_filter_outliers,
5658  Dwarf_Unsigned * dw_returned_attr_num,
5659  Dwarf_Unsigned * dw_returned_form,
5660  Dwarf_Signed * dw_returned_implicit_const,
5661  Dwarf_Off * dw_offset,
5662  Dwarf_Error * dw_error);
5663 
5691 DW_API int dwarf_get_str(Dwarf_Debug dw_dbg,
5692  Dwarf_Off dw_offset,
5693  char** dw_string,
5694  Dwarf_Signed * dw_strlen_of_string,
5695  Dwarf_Error* dw_error);
5696 
5706 /* Allows applications to print the .debug_str_offsets
5707  section.
5708  Beginning at starting_offset zero,
5709  returns data about the first table found.
5710  The value *next_table_offset is the value
5711  of the next table (if any), one byte past
5712  the end of the table whose data is returned..
5713  Returns DW_DLV_NO_ENTRY if the starting offset
5714  is past the end of valid data.
5715 
5716  There is no guarantee that there are no non-0 nonsense
5717  bytes in the section outside of useful tables,
5718  so this can fail and return nonsense or
5719  DW_DLV_ERROR if such garbage exists.
5720 */
5721 
5739  Dwarf_Str_Offsets_Table * dw_table_data,
5740  Dwarf_Error * dw_error);
5741 
5760  Dwarf_Str_Offsets_Table dw_table_data,
5761  Dwarf_Error * dw_error);
5762 
5796 DW_API int dwarf_next_str_offsets_table(
5797  Dwarf_Str_Offsets_Table dw_table_data,
5798  Dwarf_Unsigned * dw_unit_length,
5799  Dwarf_Unsigned * dw_unit_length_offset,
5800  Dwarf_Unsigned * dw_table_start_offset,
5801  Dwarf_Half * dw_entry_size,
5802  Dwarf_Half * dw_version,
5803  Dwarf_Half * dw_padding,
5804  Dwarf_Unsigned * dw_table_value_count,
5805  Dwarf_Error * dw_error);
5806 
5827  Dwarf_Str_Offsets_Table dw_table_data,
5828  Dwarf_Unsigned dw_index_to_entry,
5829  Dwarf_Unsigned * dw_entry_value,
5830  Dwarf_Error * dw_error);
5831 
5849 DW_API int dwarf_str_offsets_statistics(
5850  Dwarf_Str_Offsets_Table dw_table_data,
5851  Dwarf_Unsigned * dw_wasted_byte_count,
5852  Dwarf_Unsigned * dw_table_count,
5853  Dwarf_Error * dw_error);
5854 
5866 DW_API Dwarf_Unsigned dwarf_errno(Dwarf_Error dw_error);
5873 DW_API char* dwarf_errmsg(Dwarf_Error dw_error);
5881 DW_API char* dwarf_errmsg_by_number(Dwarf_Unsigned dw_errornum);
5882 
5896 DW_API void dwarf_error_creation(Dwarf_Debug dw_dbg ,
5897  Dwarf_Error * dw_error, char * dw_errmsg);
5898 
5907 DW_API void dwarf_dealloc_error(Dwarf_Debug dw_dbg,
5908  Dwarf_Error dw_error);
5951 DW_API void dwarf_dealloc(Dwarf_Debug dw_dbg,
5952  void* dw_space, Dwarf_Unsigned dw_type);
5972 DW_API int dwarf_get_debug_sup(Dwarf_Debug dw_dbg,
5973  Dwarf_Half * dw_version,
5974  Dwarf_Small * dw_is_supplementary,
5975  char ** dw_filename,
5976  Dwarf_Unsigned * dw_checksum_len,
5977  Dwarf_Small ** dw_checksum,
5978  Dwarf_Error * dw_error);
6014 DW_API int dwarf_dnames_header(Dwarf_Debug dw_dbg,
6015  Dwarf_Off dw_starting_offset,
6016  Dwarf_Dnames_Head * dw_dn,
6017  Dwarf_Off * dw_offset_of_next_table,
6018  Dwarf_Error * dw_error);
6019 
6027 DW_API void dwarf_dealloc_dnames(Dwarf_Dnames_Head dw_dn);
6028 
6071  Dwarf_Unsigned dw_index,
6072  Dwarf_Unsigned *dw_abbrev_offset,
6073  Dwarf_Unsigned *dw_abbrev_code,
6074  Dwarf_Unsigned *dw_abbrev_tag,
6075  Dwarf_Unsigned dw_array_size,
6076  Dwarf_Half *dw_idxattr_array,
6077  Dwarf_Half *dw_form_array,
6078  Dwarf_Unsigned *dw_idxattr_count);
6079 
6090 DW_API int dwarf_dnames_sizes(Dwarf_Dnames_Head dw_dn,
6091  Dwarf_Unsigned * dw_comp_unit_count,
6092  Dwarf_Unsigned * dw_local_type_unit_count,
6093  Dwarf_Unsigned * dw_foreign_type_unit_count,
6094  Dwarf_Unsigned * dw_bucket_count,
6095  Dwarf_Unsigned * dw_name_count,
6096  /* The following are counted in bytes */
6097  Dwarf_Unsigned * dw_abbrev_table_size,
6098  Dwarf_Unsigned * dw_entry_pool_size,
6099  Dwarf_Unsigned * dw_augmentation_string_size,
6100  char ** dw_augmentation_string,
6101  Dwarf_Unsigned * dw_section_size,
6102  Dwarf_Half * dw_table_version,
6103  Dwarf_Half * dw_offset_size,
6104  Dwarf_Error * dw_error);
6105 
6116 DW_API int dwarf_dnames_offsets(Dwarf_Dnames_Head dw_dn,
6117  Dwarf_Unsigned * dw_header_offset,
6118  Dwarf_Unsigned * dw_cu_table_offset,
6119  Dwarf_Unsigned * dw_tu_local_offset,
6120  Dwarf_Unsigned * dw_foreign_tu_offset,
6121  Dwarf_Unsigned * dw_bucket_offset,
6122  Dwarf_Unsigned * dw_hashes_offset,
6123  Dwarf_Unsigned * dw_stringoffsets_offset,
6124  Dwarf_Unsigned * dw_entryoffsets_offset,
6125  Dwarf_Unsigned * dw_abbrev_table_offset,
6126  Dwarf_Unsigned * dw_entry_pool_offset,
6127  Dwarf_Error * dw_error);
6128 
6152 DW_API int dwarf_dnames_cu_table(Dwarf_Dnames_Head dw_dn,
6153  const char * dw_type,
6154  Dwarf_Unsigned dw_index_number,
6155  Dwarf_Unsigned * dw_offset,
6156  Dwarf_Sig8 * dw_sig,
6157  Dwarf_Error * dw_error);
6158 
6180 DW_API int dwarf_dnames_bucket(Dwarf_Dnames_Head dw_dn,
6181  Dwarf_Unsigned dw_bucket_number,
6182  Dwarf_Unsigned * dw_index,
6183  Dwarf_Unsigned * dw_indexcount,
6184  Dwarf_Error * dw_error);
6185 
6234 DW_API int dwarf_dnames_name(Dwarf_Dnames_Head dw_dn,
6235  Dwarf_Unsigned dw_name_index,
6236  Dwarf_Unsigned * dw_bucket_number,
6237  Dwarf_Unsigned * dw_hash_value,
6238  Dwarf_Unsigned * dw_offset_to_debug_str,
6239  char * * dw_ptrtostr,
6240  Dwarf_Unsigned * dw_offset_in_entrypool,
6241  Dwarf_Unsigned * dw_abbrev_number,
6242  Dwarf_Half * dw_abbrev_tag,
6243  Dwarf_Unsigned dw_array_size,
6244  Dwarf_Half * dw_idxattr_array,
6245  Dwarf_Half * dw_form_array,
6246  Dwarf_Unsigned * dw_idxattr_count,
6247  Dwarf_Error * dw_error);
6248 
6276  Dwarf_Half dw_abbrev_code,
6277  Dwarf_Half * dw_tag,
6278  Dwarf_Unsigned * dw_index_of_abbrev,
6279  Dwarf_Unsigned * dw_number_of_attr_form_entries) ;
6280 
6308  Dwarf_Unsigned dw_abbrev_entry_index,
6309  Dwarf_Unsigned dw_abbrev_form_index,
6310  Dwarf_Unsigned * dw_idx_attr,
6311  Dwarf_Unsigned * dw_form,
6312  Dwarf_Error * dw_error);
6313 
6355 DW_API int dwarf_dnames_entrypool(Dwarf_Dnames_Head dw_dn,
6356  Dwarf_Unsigned dw_offset_in_entrypool,
6357  Dwarf_Unsigned * dw_abbrev_code,
6358  Dwarf_Half * dw_tag,
6359  Dwarf_Unsigned * dw_value_count,
6360  Dwarf_Unsigned * dw_index_of_abbrev,
6361  Dwarf_Unsigned * dw_offset_of_initial_value,
6362  Dwarf_Error * dw_error);
6363 
6424  Dwarf_Unsigned dw_index_of_abbrev,
6425  Dwarf_Unsigned dw_offset_in_entrypool_of_values,
6426  Dwarf_Unsigned dw_arrays_length,
6427  Dwarf_Half *dw_array_idx_number,
6428  Dwarf_Half *dw_array_form,
6429  Dwarf_Unsigned *dw_array_of_offsets,
6430  Dwarf_Sig8 *dw_array_of_signatures,
6431  Dwarf_Bool *dw_single_cu,
6432  Dwarf_Unsigned *dw_cu_offset,
6433  Dwarf_Unsigned *dw_offset_of_next_entrypool,
6434  Dwarf_Error *dw_error);
6435 
6462 DW_API int dwarf_get_aranges(Dwarf_Debug dw_dbg,
6463  Dwarf_Arange** dw_aranges,
6464  Dwarf_Signed * dw_arange_count,
6465  Dwarf_Error* dw_error);
6466 
6486 DW_API int dwarf_get_arange(Dwarf_Arange* dw_aranges,
6487  Dwarf_Unsigned dw_arange_count,
6488  Dwarf_Addr dw_address,
6489  Dwarf_Arange * dw_returned_arange,
6490  Dwarf_Error* dw_error);
6491 
6504 DW_API int dwarf_get_cu_die_offset(Dwarf_Arange dw_arange,
6505  Dwarf_Off * dw_return_offset,
6506  Dwarf_Error* dw_error);
6507 
6520 DW_API int dwarf_get_arange_cu_header_offset(Dwarf_Arange dw_arange,
6521  Dwarf_Off * dw_return_cu_header_offset,
6522  Dwarf_Error* dw_error);
6523 
6549 DW_API int dwarf_get_arange_info_b(Dwarf_Arange dw_arange,
6550  Dwarf_Unsigned* dw_segment,
6551  Dwarf_Unsigned* dw_segment_entry_size,
6552  Dwarf_Addr * dw_start,
6553  Dwarf_Unsigned* dw_length,
6554  Dwarf_Off * dw_cu_die_offset,
6555  Dwarf_Error * dw_error );
6595 DW_API int dwarf_get_globals(Dwarf_Debug dw_dbg,
6596  Dwarf_Global** dw_globals,
6597  Dwarf_Signed * dw_number_of_globals,
6598  Dwarf_Error * dw_error);
6599 
6609 DW_API void dwarf_globals_dealloc(Dwarf_Debug dw_dbg,
6610  Dwarf_Global* dw_globals,
6611  Dwarf_Signed dw_number_of_globals);
6612 
6625 DW_API int dwarf_globname(Dwarf_Global dw_global,
6626  char ** dw_returned_name,
6627  Dwarf_Error* dw_error);
6628 
6641 DW_API int dwarf_global_die_offset(Dwarf_Global dw_global,
6642  Dwarf_Off * dw_return_offset,
6643  Dwarf_Error * dw_error);
6644 
6657 DW_API int dwarf_global_cu_offset(Dwarf_Global dw_global,
6658  Dwarf_Off* dw_return_offset,
6659  Dwarf_Error* dw_error);
6660 
6679 DW_API int dwarf_global_name_offsets(Dwarf_Global dw_global,
6680  char ** dw_returned_name,
6681  Dwarf_Off* dw_die_offset,
6682  Dwarf_Off* dw_cu_offset,
6683  Dwarf_Error* dw_error);
6684 
6690 DW_API int dwarf_get_globals_header(Dwarf_Global dw_global,
6691  Dwarf_Off * dw_offset_pub_header,
6692  Dwarf_Unsigned * dw_length_size,
6693  Dwarf_Unsigned * dw_length_pub,
6694  Dwarf_Unsigned * dw_version,
6695  Dwarf_Unsigned * dw_header_info_offset,
6696  Dwarf_Unsigned * dw_info_length,
6697  Dwarf_Error * dw_error);
6698 
6706 DW_API int dwarf_get_pubtypes(Dwarf_Debug dw_dbg,
6707  Dwarf_Type ** dw_types,
6708  Dwarf_Signed * dw_number_of_types,
6709  Dwarf_Error * dw_error);
6710 DW_API void dwarf_pubtypes_dealloc(Dwarf_Debug dw_dbg,
6711  Dwarf_Type * dw_pubtypes,
6712  Dwarf_Signed dw_number_of_pubtypes);
6713 
6714 DW_API int dwarf_pubtypename(Dwarf_Type dw_type,
6715  char ** dw_returned_name,
6716  Dwarf_Error* dw_error);
6717 DW_API int dwarf_pubtype_type_die_offset(Dwarf_Type dw_type,
6718  Dwarf_Off * dw_return_offset,
6719  Dwarf_Error* dw_error);
6720 DW_API int dwarf_pubtype_cu_offset(Dwarf_Type dw_type,
6721  Dwarf_Off * dw_return_offset,
6722  Dwarf_Error* dw_error);
6723 DW_API int dwarf_pubtype_name_offsets(Dwarf_Type dw_type,
6724  char ** dw_returned_name,
6725  Dwarf_Off * dw_die_offset,
6726  Dwarf_Off * dw_cu_offset,
6727  Dwarf_Error* dw_error);
6728 
6736 DW_API int dwarf_get_funcs(Dwarf_Debug dw_dbg,
6737  Dwarf_Func ** dw_funcs,
6738  Dwarf_Signed * dw_number_of_funcs,
6739  Dwarf_Error* dw_error);
6740 DW_API void dwarf_funcs_dealloc(Dwarf_Debug dw_dbg,
6741  Dwarf_Func * dw_funcs,
6742  Dwarf_Signed dw_number_of_funcs);
6743 
6744 DW_API int dwarf_funcname(Dwarf_Func dw_func,
6745  char ** dw_returned_name,
6746  Dwarf_Error* dw_error);
6747 DW_API int dwarf_func_die_offset(Dwarf_Func dw_func,
6748  Dwarf_Off * dw_return_offset,
6749  Dwarf_Error* dw_error);
6750 DW_API int dwarf_func_cu_offset(Dwarf_Func dw_func,
6751  Dwarf_Off * dw_return_offset,
6752  Dwarf_Error* dw_error);
6753 DW_API int dwarf_func_name_offsets(Dwarf_Func dw_func,
6754  char ** dw_returned_name,
6755  Dwarf_Off * dw_die_offset,
6756  Dwarf_Off * dw_cu_offset,
6757  Dwarf_Error* dw_error);
6758 
6765 DW_API int dwarf_get_types(Dwarf_Debug dw_dbg,
6766  Dwarf_Type ** dw_types,
6767  Dwarf_Signed * dw_number_of_types,
6768  Dwarf_Error * dw_error);
6769 DW_API void dwarf_types_dealloc(Dwarf_Debug dw_dbg,
6770  Dwarf_Type * dw_types,
6771  Dwarf_Signed dw_number_of_types);
6772 
6773 /* The fourth gives all the values that the next
6774  three combined do.
6775 */
6776 DW_API int dwarf_typename(Dwarf_Type dw_type,
6777  char ** dw_returned_name,
6778  Dwarf_Error* dw_error);
6779 DW_API int dwarf_type_die_offset(Dwarf_Type dw_type,
6780  Dwarf_Off * dw_return_offset,
6781  Dwarf_Error* dw_error);
6782 DW_API int dwarf_type_cu_offset(Dwarf_Type dw_type,
6783  Dwarf_Off * dw_return_offset,
6784  Dwarf_Error* dw_error);
6785 DW_API int dwarf_type_name_offsets(Dwarf_Type dw_type,
6786  char ** dw_returned_name,
6787  Dwarf_Off * dw_die_offset,
6788  Dwarf_Off * dw_cu_offset,
6789  Dwarf_Error* dw_error);
6790 
6797 DW_API int dwarf_get_vars(Dwarf_Debug dw_dbg,
6798  Dwarf_Var ** dw_vars,
6799  Dwarf_Signed* dw_number_of_vars,
6800  Dwarf_Error * dw_error);
6801 DW_API void dwarf_vars_dealloc(Dwarf_Debug dw_dbg,
6802  Dwarf_Var * dw_vars,
6803  Dwarf_Signed dw_number_of_vars);
6804 
6805 DW_API int dwarf_varname(Dwarf_Var dw_var,
6806  char ** dw_returned_name,
6807  Dwarf_Error* dw_error);
6808 DW_API int dwarf_var_die_offset(Dwarf_Var dw_var,
6809  Dwarf_Off * dw_return_offset,
6810  Dwarf_Error* dw_error);
6811 DW_API int dwarf_var_cu_offset(Dwarf_Var dw_var,
6812  Dwarf_Off * dw_return_offset,
6813  Dwarf_Error* dw_error);
6814 DW_API int dwarf_var_name_offsets(Dwarf_Var dw_var,
6815  char ** dw_returned_name,
6816  Dwarf_Off * dw_die_offset,
6817  Dwarf_Off * dw_cu_offset,
6818  Dwarf_Error* dw_error);
6819 
6832 DW_API int dwarf_get_weaks(Dwarf_Debug dw_dbg,
6833  Dwarf_Weak ** dw_weaks,
6834  Dwarf_Signed * dw_number_of_weaks,
6835  Dwarf_Error * dw_error);
6836 DW_API void dwarf_weaks_dealloc(Dwarf_Debug dw_dbg,
6837  Dwarf_Weak * dw_weaks,
6838  Dwarf_Signed dw_number_of_weaks);
6839 
6840 DW_API int dwarf_weakname(Dwarf_Weak dw_weak,
6841  char ** dw_returned_name,
6842  Dwarf_Error* dw_error);
6843 DW_API int dwarf_weak_die_offset(Dwarf_Weak dw_weak,
6844  Dwarf_Off * dw_return_offset,
6845  Dwarf_Error* dw_error);
6846 DW_API int dwarf_weak_cu_offset(Dwarf_Weak dw_weak,
6847  Dwarf_Off * dw_return_offset,
6848  Dwarf_Error* dw_error);
6849 DW_API int dwarf_weak_name_offsets(Dwarf_Weak dw_weak,
6850  char ** dw_returned_name,
6851  Dwarf_Off * dw_die_offset,
6852  Dwarf_Off * dw_cu_offset,
6853  Dwarf_Error* dw_error);
6872 DW_API int dwarf_return_empty_pubnames(Dwarf_Debug dw_dbg,
6873  int dw_flag);
6874 
6880 /* BEGIN: .debug_gnu_pubnames .debug_gnu_typenames access,
6881  calling these Gnu_Index as a general reference. */
6882 DW_API int dwarf_get_gnu_index_head(Dwarf_Debug /*dbg*/,
6883  /* The following arg false to select gnu_pubtypes */
6884  Dwarf_Bool /*for_gdb_pubnames*/ ,
6885  Dwarf_Gnu_Index_Head * /*index_head_out*/,
6886  Dwarf_Unsigned * /*index_block_count_out*/,
6887  Dwarf_Error * /*error*/);
6888 /* Frees all resources used for the indexes. */
6889 DW_API void dwarf_gnu_index_dealloc(Dwarf_Gnu_Index_Head /*head*/);
6890 
6891 DW_API int dwarf_get_gnu_index_block(Dwarf_Gnu_Index_Head /*head*/,
6892  Dwarf_Unsigned /*number*/,
6893  Dwarf_Unsigned * /*block_length */,
6894  Dwarf_Half * /*version */,
6895  Dwarf_Unsigned * /*offset_into_debug_info*/,
6896  Dwarf_Unsigned * /*size_of_debug_info_area*/,
6897  Dwarf_Unsigned * /*count_of_index_entries*/,
6898  Dwarf_Error * /*error*/);
6899 
6900 DW_API int dwarf_get_gnu_index_block_entry(
6901  Dwarf_Gnu_Index_Head /*head*/,
6902  Dwarf_Unsigned /*blocknumber*/,
6903  Dwarf_Unsigned /*entrynumber*/,
6904  Dwarf_Unsigned * /*offset_in_debug_info*/,
6905  const char ** /*name_string*/,
6906  unsigned char * /*flagbyte*/,
6907  unsigned char * /*staticorglobal*/,
6908  unsigned char * /*typeofentry*/,
6909  Dwarf_Error * /*error*/);
6910 /* END: debug_gnu_pubnames/typenames access, */
6911 
6972 DW_API int dwarf_gdbindex_header(Dwarf_Debug dw_dbg,
6973  Dwarf_Gdbindex * dw_gdbindexptr,
6974  Dwarf_Unsigned * dw_version,
6975  Dwarf_Unsigned * dw_cu_list_offset,
6976  Dwarf_Unsigned * dw_types_cu_list_offset,
6977  Dwarf_Unsigned * dw_address_area_offset,
6978  Dwarf_Unsigned * dw_symbol_table_offset,
6979  Dwarf_Unsigned * dw_constant_pool_offset,
6980  Dwarf_Unsigned * dw_section_size,
6981  const char ** dw_section_name,
6982  Dwarf_Error * dw_error);
6983 
6991 DW_API void dwarf_dealloc_gdbindex(Dwarf_Gdbindex dw_gdbindexptr);
6992 
7003 DW_API int dwarf_gdbindex_culist_array(
7004  Dwarf_Gdbindex dw_gdbindexptr,
7005  Dwarf_Unsigned * dw_list_length,
7006  Dwarf_Error * dw_error);
7007 
7023 DW_API int dwarf_gdbindex_culist_entry(
7024  Dwarf_Gdbindex dw_gdbindexptr,
7025  Dwarf_Unsigned dw_entryindex,
7026  Dwarf_Unsigned * dw_cu_offset,
7027  Dwarf_Unsigned * dw_cu_length,
7028  Dwarf_Error * dw_error);
7029 
7042  Dwarf_Gdbindex dw_gdbindexptr,
7043  Dwarf_Unsigned * dw_types_list_length,
7044  Dwarf_Error * dw_error);
7045 
7046 /* entryindex: 0 to types_list_length -1 */
7067  Dwarf_Gdbindex dw_gdbindexptr,
7068  Dwarf_Unsigned dw_types_entryindex,
7069  Dwarf_Unsigned * dw_cu_offset,
7070  Dwarf_Unsigned * dw_tu_offset,
7071  Dwarf_Unsigned * dw_type_signature,
7072  Dwarf_Error * dw_error);
7073 
7088 DW_API int dwarf_gdbindex_addressarea(
7089  Dwarf_Gdbindex dw_gdbindexptr,
7090  Dwarf_Unsigned * dw_addressarea_list_length,
7091  Dwarf_Error * dw_error);
7092 
7112  Dwarf_Gdbindex dw_gdbindexptr,
7113  Dwarf_Unsigned dw_entryindex,
7114  Dwarf_Unsigned * dw_low_address,
7115  Dwarf_Unsigned * dw_high_address,
7116  Dwarf_Unsigned * dw_cu_index,
7117  Dwarf_Error * dw_error);
7118 
7132  Dwarf_Gdbindex dw_gdbindexptr,
7133  Dwarf_Unsigned * dw_symtab_list_length,
7134  Dwarf_Error * dw_error);
7135 
7154  Dwarf_Gdbindex dw_gdbindexptr,
7155  Dwarf_Unsigned dw_entryindex,
7156  Dwarf_Unsigned * dw_string_offset,
7157  Dwarf_Unsigned * dw_cu_vector_offset,
7158  Dwarf_Error * dw_error);
7159 
7178  Dwarf_Gdbindex dw_gdbindexptr,
7179  Dwarf_Unsigned dw_cuvector_offset,
7180  Dwarf_Unsigned * dw_innercount,
7181  Dwarf_Error * dw_error);
7182 
7200  Dwarf_Gdbindex dw_gdbindexptr,
7201  Dwarf_Unsigned dw_cuvector_offset_in,
7202  Dwarf_Unsigned dw_innerindex,
7203  Dwarf_Unsigned * dw_field_value,
7204  Dwarf_Error * dw_error);
7205 
7229  Dwarf_Gdbindex dw_gdbindexptr,
7230  Dwarf_Unsigned dw_field_value,
7231  Dwarf_Unsigned * dw_cu_index,
7232  Dwarf_Unsigned * dw_symbol_kind,
7233  Dwarf_Unsigned * dw_is_static,
7234  Dwarf_Error * dw_error);
7235 
7252  Dwarf_Gdbindex dw_gdbindexptr,
7253  Dwarf_Unsigned dw_stringoffset,
7254  const char ** dw_string_ptr,
7255  Dwarf_Error * dw_error);
7296 DW_API int dwarf_get_xu_index_header(Dwarf_Debug dw_dbg,
7297  const char * dw_section_type, /* "tu" or "cu" */
7298  Dwarf_Xu_Index_Header * dw_xuhdr,
7299  Dwarf_Unsigned * dw_version_number,
7300  Dwarf_Unsigned * dw_section_count,
7301  Dwarf_Unsigned * dw_units_count,
7302  Dwarf_Unsigned * dw_hash_slots_count,
7303  const char ** dw_sect_name,
7304  Dwarf_Error * dw_error);
7305 
7314 DW_API void dwarf_dealloc_xu_header(Dwarf_Xu_Index_Header dw_xuhdr);
7315 
7331  Dwarf_Xu_Index_Header dw_xuhdr,
7332  const char ** dw_typename,
7333  const char ** dw_sectionname,
7334  Dwarf_Error * dw_error);
7335 
7359  Dwarf_Unsigned dw_index,
7360  Dwarf_Sig8 * dw_hash_value,
7361  Dwarf_Unsigned * dw_index_to_sections,
7362  Dwarf_Error * dw_error);
7363 
7364 /* Columns 0 to L-1, valid. */
7388  Dwarf_Unsigned dw_column_index,
7389  Dwarf_Unsigned* dw_SECT_number,
7390  const char ** dw_SECT_name,
7391  Dwarf_Error * dw_error);
7392 
7414 DW_API int dwarf_get_xu_section_offset(
7415  Dwarf_Xu_Index_Header dw_xuhdr,
7416  Dwarf_Unsigned dw_row_index,
7417  Dwarf_Unsigned dw_column_index,
7418  Dwarf_Unsigned* dw_sec_offset,
7419  Dwarf_Unsigned* dw_sec_size,
7420  Dwarf_Error * dw_error);
7421 
7443 DW_API int dwarf_get_debugfission_for_die(Dwarf_Die dw_die,
7444  Dwarf_Debug_Fission_Per_CU * dw_percu_out,
7445  Dwarf_Error * dw_error);
7446 
7465  Dwarf_Sig8 * dw_hash_sig,
7466  const char * dw_cu_type,
7467  Dwarf_Debug_Fission_Per_CU * dw_percu_out,
7468  Dwarf_Error * dw_error);
7469 
7470 /* END debugfission dwp .debug_cu_index
7471  and .debug_tu_indexmeaningfumeaningfu operations. */
7472 
7548 DW_API int dwarf_gnu_debuglink(Dwarf_Debug dw_dbg,
7549  char ** dw_debuglink_path_returned,
7550  unsigned char ** dw_crc_returned,
7551  char ** dw_debuglink_fullpath_returned,
7552  unsigned int * dw_debuglink_path_length_returned,
7553  unsigned int * dw_buildid_type_returned,
7554  char ** dw_buildid_owner_name_returned,
7555  unsigned char ** dw_buildid_returned,
7556  unsigned int * dw_buildid_length_returned,
7557  char *** dw_paths_returned,
7558  unsigned int * dw_paths_length_returned,
7559  Dwarf_Error* dw_error);
7560 
7594 DW_API int dwarf_suppress_debuglink_crc(int dw_suppress);
7595 
7615  const char * dw_pathname,
7616  Dwarf_Error* dw_error);
7617 
7639 DW_API int dwarf_crc32(Dwarf_Debug dw_dbg,
7640  unsigned char * dw_crcbuf,
7641  Dwarf_Error * dw_error);
7642 
7658 DW_API unsigned int dwarf_basic_crc32(const unsigned char * dw_buf,
7659  unsigned long dw_len,
7660  unsigned int dw_init);
7673 #define DW_HARMLESS_ERROR_CIRCULAR_LIST_DEFAULT_SIZE 4
7674 
7717 DW_API int dwarf_get_harmless_error_list(Dwarf_Debug dw_dbg,
7718  unsigned int dw_count,
7719  const char ** dw_errmsg_ptrs_array,
7720  unsigned int * dw_newerr_count);
7721 
7742 DW_API unsigned int dwarf_set_harmless_error_list_size(
7743  Dwarf_Debug dw_dbg,
7744  unsigned int dw_maxcount);
7745 
7757 DW_API void dwarf_insert_harmless_error(Dwarf_Debug dw_dbg,
7758  char * dw_newerror);
7787 DW_API int dwarf_get_ACCESS_name(unsigned int dw_val_in,
7788  const char ** dw_s_out);
7791 DW_API int dwarf_get_ADDR_name(unsigned int dw_val_in,
7792  const char ** dw_s_out);
7795 DW_API int dwarf_get_AT_name(unsigned int dw_val_in,
7796  const char ** dw_s_out);
7799 DW_API int dwarf_get_ATCF_name(unsigned int dw_val_in,
7800  const char ** dw_s_out);
7803 DW_API int dwarf_get_ATE_name(unsigned int dw_val_in,
7804  const char ** dw_s_out);
7807 DW_API int dwarf_get_CC_name(unsigned int dw_val_in,
7808  const char ** dw_s_out);
7811 DW_API int dwarf_get_CFA_name(unsigned int dw_val_in,
7812  const char ** dw_s_out);
7815 DW_API int dwarf_get_children_name(unsigned int dw_val_in,
7816  const char ** dw_s_out);
7819 DW_API int dwarf_get_CHILDREN_name(unsigned int dw_val_in,
7820  const char ** dw_s_out);
7823 DW_API int dwarf_get_DEFAULTED_name(unsigned int dw_val_in,
7824  const char ** dw_s_out);
7827 DW_API int dwarf_get_DS_name(unsigned int dw_val_in,
7828  const char ** dw_s_out);
7831 DW_API int dwarf_get_DSC_name(unsigned int dw_val_in,
7832  const char ** dw_s_out);
7837 DW_API int dwarf_get_GNUIKIND_name(unsigned int dw_val_in,
7838  const char ** dw_s_out);
7843 DW_API int dwarf_get_EH_name(unsigned int dw_val_in,
7844  const char ** dw_s_out);
7847 DW_API int dwarf_get_END_name(unsigned int dw_val_in,
7848  const char ** dw_s_out);
7851 DW_API int dwarf_get_FORM_name(unsigned int dw_val_in,
7852  const char ** dw_s_out);
7859 DW_API int dwarf_get_FRAME_name(unsigned int dw_val_in,
7860  const char ** dw_s_out);
7865 DW_API int dwarf_get_GNUIKIND_name(unsigned int dw_val_in,
7866  const char ** dw_s_out);
7871 DW_API int dwarf_get_GNUIKIND_name(unsigned int dw_val_in,
7872  const char ** dw_s_out);
7877 DW_API int dwarf_get_GNUIVIS_name(unsigned int dw_val_in,
7878  const char ** dw_s_out);
7879 
7882 DW_API int dwarf_get_ID_name(unsigned int dw_val_in,
7883  const char ** dw_s_out);
7886 DW_API int dwarf_get_IDX_name(unsigned int dw_val_in,
7887  const char ** dw_s_out);
7890 DW_API int dwarf_get_INL_name(unsigned int dw_val_in,
7891  const char ** dw_s_out);
7894 DW_API int dwarf_get_ISA_name(unsigned int dw_val_in,
7895  const char ** dw_s_out);
7898 DW_API int dwarf_get_LANG_name(unsigned int dw_val_in,
7899  const char ** dw_s_out);
7902 DW_API int dwarf_get_LLE_name(unsigned int dw_val_in,
7903  const char ** dw_s_out);
7909 DW_API int dwarf_get_LLEX_name(unsigned int dw_val_in,
7910  const char ** dw_s_out );
7911 
7914 DW_API int dwarf_get_LNCT_name(unsigned int dw_val_in,
7915  const char ** dw_s_out);
7918 DW_API int dwarf_get_LNE_name(unsigned int dw_val_in,
7919  const char ** dw_s_out);
7922 DW_API int dwarf_get_LNS_name(unsigned int dw_val_in,
7923  const char ** dw_s_out);
7928 DW_API int dwarf_get_MACINFO_name(unsigned int dw_val_in,
7929  const char ** dw_s_out);
7934 DW_API int dwarf_get_MACRO_name(unsigned int dw_val_in,
7935  const char ** dw_s_out);
7938 DW_API int dwarf_get_OP_name(unsigned int dw_val_in,
7939  const char ** dw_s_out);
7942 DW_API int dwarf_get_ORD_name(unsigned int dw_val_in,
7943  const char ** dw_s_out);
7946 DW_API int dwarf_get_RLE_name(unsigned int dw_val_in,
7947  const char ** dw_s_out);
7950 DW_API int dwarf_get_SECT_name(unsigned int dw_val_in,
7951  const char ** dw_s_out);
7954 DW_API int dwarf_get_TAG_name(unsigned int dw_val_in,
7955  const char ** dw_s_out);
7958 DW_API int dwarf_get_UT_name(unsigned int dw_val_in,
7959  const char ** dw_s_out);
7962 DW_API int dwarf_get_VIRTUALITY_name(unsigned int dw_val_in,
7963  const char ** dw_s_out);
7966 DW_API int dwarf_get_VIS_name(unsigned int dw_val_in,
7967  const char ** dw_s_out);
7968 
7979 DW_API int dwarf_get_FORM_CLASS_name(enum Dwarf_Form_Class dw_fc,
7980  const char ** dw_s_out);
8021 DW_API int dwarf_get_die_section_name(Dwarf_Debug dw_dbg,
8022  Dwarf_Bool dw_is_info,
8023  const char ** dw_sec_name,
8024  Dwarf_Error * dw_error);
8025 
8032 DW_API int dwarf_get_die_section_name_b(Dwarf_Die dw_die,
8033  const char ** dw_sec_name,
8034  Dwarf_Error * dw_error);
8035 
8038 DW_API int dwarf_get_macro_section_name(Dwarf_Debug dw_dbg,
8039  const char ** dw_sec_name_out,
8040  Dwarf_Error * dw_err);
8041 
8084 DW_API int dwarf_get_real_section_name(Dwarf_Debug dw_dbg,
8085  const char * dw_std_section_name,
8086  const char ** dw_actual_sec_name_out,
8087  Dwarf_Small * dw_marked_zcompressed,
8088  Dwarf_Small * dw_marked_zlib_compressed,
8089  Dwarf_Small * dw_marked_shf_compressed,
8090  Dwarf_Unsigned * dw_compressed_length,
8091  Dwarf_Unsigned * dw_uncompressed_length,
8092  Dwarf_Error * dw_error);
8093 
8098 DW_API int dwarf_get_frame_section_name(Dwarf_Debug dw_dbg,
8099  const char ** dw_section_name_out,
8100  Dwarf_Error * dw_error);
8101 
8108  const char ** dw_section_name_out,
8109  Dwarf_Error * dw_error);
8110 
8115  const char ** dw_section_name_out,
8116  Dwarf_Error * dw_error);
8117 
8121 DW_API int dwarf_get_ranges_section_name(Dwarf_Debug dw_dbg,
8122  const char ** dw_section_name_out,
8123  Dwarf_Error * dw_error);
8124 
8125 /* These two get the offset or address size as defined
8126  by the object format (not by DWARF). */
8132 DW_API int dwarf_get_offset_size(Dwarf_Debug /*dbg*/,
8133  Dwarf_Half * /*offset_size*/,
8134  Dwarf_Error * /*error*/);
8140 DW_API int dwarf_get_address_size(Dwarf_Debug /*dbg*/,
8141  Dwarf_Half * /*addr_size*/,
8142  Dwarf_Error * /*error*/);
8143 
8147 DW_API int dwarf_get_string_section_name(Dwarf_Debug dw_dbg,
8148  const char ** dw_section_name_out,
8149  Dwarf_Error * dw_error);
8150 
8154 DW_API int dwarf_get_line_section_name(Dwarf_Debug dw_dbg,
8155  const char ** dw_section_name_out,
8156  Dwarf_Error * dw_error);
8157 
8172  const char ** dw_section_name_out,
8173  Dwarf_Error * dw_error);
8174 
8194  const char * dw_section_name,
8195  Dwarf_Addr * dw_section_addr,
8196  Dwarf_Unsigned* dw_section_size,
8197  Dwarf_Error * dw_error);
8198 
8221  int dw_section_index,
8222  const char ** dw_section_name,
8223  Dwarf_Addr* dw_section_addr,
8224  Dwarf_Unsigned* dw_section_size,
8225  Dwarf_Error* dw_error);
8226 
8229 DW_API int dwarf_get_section_count(Dwarf_Debug dw_dbg);
8230 
8248  Dwarf_Unsigned * dw_debug_info_size,
8249  Dwarf_Unsigned * dw_debug_abbrev_size,
8250  Dwarf_Unsigned * dw_debug_line_size,
8251  Dwarf_Unsigned * dw_debug_loc_size,
8252  Dwarf_Unsigned * dw_debug_aranges_size,
8253 
8254  Dwarf_Unsigned * dw_debug_macinfo_size,
8255  Dwarf_Unsigned * dw_debug_pubnames_size,
8256  Dwarf_Unsigned * dw_debug_str_size,
8257  Dwarf_Unsigned * dw_debug_frame_size,
8258  Dwarf_Unsigned * dw_debug_ranges_size,
8259 
8260  Dwarf_Unsigned * dw_debug_pubtypes_size,
8261  Dwarf_Unsigned * dw_debug_types_size,
8262  Dwarf_Unsigned * dw_debug_macro_size,
8263  Dwarf_Unsigned * dw_debug_str_offsets_size,
8264  Dwarf_Unsigned * dw_debug_sup_size,
8265 
8266  Dwarf_Unsigned * dw_debug_cu_index_size,
8267  Dwarf_Unsigned * dw_debug_tu_index_size,
8268  Dwarf_Unsigned * dw_debug_names_size,
8269  Dwarf_Unsigned * dw_debug_loclists_size,
8270  Dwarf_Unsigned * dw_debug_rnglists_size);
8314 DW_API int dwarf_sec_group_sizes(Dwarf_Debug dw_dbg,
8315  Dwarf_Unsigned * dw_section_count_out,
8316  Dwarf_Unsigned * dw_group_count_out,
8317  Dwarf_Unsigned * dw_selected_group_out,
8318  Dwarf_Unsigned * dw_map_entry_count_out,
8319  Dwarf_Error * dw_error);
8320 
8351 DW_API int dwarf_sec_group_map(Dwarf_Debug dw_dbg,
8352  Dwarf_Unsigned dw_map_entry_count,
8353  Dwarf_Unsigned * dw_group_numbers_array,
8354  Dwarf_Unsigned * dw_sec_numbers_array,
8355  const char ** dw_sec_names_array,
8356  Dwarf_Error * dw_error);
8362 DW_API int dwarf_encode_leb128(Dwarf_Unsigned /*val*/,
8363  int * /*nbytes*/,
8364  char * /*space*/,
8365  int /*splen*/);
8366 DW_API int dwarf_encode_signed_leb128(Dwarf_Signed /*val*/,
8367  int * /*nbytes*/,
8368  char * /*space*/,
8369  int /*splen*/);
8370 /* Same for LEB decoding routines.
8371  caller sets endptr to an address one past the last valid
8372  address the library should be allowed to
8373  access. */
8374 DW_API int dwarf_decode_leb128(char * /*leb*/,
8375  Dwarf_Unsigned * /*leblen*/,
8376  Dwarf_Unsigned * /*outval*/,
8377  char * /*endptr*/);
8378 DW_API int dwarf_decode_signed_leb128(char * /*leb*/,
8379  Dwarf_Unsigned * /*leblen*/,
8380  Dwarf_Signed * /*outval*/,
8381  char * /*endptr*/);
8398 DW_API const char * dwarf_package_version(void);
8399 
8415 DW_API int dwarf_set_stringcheck(int dw_stringcheck);
8416 
8438 DW_API int dwarf_set_reloc_application(int dw_apply);
8439 
8440 /* dwarf_get_endian_copy_function new. December 2019. */
8441 DW_API void (*dwarf_get_endian_copy_function(Dwarf_Debug /*dbg*/))
8442  (void *, const void * /*src*/, unsigned long /*srclen*/);
8443 
8444 /* A global flag in libdwarf. Applies to all Dwarf_Debug */
8445 DW_API extern Dwarf_Cmdline_Options dwarf_cmdline_options;
8446 
8461 DW_API void dwarf_record_cmdline_options(
8462  Dwarf_Cmdline_Options dw_dd_options);
8463 
8482 DW_API int dwarf_set_de_alloc_flag(int dw_v);
8483 
8506  Dwarf_Debug dw_dbg,
8507  Dwarf_Small dw_value);
8508 
8515 DW_API int dwarf_object_detector_path_b(const char * /*path*/,
8516  char * /* outpath_buffer*/,
8517  unsigned long /* outpathlen*/,
8518  char ** /* gl_pathnames*/,
8519  unsigned int /* gl_pathcount*/,
8520  unsigned int * /* ftype*/,
8521  unsigned int * /* endian*/,
8522  unsigned int * /* offsetsize*/,
8523  Dwarf_Unsigned * /* filesize*/,
8524  unsigned char * /* pathsource*/,
8525  int * /*errcode*/);
8526 
8527 /* Solely looks for dSYM */
8528 DW_API int dwarf_object_detector_path_dSYM(const char * /*path*/,
8529  char * /* outpath*/,
8530  unsigned long /* outpath_len*/,
8531  char ** /* gl_pathnames*/,
8532  unsigned int /* gl_pathcount*/,
8533  unsigned int * /* ftype*/,
8534  unsigned int * /* endian*/,
8535  unsigned int * /* offsetsize*/,
8536  Dwarf_Unsigned * /* filesize*/,
8537  unsigned char * /* pathsource*/,
8538  int * /* errcode*/);
8539 
8540 DW_API int dwarf_object_detector_fd(int /*fd*/,
8541  unsigned int * /*ftype*/,
8542  unsigned int * /*endian*/,
8543  unsigned int * /*offsetsize*/,
8544  Dwarf_Unsigned * /*filesize*/,
8545  int * /*errcode*/);
8546 
8550 #ifdef __cplusplus
8551 }
8552 #endif /* __cplusplus */
8553 #endif /* _LIBDWARF_H */
dwarf_gdbindex_culist_array
int dwarf_gdbindex_culist_array(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_list_length, Dwarf_Error *dw_error)
Returns the culist array length.
dwarf_srclines_b
int dwarf_srclines_b(Dwarf_Die dw_cudie, Dwarf_Unsigned *dw_version_out, Dwarf_Small *dw_table_count, Dwarf_Line_Context *dw_linecontext, Dwarf_Error *dw_error)
Initialize Dwarf_Line_Context for line table access.
dwarf_find_die_given_sig8
int dwarf_find_die_given_sig8(Dwarf_Debug dw_dbg, Dwarf_Sig8 *dw_ref, Dwarf_Die *dw_die_out, Dwarf_Bool *dw_is_info, Dwarf_Error *dw_error)
Retrieves a DIE from a DW_UT_split_type or DW_UT_type CU.
dwarf_lineendsequence
int dwarf_lineendsequence(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Read Line endsequence register flag.
dwarf_get_cie_index
int dwarf_get_cie_index(Dwarf_Cie dw_cie, Dwarf_Signed *dw_index, Dwarf_Error *dw_error)
Returns CIE index given CIE.
Dwarf_Small
unsigned char Dwarf_Small
Definition: libdwarf.h:217
dwarf_get_frame_section_name_eh_gnu
int dwarf_get_frame_section_name_eh_gnu(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get GNU .eh_frame section name.
dwarf_whatform_direct
int dwarf_whatform_direct(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_initial_form, Dwarf_Error *dw_error)
Returns the initial form of the Dwarf_Attribute.
dwarf_get_GNUIKIND_name
int dwarf_get_GNUIKIND_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_GNUIKIND_name - libdwarf invention
dwarf_get_xu_section_offset
int dwarf_get_xu_section_offset(Dwarf_Xu_Index_Header dw_xuhdr, Dwarf_Unsigned dw_row_index, Dwarf_Unsigned dw_column_index, Dwarf_Unsigned *dw_sec_offset, Dwarf_Unsigned *dw_sec_size, Dwarf_Error *dw_error)
Get row data (section data) for a row and column.
dwarf_get_fde_instr_bytes
int dwarf_get_fde_instr_bytes(Dwarf_Fde dw_fde, Dwarf_Small **dw_outinstrs, Dwarf_Unsigned *dw_outlen, Dwarf_Error *dw_error)
Returns length and pointer to access frame instructions.
dwarf_die_abbrev_global_offset
int dwarf_die_abbrev_global_offset(Dwarf_Die dw_die, Dwarf_Off *dw_abbrev_offset, Dwarf_Unsigned *dw_abbrev_count, Dwarf_Error *dw_error)
Returns the abbrev section offset of a DIE's abbrevs.
dwarf_get_macro_section_name
int dwarf_get_macro_section_name(Dwarf_Debug dw_dbg, const char **dw_sec_name_out, Dwarf_Error *dw_err)
Get the real name of a .debug_macro section.
dwarf_lineno
int dwarf_lineno(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_linenum, Dwarf_Error *dw_error)
Read Line line register.
Dwarf_Xu_Index_Header
struct Dwarf_Xu_Index_Header_s * Dwarf_Xu_Index_Header
Definition: libdwarf.h:604
dwarf_get_real_section_name
int dwarf_get_real_section_name(Dwarf_Debug dw_dbg, const char *dw_std_section_name, const char **dw_actual_sec_name_out, Dwarf_Small *dw_marked_zcompressed, Dwarf_Small *dw_marked_zlib_compressed, Dwarf_Small *dw_marked_shf_compressed, Dwarf_Unsigned *dw_compressed_length, Dwarf_Unsigned *dw_uncompressed_length, Dwarf_Error *dw_error)
Get the real name of a section.
dwarf_get_children_name
int dwarf_get_children_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_children_namea - historic misspelling.
dwarf_get_address_size
int dwarf_get_address_size(Dwarf_Debug, Dwarf_Half *, Dwarf_Error *)
Get the address size as defined by the object.
dwarf_set_frame_same_value
Dwarf_Half dwarf_set_frame_same_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Same Value Default Invariants for setting frame registers .
dwarf_formref
int dwarf_formref(Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Bool *dw_is_info, Dwarf_Error *dw_error)
Retrieve the CU-relative offset of a reference.
dwarf_formudata
int dwarf_formudata(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_returned_val, Dwarf_Error *dw_error)
Return an unsigned value.
dwarf_get_tied_dbg
int dwarf_get_tied_dbg(Dwarf_Debug dw_dbg, Dwarf_Debug *dw_tieddbg_out, Dwarf_Error *dw_error)
Use with split dwarf.
dwarf_die_abbrev_children_flag
int dwarf_die_abbrev_children_flag(Dwarf_Die dw_die, Dwarf_Half *dw_ab_has_child)
Returns TRUE if the DIE has children.
dwarf_get_CC_name
int dwarf_get_CC_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CC_name
dwarf_open_str_offsets_table_access
int dwarf_open_str_offsets_table_access(Dwarf_Debug dw_dbg, Dwarf_Str_Offsets_Table *dw_table_data, Dwarf_Error *dw_error)
Allocates a access to a .debug_str_ofrfsets table.
Dwarf_Bool
int Dwarf_Bool
Definition: libdwarf.h:215
dwarf_srclines_subprog_data
int dwarf_srclines_subprog_data(Dwarf_Line_Context dw_context, Dwarf_Signed dw_index, const char **dw_name, Dwarf_Unsigned *dw_decl_file, Dwarf_Unsigned *dw_decl_line, Dwarf_Error *dw_error)
Retrieve data from the line table subprog array.
dwarf_get_CHILDREN_name
int dwarf_get_CHILDREN_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CHILDREN_name
dwarf_dnames_bucket
int dwarf_dnames_bucket(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_bucket_number, Dwarf_Unsigned *dw_index, Dwarf_Unsigned *dw_indexcount, Dwarf_Error *dw_error)
Access to bucket contents.
Dwarf_Dnames_Head
struct Dwarf_Dnames_Head_s * Dwarf_Dnames_Head
Definition: libdwarf.h:619
dwarf_cu_header_basics
int dwarf_cu_header_basics(Dwarf_Die dw_die, Dwarf_Half *dw_version, Dwarf_Bool *dw_is_info, Dwarf_Bool *dw_is_dwo, Dwarf_Half *dw_offset_size, Dwarf_Half *dw_address_size, Dwarf_Half *dw_extension_size, Dwarf_Sig8 **dw_signature, Dwarf_Off *dw_offset_of_length, Dwarf_Unsigned *dw_total_byte_length, Dwarf_Error *dw_error)
Some CU-relative facts.
dwarf_get_section_count
int dwarf_get_section_count(Dwarf_Debug dw_dbg)
Get section count (of object file sections).
dwarf_gdbindex_types_culist_array
int dwarf_gdbindex_types_culist_array(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_types_list_length, Dwarf_Error *dw_error)
Returns the types culist array length.
Dwarf_Form_Data16
struct Dwarf_Form_Data16_s Dwarf_Form_Data16
dwarf_get_aranges_section_name
int dwarf_get_aranges_section_name(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get .debug_aranges section name The usual arguments.
dwarf_get_xu_index_section_type
int dwarf_get_xu_index_section_type(Dwarf_Xu_Index_Header dw_xuhdr, const char **dw_typename, const char **dw_sectionname, Dwarf_Error *dw_error)
Return basic information about a Dwarf_Xu_Index_Header.
dwarf_get_LNS_name
int dwarf_get_LNS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNS_name
dwarf_srclines_two_level_from_linecontext
int dwarf_srclines_two_level_from_linecontext(Dwarf_Line_Context dw_context, Dwarf_Line **dw_linebuf, Dwarf_Signed *dw_linecount, Dwarf_Line **dw_linebuf_actuals, Dwarf_Signed *dw_linecount_actuals, Dwarf_Error *dw_error)
Returns line table counts and data.
dwarf_srcfiles
int dwarf_srcfiles(Dwarf_Die dw_cu_die, char ***dw_srcfiles, Dwarf_Signed *dw_filecount, Dwarf_Error *dw_error)
The list of source files from the line table header.
dwarf_get_loclist_c
int dwarf_get_loclist_c(Dwarf_Attribute dw_attr, Dwarf_Loc_Head_c *dw_loclist_head, Dwarf_Unsigned *dw_locentry_count, Dwarf_Error *dw_error)
Location Lists and Expressions.
dwarf_line_srcfileno
int dwarf_line_srcfileno(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_filenum, Dwarf_Error *dw_error)
Read Line file register.
dwarf_gdbindex_cuvector_length
int dwarf_gdbindex_cuvector_length(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_cuvector_offset, Dwarf_Unsigned *dw_innercount, Dwarf_Error *dw_error)
Get access to a cuvector.
dwarf_formsig8
int dwarf_formsig8(Dwarf_Attribute dw_attr, Dwarf_Sig8 *dw_returned_sig_bytes, Dwarf_Error *dw_error)
Return an 8 byte reference form for DW_FORM_ref_sig8.
dwarf_get_fde_info_for_all_regs3
int dwarf_get_fde_info_for_all_regs3(Dwarf_Fde dw_fde, Dwarf_Addr dw_pc_requested, Dwarf_Regtable3 *dw_reg_table, Dwarf_Addr *dw_row_pc, Dwarf_Error *dw_error)
Return information on frame registers at a given pc value.
dwarf_bytesize
int dwarf_bytesize(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_size, Dwarf_Error *dw_error)
Returns the value of the attribute DW_AT_byte_size.
dwarf_dnames_entrypool_values
int dwarf_dnames_entrypool_values(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_index_of_abbrev, Dwarf_Unsigned dw_offset_in_entrypool_of_values, Dwarf_Unsigned dw_arrays_length, Dwarf_Half *dw_array_idx_number, Dwarf_Half *dw_array_form, Dwarf_Unsigned *dw_array_of_offsets, Dwarf_Sig8 *dw_array_of_signatures, Dwarf_Bool *dw_single_cu, Dwarf_Unsigned *dw_cu_offset, Dwarf_Unsigned *dw_offset_of_next_entrypool, Dwarf_Error *dw_error)
Returns the value set defined by this entry.
dwarf_get_aranges
int dwarf_get_aranges(Dwarf_Debug dw_dbg, Dwarf_Arange **dw_aranges, Dwarf_Signed *dw_arange_count, Dwarf_Error *dw_error)
Get access to CUs given code addresses.
dwarf_get_ORD_name
int dwarf_get_ORD_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ORD_name
Dwarf_Gdbindex
struct Dwarf_Gdbindex_s * Dwarf_Gdbindex
Definition: libdwarf.h:598
dwarf_hasattr
int dwarf_hasattr(Dwarf_Die dw_die, Dwarf_Half dw_attrnum, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Tells whether a DIE has a particular attribute.
dwarf_get_line_section_name
int dwarf_get_line_section_name(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get the line table section name The usual arguments and return values.
dwarf_find_macro_value_start
char * dwarf_find_macro_value_start(char *dw_macro_string)
Returns a pointer to the value part of a macro.
dwarf_formsig8_const
int dwarf_formsig8_const(Dwarf_Attribute dw_attr, Dwarf_Sig8 *dw_returned_sig_bytes, Dwarf_Error *dw_error)
Return an 8 byte reference form for DW_FORM_data8.
dwarf_linesrc
int dwarf_linesrc(Dwarf_Line dw_line, char **dw_returned_name, Dwarf_Error *dw_error)
Return the file name applicable to the Dwarf_Line.
dwarf_dnames_sizes
int dwarf_dnames_sizes(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned *dw_comp_unit_count, Dwarf_Unsigned *dw_local_type_unit_count, Dwarf_Unsigned *dw_foreign_type_unit_count, Dwarf_Unsigned *dw_bucket_count, Dwarf_Unsigned *dw_name_count, Dwarf_Unsigned *dw_abbrev_table_size, Dwarf_Unsigned *dw_entry_pool_size, Dwarf_Unsigned *dw_augmentation_string_size, char **dw_augmentation_string, Dwarf_Unsigned *dw_section_size, Dwarf_Half *dw_table_version, Dwarf_Half *dw_offset_size, Dwarf_Error *dw_error)
Sizes and counts from the debug names table.
Dwarf_Str_Offsets_Table
struct Dwarf_Str_Offsets_Table_s * Dwarf_Str_Offsets_Table
Definition: libdwarf.h:412
dwarf_get_debug_str_index
int dwarf_get_debug_str_index(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_return_index, Dwarf_Error *dw_error)
Returns a string index.
dwarf_formdata16
int dwarf_formdata16(Dwarf_Attribute dw_attr, Dwarf_Form_Data16 *dw_returned_val, Dwarf_Error *dw_error)
Return a 16 byte Dwarf_Form_Data16 value.
dwarf_set_frame_rule_table_size
Dwarf_Half dwarf_set_frame_rule_table_size(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Rule Table Size Invariants for setting frame registers .
dwarf_srclines_table_offset
int dwarf_srclines_table_offset(Dwarf_Line_Context dw_context, Dwarf_Unsigned *dw_offset, Dwarf_Error *dw_error)
Returns srclines table offset.
dwarf_get_vars
int dwarf_get_vars(Dwarf_Debug dw_dbg, Dwarf_Var **dw_vars, Dwarf_Signed *dw_number_of_vars, Dwarf_Error *dw_error)
Access to SGI/IRIC .debug_vars section. File-scope static variable names Pubnames and Pubtypes overvi...
dwarf_get_loclist_head_basics
int dwarf_get_loclist_head_basics(Dwarf_Loc_Head_c dw_head, Dwarf_Small *dw_lkind, Dwarf_Unsigned *dw_lle_count, Dwarf_Unsigned *dw_loclists_version, Dwarf_Unsigned *dw_loclists_index_returned, Dwarf_Unsigned *dw_bytes_total_in_rle, Dwarf_Half *dw_offset_size, Dwarf_Half *dw_address_size, Dwarf_Half *dw_segment_selector_size, Dwarf_Unsigned *dw_overall_offset_of_this_context, Dwarf_Unsigned *dw_total_length_of_this_context, Dwarf_Unsigned *dw_offset_table_offset, Dwarf_Unsigned *dw_offset_table_entrycount, Dwarf_Bool *dw_loclists_base_present, Dwarf_Unsigned *dw_loclists_base, Dwarf_Bool *dw_loclists_base_address_present, Dwarf_Unsigned *dw_loclists_base_address, Dwarf_Bool *dw_loclists_debug_addr_base_present, Dwarf_Unsigned *dw_loclists_debug_addr_base, Dwarf_Unsigned *dw_offset_this_lle_area, Dwarf_Error *dw_error)
Return basic data about a loclists head.
dwarf_get_fde_list_eh
int dwarf_get_fde_list_eh(Dwarf_Debug dw_dbg, Dwarf_Cie **dw_cie_data, Dwarf_Signed *dw_cie_element_count, Dwarf_Fde **dw_fde_data, Dwarf_Signed *dw_fde_element_count, Dwarf_Error *dw_error)
Get lists of .eh_frame FDEs and CIEs.
Dwarf_Type
struct Dwarf_Type_s * Dwarf_Type
Definition: libdwarf.h:561
Dwarf_Sig8
struct Dwarf_Sig8_s Dwarf_Sig8
dwarf_get_abbrev_code
int dwarf_get_abbrev_code(Dwarf_Abbrev dw_abbrev, Dwarf_Unsigned *dw_return_code_number, Dwarf_Error *dw_error)
Get Abbreviation Code.
dwarf_attr
int dwarf_attr(Dwarf_Die dw_die, Dwarf_Half dw_attrnum, Dwarf_Attribute *dw_returned_attr, Dwarf_Error *dw_error)
Given DIE and attribute number return a Dwarf_attribute.
dwarf_offdie_b
int dwarf_offdie_b(Dwarf_Debug dw_dbg, Dwarf_Off dw_offset, Dwarf_Bool dw_is_info, Dwarf_Die *dw_return_die, Dwarf_Error *dw_error)
Finding die given global (not CU-relative) offset.
dwarf_set_reloc_application
int dwarf_set_reloc_application(int dw_apply)
Set libdwarf response to *.rela relocations.
dwarf_loclist_from_expr_c
int dwarf_loclist_from_expr_c(Dwarf_Debug dw_dbg, Dwarf_Ptr dw_expression_in, Dwarf_Unsigned dw_expression_length, Dwarf_Half dw_address_size, Dwarf_Half dw_offset_size, Dwarf_Small dw_dwarf_version, Dwarf_Loc_Head_c *dw_loc_head, Dwarf_Unsigned *dw_listlen, Dwarf_Error *dw_error)
Generate a Dwarf_Loc_Head_c from an expression block.
dwarf_get_fde_for_die
int dwarf_get_fde_for_die(Dwarf_Debug dw_dbg, Dwarf_Die dw_subr_die, Dwarf_Fde *dw_returned_fde, Dwarf_Error *dw_error)
Get the fde given DW_AT_MIPS_fde in a DIE.
dwarf_get_fde_info_for_cfa_reg3_b
int dwarf_get_fde_info_for_cfa_reg3_b(Dwarf_Fde dw_fde, Dwarf_Addr dw_pc_requested, Dwarf_Small *dw_value_type, Dwarf_Unsigned *dw_offset_relevant, Dwarf_Unsigned *dw_register, Dwarf_Unsigned *dw_offset, Dwarf_Block *dw_block, Dwarf_Addr *dw_row_pc_out, Dwarf_Bool *dw_has_more_rows, Dwarf_Addr *dw_subsequent_pc, Dwarf_Error *dw_error)
Get the value of the CFA for a particular pc value.
Dwarf_Regtable_Entry3_s
Definition: libdwarf.h:496
Dwarf_Dsc_Head
struct Dwarf_Dsc_Head_s * Dwarf_Dsc_Head
Definition: libdwarf.h:363
dwarf_lineoff_b
int dwarf_lineoff_b(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_lineoffset, Dwarf_Error *dw_error)
Returns a column number through the pointer.
dwarf_child
int dwarf_child(Dwarf_Die dw_die, Dwarf_Die *dw_return_childdie, Dwarf_Error *dw_error)
Get the child DIE, if any. The child may be the first of a list of sibling DIEs.
dwarf_get_macro_defundef
int dwarf_get_macro_defundef(Dwarf_Macro_Context dw_macro_context, Dwarf_Unsigned dw_op_number, Dwarf_Unsigned *dw_line_number, Dwarf_Unsigned *dw_index, Dwarf_Unsigned *dw_offset, Dwarf_Half *dw_forms_count, const char **dw_macro_string, Dwarf_Error *dw_error)
Get Macro defundef.
dwarf_get_locdesc_entry_d
int dwarf_get_locdesc_entry_d(Dwarf_Loc_Head_c dw_loclist_head, Dwarf_Unsigned dw_index, Dwarf_Small *dw_lle_value_out, Dwarf_Unsigned *dw_rawlowpc, Dwarf_Unsigned *dw_rawhipc, Dwarf_Bool *dw_debug_addr_unavailable, Dwarf_Addr *dw_lowpc_cooked, Dwarf_Addr *dw_hipc_cooked, Dwarf_Unsigned *dw_locexpr_op_count_out, Dwarf_Locdesc_c *dw_locentry_out, Dwarf_Small *dw_loclist_source_out, Dwarf_Unsigned *dw_expression_offset_out, Dwarf_Unsigned *dw_locdesc_offset_out, Dwarf_Error *dw_error)
Retrieve the details of a location expression.
dwarf_get_abbrev_children_flag
int dwarf_get_abbrev_children_flag(Dwarf_Abbrev dw_abbrev, Dwarf_Signed *dw_return_flag, Dwarf_Error *dw_error)
Get Abbrev Children Flag.
dwarf_get_die_address_size
int dwarf_get_die_address_size(Dwarf_Die dw_die, Dwarf_Half *dw_addr_size, Dwarf_Error *dw_error)
Get the address size applying to a DIE.
dwarf_dnames_name
int dwarf_dnames_name(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_name_index, Dwarf_Unsigned *dw_bucket_number, Dwarf_Unsigned *dw_hash_value, Dwarf_Unsigned *dw_offset_to_debug_str, char **dw_ptrtostr, Dwarf_Unsigned *dw_offset_in_entrypool, Dwarf_Unsigned *dw_abbrev_number, Dwarf_Half *dw_abbrev_tag, Dwarf_Unsigned dw_array_size, Dwarf_Half *dw_idxattr_array, Dwarf_Half *dw_form_array, Dwarf_Unsigned *dw_idxattr_count, Dwarf_Error *dw_error)
Retrieve a name table entry.
Dwarf_Half
unsigned short Dwarf_Half
Definition: libdwarf.h:216
dwarf_gdbindex_culist_entry
int dwarf_gdbindex_culist_entry(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_entryindex, Dwarf_Unsigned *dw_cu_offset, Dwarf_Unsigned *dw_cu_length, Dwarf_Error *dw_error)
For a CU entry in the list return the offset and length.
dwarf_get_ID_name
int dwarf_get_ID_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ID_name
dwarf_sec_group_sizes
int dwarf_sec_group_sizes(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_section_count_out, Dwarf_Unsigned *dw_group_count_out, Dwarf_Unsigned *dw_selected_group_out, Dwarf_Unsigned *dw_map_entry_count_out, Dwarf_Error *dw_error)
Get Section Groups data counts.
dwarf_get_IDX_name
int dwarf_get_IDX_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_IDX_name
dwarf_dealloc_error
void dwarf_dealloc_error(Dwarf_Debug dw_dbg, Dwarf_Error dw_error)
Free (dealloc) an Dwarf_Error something created.
dwarf_get_rnglist_context_basics
int dwarf_get_rnglist_context_basics(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_index, Dwarf_Unsigned *dw_header_offset, Dwarf_Small *dw_offset_size, Dwarf_Small *dw_extension_size, unsigned int *dw_version, Dwarf_Small *dw_address_size, Dwarf_Small *dw_segment_selector_size, Dwarf_Unsigned *dw_offset_entry_count, Dwarf_Unsigned *dw_offset_of_offset_array, Dwarf_Unsigned *dw_offset_of_first_rangeentry, Dwarf_Unsigned *dw_offset_past_last_rangeentry, Dwarf_Error *dw_error)
Access to rnglists header data.
dwarf_errmsg
char * dwarf_errmsg(Dwarf_Error dw_error)
What message string is in the error?
dwarf_formaddr
int dwarf_formaddr(Dwarf_Attribute dw_attr, Dwarf_Addr *dw_returned_addr, Dwarf_Error *dw_error)
Return the address when the attribute has form address.
dwarf_get_cie_augmentation_data
int dwarf_get_cie_augmentation_data(Dwarf_Cie dw_cie, Dwarf_Small **dw_augdata, Dwarf_Unsigned *dw_augdata_len, Dwarf_Error *dw_error)
Return .eh_frame CIE augmentation data.
dwarf_get_die_infotypes_flag
Dwarf_Bool dwarf_get_die_infotypes_flag(Dwarf_Die dw_die)
Returns the is_info flag.
dwarf_linecontext
int dwarf_linecontext(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_context, Dwarf_Error *dw_error)
Experimental Two-level line tables call contexts Experimental two level line tables....
Dwarf_Addr
unsigned long long Dwarf_Addr
Definition: libdwarf.h:212
dwarf_get_ISA_name
int dwarf_get_ISA_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ISA_name
dwarf_next_str_offsets_table
int dwarf_next_str_offsets_table(Dwarf_Str_Offsets_Table dw_table_data, Dwarf_Unsigned *dw_unit_length, Dwarf_Unsigned *dw_unit_length_offset, Dwarf_Unsigned *dw_table_start_offset, Dwarf_Half *dw_entry_size, Dwarf_Half *dw_version, Dwarf_Half *dw_padding, Dwarf_Unsigned *dw_table_value_count, Dwarf_Error *dw_error)
Iterate through the offsets tables.
dwarf_set_frame_rule_initial_value
Dwarf_Half dwarf_set_frame_rule_initial_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Rule Initial Value.
dwarf_get_abbrev
int dwarf_get_abbrev(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_offset, Dwarf_Abbrev *dw_returned_abbrev, Dwarf_Unsigned *dw_length, Dwarf_Unsigned *dw_attr_count, Dwarf_Error *dw_error)
Reading Abbreviation Data.
dwarf_get_UT_name
int dwarf_get_UT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_UT_name
dwarf_dealloc_die
void dwarf_dealloc_die(Dwarf_Die dw_die)
Deallocate (free) a DIE.
Dwarf_Obj_Access_Methods_a_s
Definition: libdwarf.h:698
dwarf_get_ranges_section_name
int dwarf_get_ranges_section_name(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get .debug_ranges section name The usual arguments and return values.
dwarf_addr_form_is_indexed
Dwarf_Bool dwarf_addr_form_is_indexed(int dw_form)
Informs if a DW_FORM is an indexed form.
dwarf_get_str
int dwarf_get_str(Dwarf_Debug dw_dbg, Dwarf_Off dw_offset, char **dw_string, Dwarf_Signed *dw_strlen_of_string, Dwarf_Error *dw_error)
Reading From a String Section.
Dwarf_Obj_Access_Interface_a_s
Definition: libdwarf.h:717
dwarf_get_macro_context_by_offset
int dwarf_get_macro_context_by_offset(Dwarf_Die dw_die, Dwarf_Unsigned dw_offset, Dwarf_Unsigned *dw_version_out, Dwarf_Macro_Context *dw_macro_context, Dwarf_Unsigned *dw_macro_ops_count_out, Dwarf_Unsigned *dw_macro_ops_data_length, Dwarf_Error *dw_error)
DWARF5 .debug_macro access via Dwarf_Die and an offset.
dwarf_srclines_files_indexes
int dwarf_srclines_files_indexes(Dwarf_Line_Context dw_context, Dwarf_Signed *dw_baseindex, Dwarf_Signed *dw_count, Dwarf_Signed *dw_endindex, Dwarf_Error *dw_error)
Returns values easing indexing line table file numbers. Count is the real count of files array entrie...
dwarf_macro_operands_table
int dwarf_macro_operands_table(Dwarf_Macro_Context dw_mc, Dwarf_Half dw_index, Dwarf_Half *dw_opcode_number, Dwarf_Half *dw_operand_count, const Dwarf_Small **dw_operand_array, Dwarf_Error *dw_error)
Access to the details of the opcode operands table.
dwarf_get_debugfission_for_die
int dwarf_get_debugfission_for_die(Dwarf_Die dw_die, Dwarf_Debug_Fission_Per_CU *dw_percu_out, Dwarf_Error *dw_error)
Get debugfission data for a Dwarf_Die.
dwarf_load_rnglists
int dwarf_load_rnglists(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_rnglists_count, Dwarf_Error *dw_error)
Loads all .debug_rnglists headers.
dwarf_CU_dieoffset_given_die
int dwarf_CU_dieoffset_given_die(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Returns the CU DIE offset given any DIE.
dwarf_gdbindex_symboltable_entry
int dwarf_gdbindex_symboltable_entry(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_entryindex, Dwarf_Unsigned *dw_string_offset, Dwarf_Unsigned *dw_cu_vector_offset, Dwarf_Error *dw_error)
Access individual symtab entry.
Dwarf_Macro_Context
struct Dwarf_Macro_Context_s * Dwarf_Macro_Context
Definition: libdwarf.h:613
dwarf_uncompress_integer_block_a
int dwarf_uncompress_integer_block_a(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_input_length_in_bytes, void *dw_input_block, Dwarf_Unsigned *dw_value_count, Dwarf_Signed **dw_value_array, Dwarf_Error *dw_error)
Uncompress a block of sleb numbers It's not much of a compression so not much of an uncompression....
dwarf_finish
int dwarf_finish(Dwarf_Debug dw_dbg)
Close the initialized dw_dbg and free all data libdwarf has for this dw_dbg.
Dwarf_Debug
struct Dwarf_Debug_s * Dwarf_Debug
Definition: libdwarf.h:537
dwarf_return_empty_pubnames
int dwarf_return_empty_pubnames(Dwarf_Debug dw_dbg, int dw_flag)
A flag for dwarfdump on pubnames, pubtypes etc.
dwarf_srclines_files_data_b
int dwarf_srclines_files_data_b(Dwarf_Line_Context dw_context, Dwarf_Signed dw_index_in, const char **dw_name, Dwarf_Unsigned *dw_directory_index, Dwarf_Unsigned *dw_last_mod_time, Dwarf_Unsigned *dw_file_length, Dwarf_Form_Data16 **dw_md5ptr, Dwarf_Error *dw_error)
Access data for each line table file.
dwarf_get_fde_list
int dwarf_get_fde_list(Dwarf_Debug dw_dbg, Dwarf_Cie **dw_cie_data, Dwarf_Signed *dw_cie_element_count, Dwarf_Fde **dw_fde_data, Dwarf_Signed *dw_fde_element_count, Dwarf_Error *dw_error)
Get lists of .debug_frame FDEs and CIEs.
dwarf_get_macro_startend_file
int dwarf_get_macro_startend_file(Dwarf_Macro_Context dw_macro_context, Dwarf_Unsigned dw_op_number, Dwarf_Unsigned *dw_line_number, Dwarf_Unsigned *dw_name_index_to_line_tab, const char **dw_src_file_name, Dwarf_Error *dw_error)
Get Macro start end.
dwarf_get_section_max_offsets_d
int dwarf_get_section_max_offsets_d(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_debug_info_size, Dwarf_Unsigned *dw_debug_abbrev_size, Dwarf_Unsigned *dw_debug_line_size, Dwarf_Unsigned *dw_debug_loc_size, Dwarf_Unsigned *dw_debug_aranges_size, Dwarf_Unsigned *dw_debug_macinfo_size, Dwarf_Unsigned *dw_debug_pubnames_size, Dwarf_Unsigned *dw_debug_str_size, Dwarf_Unsigned *dw_debug_frame_size, Dwarf_Unsigned *dw_debug_ranges_size, Dwarf_Unsigned *dw_debug_pubtypes_size, Dwarf_Unsigned *dw_debug_types_size, Dwarf_Unsigned *dw_debug_macro_size, Dwarf_Unsigned *dw_debug_str_offsets_size, Dwarf_Unsigned *dw_debug_sup_size, Dwarf_Unsigned *dw_debug_cu_index_size, Dwarf_Unsigned *dw_debug_tu_index_size, Dwarf_Unsigned *dw_debug_names_size, Dwarf_Unsigned *dw_debug_loclists_size, Dwarf_Unsigned *dw_debug_rnglists_size)
Get section sizes for many sections.
dwarf_get_RLE_name
int dwarf_get_RLE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_RLE_name
dwarf_get_fde_range
int dwarf_get_fde_range(Dwarf_Fde dw_fde, Dwarf_Addr *dw_low_pc, Dwarf_Unsigned *dw_func_length, Dwarf_Small **dw_fde_bytes, Dwarf_Unsigned *dw_fde_byte_length, Dwarf_Off *dw_cie_offset, Dwarf_Signed *dw_cie_index, Dwarf_Off *dw_fde_offset, Dwarf_Error *dw_error)
Returns the FDE data for a single FDE.
dwarf_get_AT_name
int dwarf_get_AT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_AT_name
dwarf_object_init_b
int dwarf_object_init_b(Dwarf_Obj_Access_Interface_a *dw_obj, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, unsigned int dw_groupnumber, Dwarf_Debug *dw_dbg, Dwarf_Error *dw_error)
Used to access DWARF information in memory or in an object format unknown to libdwarf.
dwarf_get_ACCESS_name
int dwarf_get_ACCESS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ACCESS_name
dwarf_get_LANG_name
int dwarf_get_LANG_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LANG_name
dwarf_attrlist
int dwarf_attrlist(Dwarf_Die dw_die, Dwarf_Attribute **dw_attrbuf, Dwarf_Signed *dw_attrcount, Dwarf_Error *dw_error)
Gets the full list of attributes.
dwarf_highpc_b
int dwarf_highpc_b(Dwarf_Die dw_die, Dwarf_Addr *dw_return_addr, Dwarf_Half *dw_return_form, enum Dwarf_Form_Class *dw_return_class, Dwarf_Error *dw_error)
Returns the DW_AT_hipc address value.
Dwarf_Global
struct Dwarf_Global_s * Dwarf_Global
Definition: libdwarf.h:554
dwarf_dietype_offset
int dwarf_dietype_offset(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Returns the offset from the DW_AT_type attribute.
dwarf_dnames_entrypool
int dwarf_dnames_entrypool(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_offset_in_entrypool, Dwarf_Unsigned *dw_abbrev_code, Dwarf_Half *dw_tag, Dwarf_Unsigned *dw_value_count, Dwarf_Unsigned *dw_index_of_abbrev, Dwarf_Unsigned *dw_offset_of_initial_value, Dwarf_Error *dw_error)
Returns a the set of values from an entrypool entry.
dwarf_srclines_version
int dwarf_srclines_version(Dwarf_Line_Context dw_line_context, Dwarf_Unsigned *dw_version, Dwarf_Small *dw_table_count, Dwarf_Error *dw_error)
The DWARF version number of this compile-unit The .debug_lines[.dwo] t actual tables:0 (header with n...
dwarf_gdbindex_cuvector_inner_attributes
int dwarf_gdbindex_cuvector_inner_attributes(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_cuvector_offset_in, Dwarf_Unsigned dw_innerindex, Dwarf_Unsigned *dw_field_value, Dwarf_Error *dw_error)
Get access to a cuvector.
Dwarf_Regtable3_s
Definition: libdwarf.h:520
dwarf_get_INL_name
int dwarf_get_INL_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_INL_name
dwarf_get_TAG_name
int dwarf_get_TAG_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_TAG_name
dwarf_get_macro_context
int dwarf_get_macro_context(Dwarf_Die dw_die, Dwarf_Unsigned *dw_version_out, Dwarf_Macro_Context *dw_macro_context, Dwarf_Unsigned *dw_macro_unit_offset_out, Dwarf_Unsigned *dw_macro_ops_count_out, Dwarf_Unsigned *dw_macro_ops_data_length_out, Dwarf_Error *dw_error)
DWARF5 .debug_macro access via Dwarf_Die.
dwarf_die_CU_offset_range
int dwarf_die_CU_offset_range(Dwarf_Die dw_die, Dwarf_Off *dw_return_CU_header_offset, Dwarf_Off *dw_return_CU_length_bytes, Dwarf_Error *dw_error)
Returns the offset length of the entire CU of a DIE.
Dwarf_Printf_Callback_Info_s
Definition: libdwarf.h:380
dwarf_check_lineheader_b
int dwarf_check_lineheader_b(Dwarf_Die dw_cu_die, int *dw_errcount_out, Dwarf_Error *dw_error)
Access to detailed line table header issues.
dwarf_get_funcs
int dwarf_get_funcs(Dwarf_Debug dw_dbg, Dwarf_Func **dw_funcs, Dwarf_Signed *dw_number_of_funcs, Dwarf_Error *dw_error)
Access to SGI/IRIX .debug_funcs section. Static function names and offsets.
dwarf_get_cu_die_offset_given_cu_header_offset_b
int dwarf_get_cu_die_offset_given_cu_header_offset_b(Dwarf_Debug dw_dbg, Dwarf_Off dw_in_cu_header_offset, Dwarf_Bool dw_is_info, Dwarf_Off *dw_out_cu_die_offset, Dwarf_Error *dw_error)
Returns the CU DIE section offset given CU header offset.
dwarf_init_path_dl
int dwarf_init_path_dl(const char *dw_path, char *dw_true_path_out_buffer, unsigned int dw_true_path_bufferlen, unsigned int dw_groupnumber, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, Dwarf_Debug *dw_dbg, char **dw_dl_path_array, unsigned int dw_dl_path_array_size, unsigned char *dw_dl_path_source, Dwarf_Error *dw_error)
Initialization following GNU debuglink section data.
dwarf_attr_offset
int dwarf_attr_offset(Dwarf_Die dw_die, Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Returns the offset of an attribute in its section.
dwarf_get_LLE_name
int dwarf_get_LLE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LLE_name
Dwarf_Ranges_s
Definition: libdwarf.h:419
dwarf_dnames_cu_table
int dwarf_dnames_cu_table(Dwarf_Dnames_Head dw_dn, const char *dw_type, Dwarf_Unsigned dw_index_number, Dwarf_Unsigned *dw_offset, Dwarf_Sig8 *dw_sig, Dwarf_Error *dw_error)
Each debug names list entry one at a time.
Dwarf_Block
struct Dwarf_Block_s Dwarf_Block
dwarf_get_loclist_lle
int dwarf_get_loclist_lle(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_contextnumber, Dwarf_Unsigned dw_entry_offset, Dwarf_Unsigned dw_endoffset, unsigned int *dw_entrylen, unsigned int *dw_entry_kind, Dwarf_Unsigned *dw_entry_operand1, Dwarf_Unsigned *dw_entry_operand2, Dwarf_Unsigned *dw_expr_ops_blocksize, Dwarf_Unsigned *dw_expr_ops_offset, Dwarf_Small **dw_expr_opsdata, Dwarf_Error *dw_error)
Return basic data about a loclists context entry.
Dwarf_Ranges_Entry_Type
Dwarf_Ranges_Entry_Type
Definition: libdwarf.h:237
Dwarf_Loc_Head_c
struct Dwarf_Loc_Head_c_s * Dwarf_Loc_Head_c
Definition: libdwarf.h:350
dwarf_srclines_from_linecontext
int dwarf_srclines_from_linecontext(Dwarf_Line_Context dw_linecontext, Dwarf_Line **dw_linebuf, Dwarf_Signed *dw_linecount, Dwarf_Error *dw_error)
Access source lines from line context.
dwarf_get_ranges_b
int dwarf_get_ranges_b(Dwarf_Debug dw_dbg, Dwarf_Off dw_rangesoffset, Dwarf_Die dw_die, Dwarf_Off *dw_return_realoffset, Dwarf_Ranges **dw_rangesbuf, Dwarf_Signed *dw_rangecount, Dwarf_Unsigned *dw_bytecount, Dwarf_Error *dw_error)
Access to code ranges from a CU or just reading through the raw .debug_ranges section.
dwarf_dealloc_macro_context
void dwarf_dealloc_macro_context(Dwarf_Macro_Context dw_mc)
Dealloc a macro context.
dwarf_get_debugfission_for_key
int dwarf_get_debugfission_for_key(Dwarf_Debug dw_dbg, Dwarf_Sig8 *dw_hash_sig, const char *dw_cu_type, Dwarf_Debug_Fission_Per_CU *dw_percu_out, Dwarf_Error *dw_error)
Given a hash signature find per-cu Fission data.
dwarf_set_default_address_size
Dwarf_Small dwarf_set_default_address_size(Dwarf_Debug dw_dbg, Dwarf_Small dw_value)
Set the address size on a Dwarf_Debug.
dwarf_gdbindex_types_culist_entry
int dwarf_gdbindex_types_culist_entry(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_types_entryindex, Dwarf_Unsigned *dw_cu_offset, Dwarf_Unsigned *dw_tu_offset, Dwarf_Unsigned *dw_type_signature, Dwarf_Error *dw_error)
For a types CU entry in the list returns the offset and length.
Dwarf_Fde
struct Dwarf_Fde_s * Dwarf_Fde
Definition: libdwarf.h:583
Dwarf_Attribute
struct Dwarf_Attribute_s * Dwarf_Attribute
Definition: libdwarf.h:571
dwarf_dnames_offsets
int dwarf_dnames_offsets(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned *dw_header_offset, Dwarf_Unsigned *dw_cu_table_offset, Dwarf_Unsigned *dw_tu_local_offset, Dwarf_Unsigned *dw_foreign_tu_offset, Dwarf_Unsigned *dw_bucket_offset, Dwarf_Unsigned *dw_hashes_offset, Dwarf_Unsigned *dw_stringoffsets_offset, Dwarf_Unsigned *dw_entryoffsets_offset, Dwarf_Unsigned *dw_abbrev_table_offset, Dwarf_Unsigned *dw_entry_pool_offset, Dwarf_Error *dw_error)
Offsets from the debug names table.
dwarf_error_creation
void dwarf_error_creation(Dwarf_Debug dw_dbg, Dwarf_Error *dw_error, char *dw_errmsg)
Creating an error. This is very rarely helpful. It lets the library user create a Dwarf_Error and ass...
dwarf_get_die_section_name_b
int dwarf_get_die_section_name_b(Dwarf_Die dw_die, const char **dw_sec_name, Dwarf_Error *dw_error)
Get the real name of a DIE section.
dwarf_srclines_include_dir_data
int dwarf_srclines_include_dir_data(Dwarf_Line_Context dw_line_context, Dwarf_Signed dw_index, const char **dw_name, Dwarf_Error *dw_error)
Returns the include directories in the Line Table.
dwarf_close_str_offsets_table_access
int dwarf_close_str_offsets_table_access(Dwarf_Str_Offsets_Table dw_table_data, Dwarf_Error *dw_error)
Close str_offsets access, free table_data.
dwarf_get_VIRTUALITY_name
int dwarf_get_VIRTUALITY_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_VIRTUALITY_name
dwarf_init_path
int dwarf_init_path(const char *dw_path, char *dw_true_path_out_buffer, unsigned int dw_true_path_bufferlen, unsigned int dw_groupnumber, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, Dwarf_Debug *dw_dbg, Dwarf_Error *dw_error)
Initialization based on path, the most common initialization.
dwarf_linebeginstatement
int dwarf_linebeginstatement(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Read Line beginstatement register.
dwarf_discr_list
int dwarf_discr_list(Dwarf_Debug dw_dbg, Dwarf_Small *dw_blockpointer, Dwarf_Unsigned dw_blocklen, Dwarf_Dsc_Head *dw_dsc_head_out, Dwarf_Unsigned *dw_dsc_array_length_out, Dwarf_Error *dw_error)
Returns an array of discriminant values.
dwarf_get_arange_info_b
int dwarf_get_arange_info_b(Dwarf_Arange dw_arange, Dwarf_Unsigned *dw_segment, Dwarf_Unsigned *dw_segment_entry_size, Dwarf_Addr *dw_start, Dwarf_Unsigned *dw_length, Dwarf_Off *dw_cu_die_offset, Dwarf_Error *dw_error)
Get the data in an arange entry.
dwarf_get_arange_cu_header_offset
int dwarf_get_arange_cu_header_offset(Dwarf_Arange dw_arange, Dwarf_Off *dw_return_cu_header_offset, Dwarf_Error *dw_error)
Given an arange return its CU header offset.
dwarf_get_xu_index_header
int dwarf_get_xu_index_header(Dwarf_Debug dw_dbg, const char *dw_section_type, Dwarf_Xu_Index_Header *dw_xuhdr, Dwarf_Unsigned *dw_version_number, Dwarf_Unsigned *dw_section_count, Dwarf_Unsigned *dw_units_count, Dwarf_Unsigned *dw_hash_slots_count, const char **dw_sect_name, Dwarf_Error *dw_error)
Access a .debug_cu_index or dw_tu_index section.
dwarf_dnames_header
int dwarf_dnames_header(Dwarf_Debug dw_dbg, Dwarf_Off dw_starting_offset, Dwarf_Dnames_Head *dw_dn, Dwarf_Off *dw_offset_of_next_table, Dwarf_Error *dw_error)
Open access to a .debug_names table.
dwarf_global_formref_b
int dwarf_global_formref_b(Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Bool *dw_offset_is_info, Dwarf_Error *dw_error)
Return the section-relative offset of a Dwarf_Attribute.
dwarf_get_macro_import
int dwarf_get_macro_import(Dwarf_Macro_Context dw_macro_context, Dwarf_Unsigned dw_op_number, Dwarf_Unsigned *dw_target_offset, Dwarf_Error *dw_error)
Get Macro import.
dwarf_get_macro_details
int dwarf_get_macro_details(Dwarf_Debug dw_dbg, Dwarf_Off dw_macro_offset, Dwarf_Unsigned dw_maximum_count, Dwarf_Signed *dw_entry_count, Dwarf_Macro_Details **dw_details, Dwarf_Error *dw_error)
Getting .debug_macinfo macro details.
dwarf_srclines_include_dir_count
int dwarf_srclines_include_dir_count(Dwarf_Line_Context dw_line_context, Dwarf_Signed *dw_count, Dwarf_Error *dw_error)
Returns the number of include directories in the Line Table.
dwarf_get_section_info_by_index
int dwarf_get_section_info_by_index(Dwarf_Debug dw_dbg, int dw_section_index, const char **dw_section_name, Dwarf_Addr *dw_section_addr, Dwarf_Unsigned *dw_section_size, Dwarf_Error *dw_error)
Given a section index, get its size and address.
dwarf_get_rnglist_offset_index_value
int dwarf_get_rnglist_offset_index_value(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_context_index, Dwarf_Unsigned dw_offsetentry_index, Dwarf_Unsigned *dw_offset_value_out, Dwarf_Unsigned *dw_global_offset_value_out, Dwarf_Error *dw_error)
Retrieve the section offset of a rnglist.
dwarf_insert_harmless_error
void dwarf_insert_harmless_error(Dwarf_Debug dw_dbg, char *dw_newerror)
Harmless Error Insertion is only for testing.
dwarf_get_fde_at_pc
int dwarf_get_fde_at_pc(Dwarf_Fde *dw_fde_data, Dwarf_Addr dw_pc_of_interest, Dwarf_Fde *dw_returned_fde, Dwarf_Addr *dw_lopc, Dwarf_Addr *dw_hipc, Dwarf_Error *dw_error)
Retrieve an FDE given a pc.
dwarf_get_xu_hash_entry
int dwarf_get_xu_hash_entry(Dwarf_Xu_Index_Header dw_xuhdr, Dwarf_Unsigned dw_index, Dwarf_Sig8 *dw_hash_value, Dwarf_Unsigned *dw_index_to_sections, Dwarf_Error *dw_error)
Get a Hash Entry.
dwarf_set_harmless_error_list_size
unsigned int dwarf_set_harmless_error_list_size(Dwarf_Debug dw_dbg, unsigned int dw_maxcount)
The size of the circular list of strings libdwarf holds internally may be set and reset as needed....
dwarf_str_offsets_value_by_index
int dwarf_str_offsets_value_by_index(Dwarf_Str_Offsets_Table dw_table_data, Dwarf_Unsigned dw_index_to_entry, Dwarf_Unsigned *dw_entry_value, Dwarf_Error *dw_error)
Access to an individual str offsets table entry.
dwarf_set_tied_dbg
int dwarf_set_tied_dbg(Dwarf_Debug dw_basedbg, Dwarf_Debug dw_tied_dbg, Dwarf_Error *dw_error)
Use with split dwarf.
dwarf_get_ADDR_name
int dwarf_get_ADDR_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ADDR_name
dwarf_record_cmdline_options
void dwarf_record_cmdline_options(Dwarf_Cmdline_Options dw_dd_options)
Tell libdwarf to add verbosity to Line Header errors By default the flag in the struct argument is ze...
dwarf_get_DEFAULTED_name
int dwarf_get_DEFAULTED_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DEFAULTED_name
dwarf_dieoffset
int dwarf_dieoffset(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Returns the global section offset of the DIE.
dwarf_get_fde_exception_info
int dwarf_get_fde_exception_info(Dwarf_Fde dw_fde, Dwarf_Signed *dw_offset_into_exception_tables, Dwarf_Error *dw_error)
IRIX only access to C++ destructor tables.
dwarf_gdbindex_string_by_offset
int dwarf_gdbindex_string_by_offset(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_stringoffset, const char **dw_string_ptr, Dwarf_Error *dw_error)
Retrieve a symbol name from the index data.
Dwarf_Off
unsigned long long Dwarf_Off
Definition: libdwarf.h:211
Dwarf_Ptr
void * Dwarf_Ptr
Definition: libdwarf.h:221
dwarf_get_ATE_name
int dwarf_get_ATE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ATE_name
dwarf_siblingof_b
int dwarf_siblingof_b(Dwarf_Debug dw_dbg, Dwarf_Die dw_die, Dwarf_Bool dw_is_info, Dwarf_Die *dw_return_siblingdie, Dwarf_Error *dw_error)
Retrieve the first DIE or the next sibling.
dwarf_macro_context_head
int dwarf_macro_context_head(Dwarf_Macro_Context dw_mc, Dwarf_Half *dw_version, Dwarf_Unsigned *dw_mac_offset, Dwarf_Unsigned *dw_mac_len, Dwarf_Unsigned *dw_mac_header_len, unsigned int *dw_flags, Dwarf_Bool *dw_has_line_offset, Dwarf_Unsigned *dw_line_offset, Dwarf_Bool *dw_has_offset_size_64, Dwarf_Bool *dw_has_operands_table, Dwarf_Half *dw_opcode_count, Dwarf_Error *dw_error)
Access the internal details of a Dwarf_Macro_Context.
dwarf_die_offsets
int dwarf_die_offsets(Dwarf_Die dw_die, Dwarf_Off *dw_global_offset, Dwarf_Off *dw_local_offset, Dwarf_Error *dw_error)
Return section and CU-local offsets of a DIE.
Dwarf_Block_s
Definition: libdwarf.h:333
dwarf_dealloc_attribute
void dwarf_dealloc_attribute(Dwarf_Attribute dw_attr)
Dealloc a Dwarf_Attribute When this call returns the dw_attr is a stale pointer.
dwarf_get_harmless_error_list
int dwarf_get_harmless_error_list(Dwarf_Debug dw_dbg, unsigned int dw_count, const char **dw_errmsg_ptrs_array, unsigned int *dw_newerr_count)
Get the harmless error count and content.
dwarf_get_string_section_name
int dwarf_get_string_section_name(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get the string table section name The usual arguments and return values.
dwarf_offset_list
int dwarf_offset_list(Dwarf_Debug dw_dbg, Dwarf_Off dw_offset, Dwarf_Bool dw_is_info, Dwarf_Off **dw_offbuf, Dwarf_Unsigned *dw_offcount, Dwarf_Error *dw_error)
Returns an array of DIE children offsets.
dwarf_gdbindex_symboltable_array
int dwarf_gdbindex_symboltable_array(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_symtab_list_length, Dwarf_Error *dw_error)
Get access to the symboltable array.
dwarf_prologue_end_etc
int dwarf_prologue_end_etc(Dwarf_Line dw_line, Dwarf_Bool *dw_prologue_end, Dwarf_Bool *dw_epilogue_begin, Dwarf_Unsigned *dw_isa, Dwarf_Unsigned *dw_discriminator, Dwarf_Error *dw_error)
Returns various line table registers in one call.
dwarf_get_FORM_CLASS_name
int dwarf_get_FORM_CLASS_name(enum Dwarf_Form_Class dw_fc, const char **dw_s_out)
dwarf_get_FORM_CLASS_name is for a libdwarf extension. Not defined by the DWARF standard though the c...
dwarf_whatform
int dwarf_whatform(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_final_form, Dwarf_Error *dw_error)
Returns the form of the Dwarf_Attribute.
dwarf_get_DS_name
int dwarf_get_DS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DS_name
Dwarf_Regtable3
struct Dwarf_Regtable3_s Dwarf_Regtable3
dwarf_globals_dealloc
void dwarf_globals_dealloc(Dwarf_Debug dw_dbg, Dwarf_Global *dw_globals, Dwarf_Signed dw_number_of_globals)
Dealloc the Dwarf_Globals data.
dwarf_get_MACRO_name
int dwarf_get_MACRO_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_MACRO_name
dwarf_get_debug_sup
int dwarf_get_debug_sup(Dwarf_Debug dw_dbg, Dwarf_Half *dw_version, Dwarf_Small *dw_is_supplementary, char **dw_filename, Dwarf_Unsigned *dw_checksum_len, Dwarf_Small **dw_checksum, Dwarf_Error *dw_error)
Returns basic .debug_sup section header data.
dwarf_get_frame_instruction_a
int dwarf_get_frame_instruction_a(Dwarf_Frame_Instr_Head dw_, Dwarf_Unsigned dw_instr_index, Dwarf_Unsigned *dw_instr_offset_in_instrs, Dwarf_Small *dw_cfa_operation, const char **dw_fields_description, Dwarf_Unsigned *dw_u0, Dwarf_Unsigned *dw_u1, Dwarf_Unsigned *dw_u2, Dwarf_Signed *dw_s0, Dwarf_Signed *dw_s1, Dwarf_Unsigned *dw_code_alignment_factor, Dwarf_Signed *dw_data_alignment_factor, Dwarf_Block *dw_expression_block, Dwarf_Error *dw_error)
Expands CIE or FDE instructions for detailed examination. Called for CIE initial instructions and FDE...
dwarf_get_FORM_name
int dwarf_get_FORM_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_FORM_name
dwarf_get_END_name
int dwarf_get_END_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_END_name
Dwarf_Locdesc_c
struct Dwarf_Locdesc_c_s * Dwarf_Locdesc_c
Definition: libdwarf.h:344
dwarf_dealloc_xu_header
void dwarf_dealloc_xu_header(Dwarf_Xu_Index_Header dw_xuhdr)
Dealloc (free) memory associated with dw_xuhdr.
dwarf_gdbindex_cuvector_instance_expand_value
int dwarf_gdbindex_cuvector_instance_expand_value(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_field_value, Dwarf_Unsigned *dw_cu_index, Dwarf_Unsigned *dw_symbol_kind, Dwarf_Unsigned *dw_is_static, Dwarf_Error *dw_error)
Expand the bit fields in a cuvector entry.
Dwarf_Sig8_s
Definition: libdwarf.h:316
Dwarf_Obj_Access_Section_a_s
Definition: libdwarf.h:680
dwarf_formblock
int dwarf_formblock(Dwarf_Attribute dw_attr, Dwarf_Block **dw_returned_block, Dwarf_Error *dw_error)
Returns an allocated filled-in Form_Block.
dwarf_register_printf_callback
struct Dwarf_Printf_Callback_Info_s dwarf_register_printf_callback(Dwarf_Debug dw_dbg, struct Dwarf_Printf_Callback_Info_s *dw_callbackinfo)
For line details this records callback details.
dwarf_dealloc_fde_cie_list
void dwarf_dealloc_fde_cie_list(Dwarf_Debug dw_dbg, Dwarf_Cie *dw_cie_data, Dwarf_Signed dw_cie_element_count, Dwarf_Fde *dw_fde_data, Dwarf_Signed dw_fde_element_count)
Release storage associated with FDE and CIE arrays.
dwarf_get_abbrev_entry_b
int dwarf_get_abbrev_entry_b(Dwarf_Abbrev dw_abbrev, Dwarf_Unsigned dw_indx, Dwarf_Bool dw_filter_outliers, Dwarf_Unsigned *dw_returned_attr_num, Dwarf_Unsigned *dw_returned_form, Dwarf_Signed *dw_returned_implicit_const, Dwarf_Off *dw_offset, Dwarf_Error *dw_error)
Get Abbrev Entry Details.
dwarf_dnames_abbrev_form_by_index
int dwarf_dnames_abbrev_form_by_index(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_abbrev_entry_index, Dwarf_Unsigned dw_abbrev_form_index, Dwarf_Unsigned *dw_idx_attr, Dwarf_Unsigned *dw_form, Dwarf_Error *dw_error)
Returns a specific idxattribute form pair.
dwarf_load_loclists
int dwarf_load_loclists(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_loclists_count, Dwarf_Error *dw_error)
Load Loclists.
dwarf_get_section_info_by_name
int dwarf_get_section_info_by_name(Dwarf_Debug dw_dbg, const char *dw_section_name, Dwarf_Addr *dw_section_addr, Dwarf_Unsigned *dw_section_size, Dwarf_Error *dw_error)
Given a section name, get its size and address.
dwarf_get_version_of_die
int dwarf_get_version_of_die(Dwarf_Die dw_die, Dwarf_Half *dw_version, Dwarf_Half *dw_offset_size)
Get the version and offset size.
dwarf_get_abbrev_tag
int dwarf_get_abbrev_tag(Dwarf_Abbrev dw_abbrev, Dwarf_Half *dw_return_tag_number, Dwarf_Error *dw_error)
Get abbreviation tag.
dwarf_dealloc
void dwarf_dealloc(Dwarf_Debug dw_dbg, void *dw_space, Dwarf_Unsigned dw_type)
The generic dealloc (free) function. It requires you know the correct DW_DLA value to pass in,...
Dwarf_Handler
void(* Dwarf_Handler)(Dwarf_Error dw_error, Dwarf_Ptr dw_errarg)
Definition: libdwarf.h:626
dwarf_bitoffset
int dwarf_bitoffset(Dwarf_Die dw_die, Dwarf_Half *dw_attrnum, Dwarf_Unsigned *dw_returned_offset, Dwarf_Error *dw_error)
Returns the bit offset attribute of a DIE.
dwarf_gdbindex_header
int dwarf_gdbindex_header(Dwarf_Debug dw_dbg, Dwarf_Gdbindex *dw_gdbindexptr, Dwarf_Unsigned *dw_version, Dwarf_Unsigned *dw_cu_list_offset, Dwarf_Unsigned *dw_types_cu_list_offset, Dwarf_Unsigned *dw_address_area_offset, Dwarf_Unsigned *dw_symbol_table_offset, Dwarf_Unsigned *dw_constant_pool_offset, Dwarf_Unsigned *dw_section_size, const char **dw_section_name, Dwarf_Error *dw_error)
Open access to the .gdb_index section.
dwarf_lineaddr
int dwarf_lineaddr(Dwarf_Line dw_line, Dwarf_Addr *dw_returned_addr, Dwarf_Error *dw_error)
Returns the address of the Dwarf_Line.
dwarf_get_offset_size
int dwarf_get_offset_size(Dwarf_Debug, Dwarf_Half *, Dwarf_Error *)
Get offset size as defined by the object.
Dwarf_Unsigned
unsigned long long Dwarf_Unsigned
Definition: libdwarf.h:209
dwarf_next_cu_header_d
int dwarf_next_cu_header_d(Dwarf_Debug dw_dbg, Dwarf_Bool dw_is_info, Dwarf_Unsigned *dw_cu_header_length, Dwarf_Half *dw_version_stamp, Dwarf_Off *dw_abbrev_offset, Dwarf_Half *dw_address_size, Dwarf_Half *dw_length_size, Dwarf_Half *dw_extension_size, Dwarf_Sig8 *dw_type_signature, Dwarf_Unsigned *dw_typeoffset, Dwarf_Unsigned *dw_next_cu_header_offset, Dwarf_Half *dw_header_cu_type, Dwarf_Error *dw_error)
Returns information on the next CU header.
dwarf_srclines_comp_dir
int dwarf_srclines_comp_dir(Dwarf_Line_Context dw_context, const char **dw_compilation_directory, Dwarf_Error *dw_error)
Compilation Directory name for the CU.
dwarf_get_rnglist_rle
int dwarf_get_rnglist_rle(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_contextnumber, Dwarf_Unsigned dw_entry_offset, Dwarf_Unsigned dw_endoffset, unsigned int *dw_entrylen, unsigned int *dw_entry_kind, Dwarf_Unsigned *dw_entry_operand1, Dwarf_Unsigned *dw_entry_operand2, Dwarf_Error *dw_error)
Access to raw rnglists range data.
dwarf_get_rnglist_head_basics
int dwarf_get_rnglist_head_basics(Dwarf_Rnglists_Head dw_head, Dwarf_Unsigned *dw_rle_count, Dwarf_Unsigned *dw_rnglists_version, Dwarf_Unsigned *dw_rnglists_index_returned, Dwarf_Unsigned *dw_bytes_total_in_rle, Dwarf_Half *dw_offset_size, Dwarf_Half *dw_address_size, Dwarf_Half *dw_segment_selector_size, Dwarf_Unsigned *dw_overall_offset_of_this_context, Dwarf_Unsigned *dw_total_length_of_this_context, Dwarf_Unsigned *dw_offset_table_offset, Dwarf_Unsigned *dw_offset_table_entrycount, Dwarf_Bool *dw_rnglists_base_present, Dwarf_Unsigned *dw_rnglists_base, Dwarf_Bool *dw_rnglists_base_address_present, Dwarf_Unsigned *dw_rnglists_base_address, Dwarf_Bool *dw_rnglists_debug_addr_base_present, Dwarf_Unsigned *dw_rnglists_debug_addr_base, Dwarf_Error *dw_error)
Access to internal data on rangelists.
dwarf_discr_entry_u
int dwarf_discr_entry_u(Dwarf_Dsc_Head dw_dsc, Dwarf_Unsigned dw_entrynum, Dwarf_Half *dw_out_type, Dwarf_Unsigned *dw_out_discr_low, Dwarf_Unsigned *dw_out_discr_high, Dwarf_Error *dw_error)
Access a single unsigned discriminant list entry.
Dwarf_Signed
signed long long Dwarf_Signed
Definition: libdwarf.h:210
dwarf_formflag
int dwarf_formflag(Dwarf_Attribute dw_attr, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Return the flag value of a flag form.
dwarf_set_frame_cfa_value
Dwarf_Half dwarf_set_frame_cfa_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame CFA Column Invariants for setting frame registers .
dwarf_srclines_dealloc_b
void dwarf_srclines_dealloc_b(Dwarf_Line_Context dw_context)
Dealloc the memory allocated by dwarf_srclines_b.
dwarf_set_stringcheck
int dwarf_set_stringcheck(int dw_stringcheck)
Turn off libdwarf checks of strings.
dwarf_arrayorder
int dwarf_arrayorder(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_order, Dwarf_Error *dw_error)
Returns the value of the DW_AT_ordering attribute.
dwarf_get_pubtypes
int dwarf_get_pubtypes(Dwarf_Debug dw_dbg, Dwarf_Type **dw_types, Dwarf_Signed *dw_number_of_types, Dwarf_Error *dw_error)
Access to DWARF3, DWARF4 .debug_pubtypes section.
dwarf_global_die_offset
int dwarf_global_die_offset(Dwarf_Global dw_global, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Return the DIE offset of a global data item.
dwarf_global_formref
int dwarf_global_formref(Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Same as dwarf_global_formref_b except...
dwarf_get_fde_info_for_reg3_b
int dwarf_get_fde_info_for_reg3_b(Dwarf_Fde dw_fde, Dwarf_Half dw_table_column, Dwarf_Addr dw_pc_requested, Dwarf_Small *dw_value_type, Dwarf_Unsigned *dw_offset_relevant, Dwarf_Unsigned *dw_register, Dwarf_Unsigned *dw_offset, Dwarf_Block *dw_block_content, Dwarf_Addr *dw_row_pc_out, Dwarf_Bool *dw_has_more_rows, Dwarf_Addr *dw_subsequent_pc, Dwarf_Error *dw_error)
Returns details about a particular pc and register.
dwarf_die_from_hash_signature
int dwarf_die_from_hash_signature(Dwarf_Debug dw_dbg, Dwarf_Sig8 *dw_hash_sig, const char *dw_sig_type, Dwarf_Die *dw_returned_CU_die, Dwarf_Error *dw_error)
Given a has signature, retrieve the applicable CU die.
dwarf_get_rnglists_entry_fields_a
int dwarf_get_rnglists_entry_fields_a(Dwarf_Rnglists_Head dw_head, Dwarf_Unsigned dw_entrynum, unsigned int *dw_entrylen, unsigned int *dw_rle_value_out, Dwarf_Unsigned *dw_raw1, Dwarf_Unsigned *dw_raw2, Dwarf_Bool *dw_debug_addr_unavailable, Dwarf_Unsigned *dw_cooked1, Dwarf_Unsigned *dw_cooked2, Dwarf_Error *dw_error)
Access rnglist entry details.
dwarf_get_line_section_name_from_die
int dwarf_get_line_section_name_from_die(Dwarf_Die dw_die, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get the line table section name.
dwarf_rnglists_get_rle_head
int dwarf_rnglists_get_rle_head(Dwarf_Attribute dw_attr, Dwarf_Half dw_theform, Dwarf_Unsigned dw_index_or_offset_value, Dwarf_Rnglists_Head *dw_head_out, Dwarf_Unsigned *dw_count_of_entries_in_head, Dwarf_Unsigned *dw_global_offset_of_rle_set, Dwarf_Error *dw_error)
Get Access to DWARF5 rnglists.
Dwarf_Frame_Instr_Head
struct Dwarf_Frame_Instr_Head_s * Dwarf_Frame_Instr_Head
Definition: libdwarf.h:370
Dwarf_Cmdline_Options
struct Dwarf_Cmdline_Options_s Dwarf_Cmdline_Options
dwarf_get_SECT_name
int dwarf_get_SECT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_SECT_name
dwarf_dealloc_ranges
void dwarf_dealloc_ranges(Dwarf_Debug dw_dbg, Dwarf_Ranges *dw_rangesbuf, Dwarf_Signed dw_rangecount)
Dealloc the array dw_rangesbuf.
Dwarf_Rnglists_Head
struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head
Definition: libdwarf.h:650
dwarf_get_globals
int dwarf_get_globals(Dwarf_Debug dw_dbg, Dwarf_Global **dw_globals, Dwarf_Signed *dw_number_of_globals, Dwarf_Error *dw_error)
Global name space operations, .debug_pubnames access.
dwarf_gdbindex_addressarea
int dwarf_gdbindex_addressarea(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_addressarea_list_length, Dwarf_Error *dw_error)
Get access to gdbindex address area.
Dwarf_Line
struct Dwarf_Line_s * Dwarf_Line
Definition: libdwarf.h:548
dwarf_get_loclist_offset_index_value
int dwarf_get_loclist_offset_index_value(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_context_index, Dwarf_Unsigned dw_offsetentry_index, Dwarf_Unsigned *dw_offset_value_out, Dwarf_Unsigned *dw_global_offset_value_out, Dwarf_Error *dw_error)
Return certain loclists offsets.
dwarf_get_CFA_name
int dwarf_get_CFA_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CFA_name
dwarf_dnames_abbrev_by_code
int dwarf_dnames_abbrev_by_code(Dwarf_Dnames_Head dw_dn, Dwarf_Half dw_abbrev_code, Dwarf_Half *dw_tag, Dwarf_Unsigned *dw_index_of_abbrev, Dwarf_Unsigned *dw_number_of_attr_form_entries)
Find an abbrev set by abbrev code.
dwarf_debug_addr_index_to_addr
int dwarf_debug_addr_index_to_addr(Dwarf_Die dw_die, Dwarf_Unsigned dw_index, Dwarf_Addr *dw_return_addr, Dwarf_Error *dw_error)
Extract address given address index. DWARF5.
dwarf_set_frame_undefined_value
Dwarf_Half dwarf_set_frame_undefined_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Undefined Value Default Invariants for setting frame registers .
dwarf_set_de_alloc_flag
int dwarf_set_de_alloc_flag(int dw_v)
Eliminate libdwarf tracking of allocations Independent of any Dwarf_Debug and applicable to all whene...
dwarf_discr_entry_s
int dwarf_discr_entry_s(Dwarf_Dsc_Head dw_dsc, Dwarf_Unsigned dw_entrynum, Dwarf_Half *dw_out_type, Dwarf_Signed *dw_out_discr_low, Dwarf_Signed *dw_out_discr_high, Dwarf_Error *dw_error)
Access to a single signed discriminant list entry.
dwarf_bitsize
int dwarf_bitsize(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_size, Dwarf_Error *dw_error)
Returns the value of the attribute DW_AT_bitsize.
dwarf_fde_section_offset
int dwarf_fde_section_offset(Dwarf_Debug dw_dbg, Dwarf_Fde dw_in_fde, Dwarf_Off *dw_fde_off, Dwarf_Off *dw_cie_off, Dwarf_Error *dw_error)
Use to print fde and cie offsets from debugging info.
dwarf_dnames_abbrevtable
int dwarf_dnames_abbrevtable(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_index, Dwarf_Unsigned *dw_abbrev_offset, Dwarf_Unsigned *dw_abbrev_code, Dwarf_Unsigned *dw_abbrev_tag, Dwarf_Unsigned dw_array_size, Dwarf_Half *dw_idxattr_array, Dwarf_Half *dw_form_array, Dwarf_Unsigned *dw_idxattr_count)
Access to the abbrevs table content.
Dwarf_Line_Context
struct Dwarf_Line_Context_s * Dwarf_Line_Context
Definition: libdwarf.h:608
Dwarf_Die
struct Dwarf_Die_s * Dwarf_Die
Definition: libdwarf.h:542
dwarf_init_b
int dwarf_init_b(int dw_fd, unsigned int dw_groupnumber, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, Dwarf_Debug *dw_dbg, Dwarf_Error *dw_error)
Initialization based on Unix/Linux (etc) path This version allows specifying any number of debuglink ...
dwarf_get_location_op_value_c
int dwarf_get_location_op_value_c(Dwarf_Locdesc_c dw_locdesc, Dwarf_Unsigned dw_index, Dwarf_Small *dw_operator_out, Dwarf_Unsigned *dw_operand1, Dwarf_Unsigned *dw_operand2, Dwarf_Unsigned *dw_operand3, Dwarf_Unsigned *dw_offset_for_branch, Dwarf_Error *dw_error)
Get the raw values from a single location operation.
dwarf_die_CU_offset
int dwarf_die_CU_offset(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
returns the CU relative offset of the DIE.
dwarf_dealloc_frame_instr_head
void dwarf_dealloc_frame_instr_head(Dwarf_Frame_Instr_Head dw_head)
Deallocates the frame instruction data in dw_head.
dwarf_dealloc_uncompressed_block
void dwarf_dealloc_uncompressed_block(Dwarf_Debug dw_dbg, void *dw_value_array)
Dealloc what dwarf_uncompress_integer_block_a allocated.
dwarf_get_EH_name
int dwarf_get_EH_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_EH_name
Dwarf_Debug_Fission_Per_CU_s
Definition: libdwarf.h:726
dwarf_printf_callback_function_type
void(* dwarf_printf_callback_function_type)(void *, const char *)
Definition: libdwarf.h:378
dwarf_get_arange
int dwarf_get_arange(Dwarf_Arange *dw_aranges, Dwarf_Unsigned dw_arange_count, Dwarf_Addr dw_address, Dwarf_Arange *dw_returned_arange, Dwarf_Error *dw_error)
Find a range given a code address.
Dwarf_Macro_Details_s
Definition: libdwarf.h:636
dwarf_get_OP_name
int dwarf_get_OP_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_OP_name
dwarf_get_DSC_name
int dwarf_get_DSC_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DSC_name
dwarf_dealloc_gdbindex
void dwarf_dealloc_gdbindex(Dwarf_Gdbindex dw_gdbindexptr)
Free (dealloc) all allocated Dwarf_Gdbindex memory It should named dwarf_dealloc_gdbindex.
dwarf_get_frame_section_name
int dwarf_get_frame_section_name(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get .debug_frame section name.
dwarf_get_LNCT_name
int dwarf_get_LNCT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNCT_name
dwarf_formexprloc
int dwarf_formexprloc(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_return_exprlen, Dwarf_Ptr *dw_block_ptr, Dwarf_Error *dw_error)
Returns a pointer-to and length-of a block of data.
Dwarf_Abbrev
struct Dwarf_Abbrev_s * Dwarf_Abbrev
Definition: libdwarf.h:578
dwarf_get_die_section_name
int dwarf_get_die_section_name(Dwarf_Debug dw_dbg, Dwarf_Bool dw_is_info, const char **dw_sec_name, Dwarf_Error *dw_error)
Get the real name a DIE section.
dwarf_lineblock
int dwarf_lineblock(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Returns the basic_block line register.
dwarf_hasform
int dwarf_hasform(Dwarf_Attribute dw_attr, Dwarf_Half dw_form, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Sets TRUE of a Dwarf_Attribute has the indicated FORM.
dwarf_whatattr
int dwarf_whatattr(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_attrnum, Dwarf_Error *dw_error)
Returns the attribute number of the Dwarf_Attribute.
dwarf_formstring
int dwarf_formstring(Dwarf_Attribute dw_attr, char **dw_returned_string, Dwarf_Error *dw_error)
Returns a pointer to a string.
Dwarf_Ranges
struct Dwarf_Ranges_s Dwarf_Ranges
dwarf_cie_section_offset
int dwarf_cie_section_offset(Dwarf_Debug dw_dbg, Dwarf_Cie dw_in_cie, Dwarf_Off *dw_cie_off, Dwarf_Error *dw_error)
Use to print cie offsets from debugging info.
dwarf_expand_frame_instructions
int dwarf_expand_frame_instructions(Dwarf_Cie dw_cie, Dwarf_Small *dw_instructionspointer, Dwarf_Unsigned dw_length_in_bytes, Dwarf_Frame_Instr_Head *dw_head, Dwarf_Unsigned *dw_instr_count, Dwarf_Error *dw_error)
Expands CIE or FDE instructions for detailed examination. Called for CIE initial instructions and FDE...
dwarf_get_VIS_name
int dwarf_get_VIS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_VIS_name
Dwarf_Form_Data16_s
Definition: libdwarf.h:305
dwarf_get_ATCF_name
int dwarf_get_ATCF_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_AT_name
Dwarf_Regtable_Entry3
struct Dwarf_Regtable_Entry3_s Dwarf_Regtable_Entry3
dwarf_package_version
const char * dwarf_package_version(void)
Returns the version string in the library.
dwarf_die_text
int dwarf_die_text(Dwarf_Die dw_die, Dwarf_Half dw_attrnum, char **dw_ret_name, Dwarf_Error *dw_error)
Given DIE and attribute number return a string.
dwarf_get_cie_info_b
int dwarf_get_cie_info_b(Dwarf_Cie dw_cie, Dwarf_Unsigned *dw_bytes_in_cie, Dwarf_Small *dw_version, char **dw_augmenter, Dwarf_Unsigned *dw_code_alignment_factor, Dwarf_Signed *dw_data_alignment_factor, Dwarf_Half *dw_return_address_register_rule, Dwarf_Small **dw_initial_instructions, Dwarf_Unsigned *dw_initial_instructions_length, Dwarf_Half *dw_offset_size, Dwarf_Error *dw_error)
Given a CIE get access to its content.
dwarf_global_name_offsets
int dwarf_global_name_offsets(Dwarf_Global dw_global, char **dw_returned_name, Dwarf_Off *dw_die_offset, Dwarf_Off *dw_cu_offset, Dwarf_Error *dw_error)
Return the name and offsets of a global entry.
dwarf_str_offsets_statistics
int dwarf_str_offsets_statistics(Dwarf_Str_Offsets_Table dw_table_data, Dwarf_Unsigned *dw_wasted_byte_count, Dwarf_Unsigned *dw_table_count, Dwarf_Error *dw_error)
Reports final wasted-bytes count.
dwarf_errmsg_by_number
char * dwarf_errmsg_by_number(Dwarf_Unsigned dw_errornum)
What message string is associated with the error number.
Dwarf_Form_Class
Dwarf_Form_Class
Definition: libdwarf.h:272
dwarf_get_frame_instruction
int dwarf_get_frame_instruction(Dwarf_Frame_Instr_Head dw_head, Dwarf_Unsigned dw_instr_index, Dwarf_Unsigned *dw_instr_offset_in_instrs, Dwarf_Small *dw_cfa_operation, const char **dw_fields_description, Dwarf_Unsigned *dw_u0, Dwarf_Unsigned *dw_u1, Dwarf_Signed *dw_s0, Dwarf_Signed *dw_s1, Dwarf_Unsigned *dw_code_alignment_factor, Dwarf_Signed *dw_data_alignment_factor, Dwarf_Block *dw_expression_block, Dwarf_Error *dw_error)
Returns information about a single instruction Fields_description means a sequence of up to three let...
dwarf_get_form_class
enum Dwarf_Form_Class dwarf_get_form_class(Dwarf_Half dw_version, Dwarf_Half dw_attrnum, Dwarf_Half dw_offset_size, Dwarf_Half dw_form)
Returns the FORM_CLASS applicable. Four pieces of information are necessary to get the correct FORM_C...
dwarf_get_weaks
int dwarf_get_weaks(Dwarf_Debug dw_dbg, Dwarf_Weak **dw_weaks, Dwarf_Signed *dw_number_of_weaks, Dwarf_Error *dw_error)
Access to SGI/IRIC .debug_weaks section.
dwarf_get_loclist_context_basics
int dwarf_get_loclist_context_basics(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_index, Dwarf_Unsigned *dw_header_offset, Dwarf_Small *dw_offset_size, Dwarf_Small *dw_extension_size, unsigned int *dw_version, Dwarf_Small *dw_address_size, Dwarf_Small *dw_segment_selector_size, Dwarf_Unsigned *dw_offset_entry_count, Dwarf_Unsigned *dw_offset_of_offset_array, Dwarf_Unsigned *dw_offset_of_first_locentry, Dwarf_Unsigned *dw_offset_past_last_locentry, Dwarf_Error *dw_error)
Return basic data about a loclists context.
dwarf_print_lines
int dwarf_print_lines(Dwarf_Die dw_cu_die, Dwarf_Error *dw_error, int *dw_errorcount_out)
Print line information in great detail.
dwarf_get_debug_addr_index
int dwarf_get_debug_addr_index(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_return_index, Dwarf_Error *dw_error)
Get the addr index of a Dwarf_Attribute.
Dwarf_Cie
struct Dwarf_Cie_s * Dwarf_Cie
Definition: libdwarf.h:587
dwarf_get_fde_n
int dwarf_get_fde_n(Dwarf_Fde *dw_fde_data, Dwarf_Unsigned dw_fde_index, Dwarf_Fde *dw_returned_fde, Dwarf_Error *dw_error)
Retrieve an FDE from an FDE table.
dwarf_get_cie_of_fde
int dwarf_get_cie_of_fde(Dwarf_Fde dw_fde, Dwarf_Cie *dw_cie_returned, Dwarf_Error *dw_error)
Given FDE get CIE.
dwarf_globname
int dwarf_globname(Dwarf_Global dw_global, char **dw_returned_name, Dwarf_Error *dw_error)
Return the name of a global data item.
dwarf_get_LNE_name
int dwarf_get_LNE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNE_name
dwarf_get_fde_augmentation_data
int dwarf_get_fde_augmentation_data(Dwarf_Fde dw_fde, Dwarf_Small **dw_augdata, Dwarf_Unsigned *dw_augdata_len, Dwarf_Error *dw_error)
Return .eh_frame FDE augmentation data.
dwarf_errno
Dwarf_Unsigned dwarf_errno(Dwarf_Error dw_error)
What DW_DLE code does the error have?
dwarf_validate_die_sibling
int dwarf_validate_die_sibling(Dwarf_Die dw_sibling, Dwarf_Off *dw_offset)
Validate a sibling DIE.
dwarf_sec_group_map
int dwarf_sec_group_map(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_map_entry_count, Dwarf_Unsigned *dw_group_numbers_array, Dwarf_Unsigned *dw_sec_numbers_array, const char **dw_sec_names_array, Dwarf_Error *dw_error)
Returns a map between group numbers and section numbers.
dwarf_get_types
int dwarf_get_types(Dwarf_Debug dw_dbg, Dwarf_Type **dw_types, Dwarf_Signed *dw_number_of_types, Dwarf_Error *dw_error)
Access to SGI/IRIX .debug_types section. Static types names and offsets. Pubnames and Pubtypes overvi...
dwarf_formsdata
int dwarf_formsdata(Dwarf_Attribute dw_attr, Dwarf_Signed *dw_returned_val, Dwarf_Error *dw_error)
Return a signed value.
Dwarf_Arange
struct Dwarf_Arange_s * Dwarf_Arange
Definition: libdwarf.h:593
dwarf_line_subprog
int dwarf_line_subprog(Dwarf_Line, char **, char **, Dwarf_Unsigned *, Dwarf_Error *)
Two-level line tables get subprog, file, line Experimental two level line tables. Not explained here....
dwarf_get_loclist_head_kind
int dwarf_get_loclist_head_kind(Dwarf_Loc_Head_c dw_loclist_head, unsigned int *dw_lkind, Dwarf_Error *dw_error)
Know what kind of location data it is.
dwarf_get_cu_die_offset
int dwarf_get_cu_die_offset(Dwarf_Arange dw_arange, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Given an arange return its CU DIE offset.
dwarf_get_MACINFO_name
int dwarf_get_MACINFO_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_MACINFO_name
dwarf_diename
int dwarf_diename(Dwarf_Die dw_die, char **dw_diename, Dwarf_Error *dw_error)
Return the string from a DW_AT_name attribute.
dwarf_get_xu_section_names
int dwarf_get_xu_section_names(Dwarf_Xu_Index_Header dw_xuhdr, Dwarf_Unsigned dw_column_index, Dwarf_Unsigned *dw_SECT_number, const char **dw_SECT_name, Dwarf_Error *dw_error)
get DW_SECT value for a column.
Dwarf_Cmdline_Options_s
Definition: libdwarf.h:402
dwarf_object_finish
int dwarf_object_finish(Dwarf_Debug dw_dbg)
Used to close the object_init dw_dbg.
dwarf_line_subprogno
int dwarf_line_subprogno(Dwarf_Line, Dwarf_Unsigned *, Dwarf_Error *)
Two-level line tables get subprogam number Experimental two level line tables. Not explained here....
dwarf_die_abbrev_code
int dwarf_die_abbrev_code(Dwarf_Die dw_die)
Return the DIE abbrev code.
dwarf_get_macro_op
int dwarf_get_macro_op(Dwarf_Macro_Context dw_macro_context, Dwarf_Unsigned dw_op_number, Dwarf_Unsigned *dw_op_start_section_offset, Dwarf_Half *dw_macro_operator, Dwarf_Half *dw_forms_count, const Dwarf_Small **dw_formcode_array, Dwarf_Error *dw_error)
Access macro operation details of a single operation.
dwarf_tag
int dwarf_tag(Dwarf_Die dw_die, Dwarf_Half *dw_return_tag, Dwarf_Error *dw_error)
Get TAG value of DIE.
dwarf_dealloc_loc_head_c
void dwarf_dealloc_loc_head_c(Dwarf_Loc_Head_c dw_head)
Dealloc (free) all memory allocated for Dwarf_Loc_Head_c.
dwarf_dealloc_dnames
void dwarf_dealloc_dnames(Dwarf_Dnames_Head dw_dn)
Frees all the malloc data associated with dw_dn.
dwarf_lowpc
int dwarf_lowpc(Dwarf_Die dw_die, Dwarf_Addr *dw_returned_addr, Dwarf_Error *dw_error)
Returns the DW_AT_low_pc value.
Dwarf_Error
struct Dwarf_Error_s * Dwarf_Error
Definition: libdwarf.h:531
dwarf_get_FRAME_name
int dwarf_get_FRAME_name(unsigned int dw_val_in, const char **dw_s_out)
This is a set of register names.
dwarf_get_globals_header
int dwarf_get_globals_header(Dwarf_Global dw_global, Dwarf_Off *dw_offset_pub_header, Dwarf_Unsigned *dw_length_size, Dwarf_Unsigned *dw_length_pub, Dwarf_Unsigned *dw_version, Dwarf_Unsigned *dw_header_info_offset, Dwarf_Unsigned *dw_info_length, Dwarf_Error *dw_error)
For more complete globals printing. For each CU represented in .debug_pubnames, etc,...
dwarf_gdbindex_addressarea_entry
int dwarf_gdbindex_addressarea_entry(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_entryindex, Dwarf_Unsigned *dw_low_address, Dwarf_Unsigned *dw_high_address, Dwarf_Unsigned *dw_cu_index, Dwarf_Error *dw_error)
Get an address area value.
dwarf_srclang
int dwarf_srclang(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_lang, Dwarf_Error *dw_error)
Returns the value of the DW_AT_language attribute.
dwarf_srclines_subprog_count
int dwarf_srclines_subprog_count(Dwarf_Line_Context dw_context, Dwarf_Signed *dw_count, Dwarf_Error *dw_error)
Subprog count: Part of the two-level line table extension.
dwarf_get_GNUIVIS_name
int dwarf_get_GNUIVIS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_GNUIVIS_name - a libdwarf invention
dwarf_line_is_addr_set
int dwarf_line_is_addr_set(Dwarf_Line dw_line, Dwarf_Bool *dw_is_addr_set, Dwarf_Error *dw_error)
Is the Dwarf_Line address from DW_LNS_set_address? This is not a line register, but it is a flag set ...
dwarf_convert_to_global_offset
int dwarf_convert_to_global_offset(Dwarf_Attribute dw_attr, Dwarf_Off dw_offset, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Convert local offset to global offset.
dwarf_linelogical
int dwarf_linelogical(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_logical, Dwarf_Error *dw_error)
Experimental Two-level logical Row Number Experimental two level line tables. Not explained here....
dwarf_get_LLEX_name
int dwarf_get_LLEX_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LLEX_name - a GNU extension.
dwarf_macro_context_total_length
int dwarf_macro_context_total_length(Dwarf_Macro_Context dw_context, Dwarf_Unsigned *dw_mac_total_len, Dwarf_Error *dw_error)
Return a macro context total length.
dwarf_dealloc_rnglists_head
void dwarf_dealloc_rnglists_head(Dwarf_Rnglists_Head dw_head)
Dealloc a Dwarf_Rnglists_Head.
dwarf_global_cu_offset
int dwarf_global_cu_offset(Dwarf_Global dw_global, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Return the CU header data of a global data item.