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-2023 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 #ifndef LIBDWARF_STATIC
54 # if defined(_WIN32) || defined(__CYGWIN__)
55 # ifdef LIBDWARF_BUILD
56 # define DW_API __declspec(dllexport)
57 # else /* !LIBDWARF_BUILD */
58 # define DW_API __declspec(dllimport)
59 # endif /* LIBDWARF_BUILD */
60 # elif (defined(__SUNPRO_C) || defined(__SUNPRO_CC))
61 # if defined(PIC) || defined(__PIC__)
62 # define DW_API __global
63 # endif /* __PIC__ */
64 # elif (defined(__GNUC__) && __GNUC__ >= 4) || \
65  defined(__INTEL_COMPILER)
66 # if defined(PIC) || defined(__PIC__)
67 # define DW_API __attribute__ ((visibility("default")))
68 # endif /* PIC */
69 # endif /* WIN32 SUNPRO GNUC */
70 #endif /* !LIBDWARF_STATIC */
71 
72 #ifndef DW_API
73 #define DW_API
74 #endif /* DW_API */
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.11.0"
103 #define DW_LIBDWARF_VERSION_MAJOR 0
104 #define DW_LIBDWARF_VERSION_MINOR 11
105 #define DW_LIBDWARF_VERSION_MICRO 0
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 #define DW_FTYPE_APPLEUNIVERSAL 5
119 #endif /* DW_FTYPE_UNKNOWN */
120 /* standard return values for functions */
121 #define DW_DLV_NO_ENTRY -1
122 #define DW_DLV_OK 0
123 #define DW_DLV_ERROR 1
124 /* These support opening DWARF5 split dwarf objects and
125  Elf SHT_GROUP blocks of DWARF sections. */
126 #define DW_GROUPNUMBER_ANY 0
127 #define DW_GROUPNUMBER_BASE 1
128 #define DW_GROUPNUMBER_DWO 2
129 
130 /* FRAME special values */
131 /* The following 3 are assigned numbers, but
132  are only present at run time.
133  Must not conflict with DW_FRAME values in dwarf.h */
134 /* Taken as meaning 'undefined value', this is not
135  a column or register number. */
136 #ifndef DW_FRAME_UNDEFINED_VAL
137 #define DW_FRAME_UNDEFINED_VAL 12288
138 #endif
139 /* Taken as meaning 'same value' as caller had,
140  not a column or register number */
141 #ifndef DW_FRAME_SAME_VAL
142 #define DW_FRAME_SAME_VAL 12289
143 #endif
144 /* DW_FRAME_CFA_COL is assigned a virtual table position
145  but is accessed via CFA specific calls. */
146 #ifndef DW_FRAME_CFA_COL
147 #define DW_FRAME_CFA_COL 12290
148 #endif
149 #define DW_FRAME_CFA_COL3 DW_FRAME_CFA_COL /*compatibility name*/
150 /* END FRAME special values */
151 
152 /* dwarf_pcline function, slide arguments
153 */
154 #define DW_DLS_BACKWARD -1 /* slide backward to find line */
155 #define DW_DLS_NOSLIDE 0 /* match exactly without sliding */
156 #define DW_DLS_FORWARD 1 /* slide forward to find line */
157 
158 /* Defined larger than necessary.
159  struct Dwarf_Debug_Fission_Per_CU_s,
160  being visible, will be difficult to change:
161  binary compatibility. The count is for arrays
162  inside the struct, the struct itself is
163  a single struct. */
164 #define DW_FISSION_SECT_COUNT 12
165 
196 typedef unsigned long long Dwarf_Unsigned;
197 typedef signed long long Dwarf_Signed;
198 typedef unsigned long long Dwarf_Off;
199 typedef unsigned long long Dwarf_Addr;
200  /* Dwarf_Bool as int is wasteful, but for compatibility
201  it must stay as int, not unsigned char. */
202 typedef int Dwarf_Bool; /* boolean type */
203 typedef unsigned short Dwarf_Half; /* 2 byte unsigned value */
204 typedef unsigned char Dwarf_Small; /* 1 byte unsigned value */
205 /* If sizeof(Dwarf_Half) is greater than 2
206  we believe libdwarf still works properly. */
207 
208 typedef void* Dwarf_Ptr; /* host machine pointer */
234 enum Dwarf_Ranges_Entry_Type { DW_RANGES_ENTRY,
235  DW_RANGES_ADDRESS_SELECTION,
236  DW_RANGES_END
237 };
238 
270  DW_FORM_CLASS_UNKNOWN = 0,
271  DW_FORM_CLASS_ADDRESS = 1,
272  DW_FORM_CLASS_BLOCK = 2,
273  DW_FORM_CLASS_CONSTANT =3,
274  DW_FORM_CLASS_EXPRLOC = 4,
275  DW_FORM_CLASS_FLAG = 5,
276  DW_FORM_CLASS_LINEPTR = 6,
277  DW_FORM_CLASS_LOCLISTPTR=7, /* DWARF2,3,4 only */
278  DW_FORM_CLASS_MACPTR = 8, /* DWARF2,3,4 only */
279  DW_FORM_CLASS_RANGELISTPTR=9, /* DWARF2,3,4 only */
280  DW_FORM_CLASS_REFERENCE=10,
281  DW_FORM_CLASS_STRING = 11,
282  DW_FORM_CLASS_FRAMEPTR= 12, /* MIPS/IRIX DWARF2 only */
283  DW_FORM_CLASS_MACROPTR= 13, /* DWARF5 */
284  DW_FORM_CLASS_ADDRPTR = 14, /* DWARF5 */
285  DW_FORM_CLASS_LOCLIST = 15, /* DWARF5 */
286  DW_FORM_CLASS_LOCLISTSPTR=16, /* DWARF5 */
287  DW_FORM_CLASS_RNGLIST =17, /* DWARF5 */
288  DW_FORM_CLASS_RNGLISTSPTR=18, /* DWARF5 */
289  DW_FORM_CLASS_STROFFSETSPTR=19 /* DWARF5 */
290 };
302 typedef struct Dwarf_Form_Data16_s {
303  unsigned char fd_data[16];
305 
313 typedef struct Dwarf_Sig8_s {
314  char signature[8];
316 
330 typedef struct Dwarf_Block_s {
331  Dwarf_Unsigned bl_len;
332  Dwarf_Ptr bl_data;
333  Dwarf_Small bl_from_loclist;
334  Dwarf_Unsigned bl_section_offset;
336 
341 typedef struct Dwarf_Locdesc_c_s * Dwarf_Locdesc_c;
342 
347 typedef struct Dwarf_Loc_Head_c_s * Dwarf_Loc_Head_c;
348 
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 
394  (void * dw_user_pointer, const char * dw_linecontent);
395 
414  void * dp_user_pointer;
416  char * dp_buffer;
417  unsigned int dp_buffer_len;
418  int dp_buffer_user_provided;
419  void * dp_reserved;
420 };
421 
442  Dwarf_Bool check_verbose_mode;
443 };
448 
455 typedef struct Dwarf_Str_Offsets_Table_s * Dwarf_Str_Offsets_Table;
456 
469 typedef struct Dwarf_Ranges_s {
470  Dwarf_Addr dwr_addr1;
471  Dwarf_Addr dwr_addr2;
472  enum Dwarf_Ranges_Entry_Type dwr_type;
474 
553 typedef struct Dwarf_Regtable_Entry3_s {
554  Dwarf_Small dw_offset_relevant;
555  Dwarf_Small dw_value_type;
556  Dwarf_Half dw_regnum;
557  Dwarf_Unsigned dw_offset; /* Should be Dwarf_Signed */
558  Dwarf_Unsigned dw_args_size; /* Always zero. */
559  Dwarf_Block dw_block;
561 
581 typedef struct Dwarf_Regtable3_s {
582  struct Dwarf_Regtable_Entry3_s rt3_cfa_rule;
583  Dwarf_Half rt3_reg_table_size;
584  struct Dwarf_Regtable_Entry3_s * rt3_rules;
586 
587 /* Opaque types for Consumer Library. */
597 typedef struct Dwarf_Error_s* Dwarf_Error;
598 
603 typedef struct Dwarf_Debug_s* Dwarf_Debug;
604 
608 typedef struct Dwarf_Die_s* Dwarf_Die;
609 
613 typedef struct Dwarf_Debug_Addr_Table_s* Dwarf_Debug_Addr_Table;
614 
619 typedef struct Dwarf_Line_s* Dwarf_Line;
620 
625 typedef struct Dwarf_Global_s* Dwarf_Global;
626 
634 typedef struct Dwarf_Type_s* Dwarf_Type;
635 
641 typedef struct Dwarf_Func_s* Dwarf_Func;
647 typedef struct Dwarf_Var_s* Dwarf_Var;
653 typedef struct Dwarf_Weak_s* Dwarf_Weak;
654 
658 typedef struct Dwarf_Attribute_s* Dwarf_Attribute;
659 
665 typedef struct Dwarf_Abbrev_s* Dwarf_Abbrev;
666 
671 typedef struct Dwarf_Fde_s* Dwarf_Fde;
676 typedef struct Dwarf_Cie_s* Dwarf_Cie;
677 
682 typedef struct Dwarf_Arange_s* Dwarf_Arange;
687 typedef struct Dwarf_Gdbindex_s* Dwarf_Gdbindex;
693 typedef struct Dwarf_Xu_Index_Header_s *Dwarf_Xu_Index_Header;
697 typedef struct Dwarf_Line_Context_s *Dwarf_Line_Context;
698 
702 typedef struct Dwarf_Macro_Context_s *Dwarf_Macro_Context;
703 
709 typedef struct Dwarf_Dnames_Head_s *Dwarf_Dnames_Head;
710 
718 typedef void (*Dwarf_Handler)(Dwarf_Error dw_error,
719  Dwarf_Ptr dw_errarg);
720 
729  Dwarf_Off dmd_offset; /* offset, in the section,
730  of this macro info */
731  Dwarf_Small dmd_type; /* the type, DW_MACINFO_define etc*/
732  Dwarf_Signed dmd_lineno; /* the source line number where
733  applicable and vend_def number if
734  vendor_extension op */
735  Dwarf_Signed dmd_fileindex;/* the source file index */
736  char * dmd_macro; /* macro name string */
737 };
743 
748 typedef struct Dwarf_Debug_Fission_Per_CU_s
750 
751 /* ===== BEGIN Obj_Access data ===== */
757 typedef struct Dwarf_Obj_Access_Interface_a_s
759 
765 typedef struct Dwarf_Obj_Access_Methods_a_s
767 
776 typedef struct Dwarf_Obj_Access_Section_a_s
779  const char* as_name;
780  Dwarf_Unsigned as_type;
781  Dwarf_Unsigned as_flags;
782  Dwarf_Addr as_addr;
783  Dwarf_Unsigned as_offset;
784  Dwarf_Unsigned as_size;
785  Dwarf_Unsigned as_link;
786  Dwarf_Unsigned as_info;
787  Dwarf_Unsigned as_addralign;
788  Dwarf_Unsigned as_entrysize;
789 };
790 
797  int (*om_get_section_info)(void* obj,
798  Dwarf_Unsigned section_index,
799  Dwarf_Obj_Access_Section_a* return_section,
800  int * error);
801  Dwarf_Small (*om_get_byte_order)(void* obj);
802  Dwarf_Small (*om_get_length_size)(void* obj);
803  Dwarf_Small (*om_get_pointer_size)(void* obj);
804  Dwarf_Unsigned (*om_get_filesize)(void* obj);
805  Dwarf_Unsigned (*om_get_section_count)(void* obj);
806  int (*om_load_section)(void* obj,
807  Dwarf_Unsigned section_index,
808  Dwarf_Small** return_data,
809  int * error);
810  int (*om_relocate_a_section)(void* obj,
811  Dwarf_Unsigned section_index,
812  Dwarf_Debug dbg,
813  int * error);
814 };
816  void* ai_object;
817  const Dwarf_Obj_Access_Methods_a *ai_methods;
818 };
819 /* ===== END Obj_Access data ===== */
820 
821 /* User code must allocate this struct, zero it,
822  and pass a pointer to it
823  into dwarf_get_debugfission_for_cu . */
825  /* Do not free the string. It contains "cu" or "tu". */
826  /* If this is not set (ie, not a CU/TU in DWP Package File)
827  then pcu_type will be NULL. */
828  const char * pcu_type;
829  /* pcu_index is the index (range 1 to N )
830  into the tu/cu table of offsets and the table
831  of sizes. 1 to N as the zero index is reserved
832  for special purposes. Not a value one
833  actually needs. */
834  Dwarf_Unsigned pcu_index;
835  Dwarf_Sig8 pcu_hash; /* 8 byte */
836  /* [0] has offset and size 0.
837  [1]-[8] are DW_SECT_* indexes and the
838  values are the offset and size
839  of the respective section contribution
840  of a single .dwo object. When pcu_size[n] is
841  zero the corresponding section is not present. */
842  Dwarf_Unsigned pcu_offset[DW_FISSION_SECT_COUNT];
843  Dwarf_Unsigned pcu_size[DW_FISSION_SECT_COUNT];
844  Dwarf_Unsigned unused1;
845  Dwarf_Unsigned unused2;
846 };
847 
852 typedef struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head;
853 
859 /* Special values for offset_into_exception_table field
860  of dwarf fde's
861  The following value indicates that there is no
862  Exception table offset
863  associated with a dwarf frame.
864 */
865 #define DW_DLX_NO_EH_OFFSET (-1LL)
866 /* The following value indicates that the producer
867  was unable to analyze the
868  source file to generate Exception tables for this function.
869 */
870 #define DW_DLX_EH_OFFSET_UNAVAILABLE (-2LL)
871 
872 /* The augmenter string for CIE */
873 #define DW_CIE_AUGMENTER_STRING_V0 "z"
874 
875 /* ***IMPORTANT NOTE, TARGET DEPENDENCY ****
876  DW_REG_TABLE_SIZE must be at least as large as
877  the number of registers
878  DW_FRAME_LAST_REG_NUM as defined in dwarf.h
879 */
880 #ifndef DW_REG_TABLE_SIZE
881 #define DW_REG_TABLE_SIZE DW_FRAME_LAST_REG_NUM
882 #endif
883 
884 /* For MIPS, DW_FRAME_SAME_VAL is the correct default value
885  for a frame register value. For other CPUS another value
886  may be better, such as DW_FRAME_UNDEFINED_VAL.
887  See dwarf_set_frame_rule_table_size
888 */
889 #ifndef DW_FRAME_REG_INITIAL_VALUE
890 #define DW_FRAME_REG_INITIAL_VALUE DW_FRAME_SAME_VAL
891 #endif
892 
893 /* The following are all needed to evaluate DWARF3 register rules.
894  These have nothing to do simply printing
895  frame instructions.
896 */
897 #define DW_EXPR_OFFSET 0 /* offset is from CFA reg */
898 #define DW_EXPR_VAL_OFFSET 1
899 #define DW_EXPR_EXPRESSION 2
900 #define DW_EXPR_VAL_EXPRESSION 3
911 #define DW_DLA_STRING 0x01 /* char* */
912 #define DW_DLA_LOC 0x02 /* Dwarf_Loc */
913 #define DW_DLA_LOCDESC 0x03 /* Dwarf_Locdesc */
914 #define DW_DLA_ELLIST 0x04 /* Dwarf_Ellist (not used)*/
915 #define DW_DLA_BOUNDS 0x05 /* Dwarf_Bounds (not used) */
916 #define DW_DLA_BLOCK 0x06 /* Dwarf_Block */
917 #define DW_DLA_DEBUG 0x07 /* Dwarf_Debug */
918 #define DW_DLA_DIE 0x08 /* Dwarf_Die */
919 #define DW_DLA_LINE 0x09 /* Dwarf_Line */
920 #define DW_DLA_ATTR 0x0a /* Dwarf_Attribute */
921 #define DW_DLA_TYPE 0x0b /* Dwarf_Type (not used) */
922 #define DW_DLA_SUBSCR 0x0c /* Dwarf_Subscr (not used) */
923 #define DW_DLA_GLOBAL 0x0d /* Dwarf_Global */
924 #define DW_DLA_ERROR 0x0e /* Dwarf_Error */
925 #define DW_DLA_LIST 0x0f /* a list */
926 #define DW_DLA_LINEBUF 0x10 /* Dwarf_Line* (not used) */
927 #define DW_DLA_ARANGE 0x11 /* Dwarf_Arange */
928 #define DW_DLA_ABBREV 0x12 /* Dwarf_Abbrev */
929 #define DW_DLA_FRAME_INSTR_HEAD 0x13 /* Dwarf_Frame_Instr_Head */
930 #define DW_DLA_CIE 0x14 /* Dwarf_Cie */
931 #define DW_DLA_FDE 0x15 /* Dwarf_Fde */
932 #define DW_DLA_LOC_BLOCK 0x16 /* Dwarf_Loc */
933 
934 #define DW_DLA_FRAME_OP 0x17 /* Dwarf_Frame_Op (not used) */
935 #define DW_DLA_FUNC 0x18 /* Dwarf_Func */
936 #define DW_DLA_UARRAY 0x19 /* Array of Dwarf_Off:Jan2023 */
937 #define DW_DLA_VAR 0x1a /* Dwarf_Var */
938 #define DW_DLA_WEAK 0x1b /* Dwarf_Weak */
939 #define DW_DLA_ADDR 0x1c /* Dwarf_Addr sized entries */
940 #define DW_DLA_RANGES 0x1d /* Dwarf_Ranges */
941 /* 0x1e (30) to 0x34 (52) reserved for internal to libdwarf types. */
942 /* .debug_gnu_typenames/pubnames, 2020 */
943 #define DW_DLA_GNU_INDEX_HEAD 0x35
944 
945 #define DW_DLA_RNGLISTS_HEAD 0x36 /* .debug_rnglists DW5 */
946 #define DW_DLA_GDBINDEX 0x37 /* Dwarf_Gdbindex */
947 #define DW_DLA_XU_INDEX 0x38 /* Dwarf_Xu_Index_Header */
948 #define DW_DLA_LOC_BLOCK_C 0x39 /* Dwarf_Loc_c*/
949 #define DW_DLA_LOCDESC_C 0x3a /* Dwarf_Locdesc_c */
950 #define DW_DLA_LOC_HEAD_C 0x3b /* Dwarf_Loc_Head_c */
951 #define DW_DLA_MACRO_CONTEXT 0x3c /* Dwarf_Macro_Context */
952 /* 0x3d (61) is for libdwarf internal use. */
953 #define DW_DLA_DSC_HEAD 0x3e /* Dwarf_Dsc_Head */
954 #define DW_DLA_DNAMES_HEAD 0x3f /* Dwarf_Dnames_Head */
955 
956 /* struct Dwarf_Str_Offsets_Table_s */
957 #define DW_DLA_STR_OFFSETS 0x40
958 /* struct Dwarf_Debug_Addr_Table_s */
959 #define DW_DLA_DEBUG_ADDR 0x41
971 /* libdwarf error numbers */
972 #define DW_DLE_NE 0 /* no error */
973 #define DW_DLE_VMM 1 /* dwarf format/library version mismatch */
974 #define DW_DLE_MAP 2 /* memory map failure */
975 #define DW_DLE_LEE 3 /* libelf error */
976 #define DW_DLE_NDS 4 /* no debug section */
977 #define DW_DLE_NLS 5 /* no line section */
978 #define DW_DLE_ID 6 /* invalid descriptor for query */
979 #define DW_DLE_IOF 7 /* I/O failure */
980 #define DW_DLE_MAF 8 /* memory allocation failure */
981 #define DW_DLE_IA 9 /* invalid argument */
982 #define DW_DLE_MDE 10 /* mangled debugging entry */
983 #define DW_DLE_MLE 11 /* mangled line number entry */
984 #define DW_DLE_FNO 12 /* file not open */
985 #define DW_DLE_FNR 13 /* file not a regular file */
986 #define DW_DLE_FWA 14 /* file open with wrong access */
987 #define DW_DLE_NOB 15 /* not an object file */
988 #define DW_DLE_MOF 16 /* mangled object file header */
989 #define DW_DLE_EOLL 17 /* end of location list entries */
990 #define DW_DLE_NOLL 18 /* no location list section */
991 #define DW_DLE_BADOFF 19 /* Invalid offset */
992 #define DW_DLE_EOS 20 /* end of section */
993 #define DW_DLE_ATRUNC 21 /* abbreviations section appears truncated*/
994 #define DW_DLE_BADBITC 22 /* Address size passed to dwarf bad,*/
995  /* It is not an allowed size (64 or 32) */
996  /* Error codes defined by the current Libdwarf Implementation. */
997 #define DW_DLE_DBG_ALLOC 23
998 #define DW_DLE_FSTAT_ERROR 24
999 #define DW_DLE_FSTAT_MODE_ERROR 25
1000 #define DW_DLE_INIT_ACCESS_WRONG 26
1001 #define DW_DLE_ELF_BEGIN_ERROR 27
1002 #define DW_DLE_ELF_GETEHDR_ERROR 28
1003 #define DW_DLE_ELF_GETSHDR_ERROR 29
1004 #define DW_DLE_ELF_STRPTR_ERROR 30
1005 #define DW_DLE_DEBUG_INFO_DUPLICATE 31
1006 #define DW_DLE_DEBUG_INFO_NULL 32
1007 #define DW_DLE_DEBUG_ABBREV_DUPLICATE 33
1008 #define DW_DLE_DEBUG_ABBREV_NULL 34
1009 #define DW_DLE_DEBUG_ARANGES_DUPLICATE 35
1010 #define DW_DLE_DEBUG_ARANGES_NULL 36
1011 #define DW_DLE_DEBUG_LINE_DUPLICATE 37
1012 #define DW_DLE_DEBUG_LINE_NULL 38
1013 #define DW_DLE_DEBUG_LOC_DUPLICATE 39
1014 #define DW_DLE_DEBUG_LOC_NULL 40
1015 #define DW_DLE_DEBUG_MACINFO_DUPLICATE 41
1016 #define DW_DLE_DEBUG_MACINFO_NULL 42
1017 #define DW_DLE_DEBUG_PUBNAMES_DUPLICATE 43
1018 #define DW_DLE_DEBUG_PUBNAMES_NULL 44
1019 #define DW_DLE_DEBUG_STR_DUPLICATE 45
1020 #define DW_DLE_DEBUG_STR_NULL 46
1021 #define DW_DLE_CU_LENGTH_ERROR 47
1022 #define DW_DLE_VERSION_STAMP_ERROR 48
1023 #define DW_DLE_ABBREV_OFFSET_ERROR 49
1024 #define DW_DLE_ADDRESS_SIZE_ERROR 50
1025 #define DW_DLE_DEBUG_INFO_PTR_NULL 51
1026 #define DW_DLE_DIE_NULL 52
1027 #define DW_DLE_STRING_OFFSET_BAD 53
1028 #define DW_DLE_DEBUG_LINE_LENGTH_BAD 54
1029 #define DW_DLE_LINE_PROLOG_LENGTH_BAD 55
1030 #define DW_DLE_LINE_NUM_OPERANDS_BAD 56
1031 #define DW_DLE_LINE_SET_ADDR_ERROR 57
1032 #define DW_DLE_LINE_EXT_OPCODE_BAD 58
1033 #define DW_DLE_DWARF_LINE_NULL 59
1034 #define DW_DLE_INCL_DIR_NUM_BAD 60
1035 #define DW_DLE_LINE_FILE_NUM_BAD 61
1036 #define DW_DLE_ALLOC_FAIL 62
1037 #define DW_DLE_NO_CALLBACK_FUNC 63
1038 #define DW_DLE_SECT_ALLOC 64
1039 #define DW_DLE_FILE_ENTRY_ALLOC 65
1040 #define DW_DLE_LINE_ALLOC 66
1041 #define DW_DLE_FPGM_ALLOC 67
1042 #define DW_DLE_INCDIR_ALLOC 68
1043 #define DW_DLE_STRING_ALLOC 69
1044 #define DW_DLE_CHUNK_ALLOC 70
1045 #define DW_DLE_BYTEOFF_ERR 71
1046 #define DW_DLE_CIE_ALLOC 72
1047 #define DW_DLE_FDE_ALLOC 73
1048 #define DW_DLE_REGNO_OVFL 74
1049 #define DW_DLE_CIE_OFFS_ALLOC 75
1050 #define DW_DLE_WRONG_ADDRESS 76
1051 #define DW_DLE_EXTRA_NEIGHBORS 77
1052 #define DW_DLE_WRONG_TAG 78
1053 #define DW_DLE_DIE_ALLOC 79
1054 #define DW_DLE_PARENT_EXISTS 80
1055 #define DW_DLE_DBG_NULL 81
1056 #define DW_DLE_DEBUGLINE_ERROR 82
1057 #define DW_DLE_DEBUGFRAME_ERROR 83
1058 #define DW_DLE_DEBUGINFO_ERROR 84
1059 #define DW_DLE_ATTR_ALLOC 85
1060 #define DW_DLE_ABBREV_ALLOC 86
1061 #define DW_DLE_OFFSET_UFLW 87
1062 #define DW_DLE_ELF_SECT_ERR 88
1063 #define DW_DLE_DEBUG_FRAME_LENGTH_BAD 89
1064 #define DW_DLE_FRAME_VERSION_BAD 90
1065 #define DW_DLE_CIE_RET_ADDR_REG_ERROR 91
1066 #define DW_DLE_FDE_NULL 92
1067 #define DW_DLE_FDE_DBG_NULL 93
1068 #define DW_DLE_CIE_NULL 94
1069 #define DW_DLE_CIE_DBG_NULL 95
1070 #define DW_DLE_FRAME_TABLE_COL_BAD 96
1071 #define DW_DLE_PC_NOT_IN_FDE_RANGE 97
1072 #define DW_DLE_CIE_INSTR_EXEC_ERROR 98
1073 #define DW_DLE_FRAME_INSTR_EXEC_ERROR 99
1074 #define DW_DLE_FDE_PTR_NULL 100
1075 #define DW_DLE_RET_OP_LIST_NULL 101
1076 #define DW_DLE_LINE_CONTEXT_NULL 102
1077 #define DW_DLE_DBG_NO_CU_CONTEXT 103
1078 #define DW_DLE_DIE_NO_CU_CONTEXT 104
1079 #define DW_DLE_FIRST_DIE_NOT_CU 105
1080 #define DW_DLE_NEXT_DIE_PTR_NULL 106
1081 #define DW_DLE_DEBUG_FRAME_DUPLICATE 107
1082 #define DW_DLE_DEBUG_FRAME_NULL 108
1083 #define DW_DLE_ABBREV_DECODE_ERROR 109
1084 #define DW_DLE_DWARF_ABBREV_NULL 110
1085 #define DW_DLE_ATTR_NULL 111
1086 #define DW_DLE_DIE_BAD 112
1087 #define DW_DLE_DIE_ABBREV_BAD 113
1088 #define DW_DLE_ATTR_FORM_BAD 114
1089 #define DW_DLE_ATTR_NO_CU_CONTEXT 115
1090 #define DW_DLE_ATTR_FORM_SIZE_BAD 116
1091 #define DW_DLE_ATTR_DBG_NULL 117
1092 #define DW_DLE_BAD_REF_FORM 118
1093 #define DW_DLE_ATTR_FORM_OFFSET_BAD 119
1094 #define DW_DLE_LINE_OFFSET_BAD 120
1095 #define DW_DLE_DEBUG_STR_OFFSET_BAD 121
1096 #define DW_DLE_STRING_PTR_NULL 122
1097 #define DW_DLE_PUBNAMES_VERSION_ERROR 123
1098 #define DW_DLE_PUBNAMES_LENGTH_BAD 124
1099 #define DW_DLE_GLOBAL_NULL 125
1100 #define DW_DLE_GLOBAL_CONTEXT_NULL 126
1101 #define DW_DLE_DIR_INDEX_BAD 127
1102 #define DW_DLE_LOC_EXPR_BAD 128
1103 #define DW_DLE_DIE_LOC_EXPR_BAD 129
1104 #define DW_DLE_ADDR_ALLOC 130
1105 #define DW_DLE_OFFSET_BAD 131
1106 #define DW_DLE_MAKE_CU_CONTEXT_FAIL 132
1107 #define DW_DLE_REL_ALLOC 133
1108 #define DW_DLE_ARANGE_OFFSET_BAD 134
1109 #define DW_DLE_SEGMENT_SIZE_BAD 135
1110 #define DW_DLE_ARANGE_LENGTH_BAD 136
1111 #define DW_DLE_ARANGE_DECODE_ERROR 137
1112 #define DW_DLE_ARANGES_NULL 138
1113 #define DW_DLE_ARANGE_NULL 139
1114 #define DW_DLE_NO_FILE_NAME 140
1115 #define DW_DLE_NO_COMP_DIR 141
1116 #define DW_DLE_CU_ADDRESS_SIZE_BAD 142
1117 #define DW_DLE_INPUT_ATTR_BAD 143
1118 #define DW_DLE_EXPR_NULL 144
1119 #define DW_DLE_BAD_EXPR_OPCODE 145
1120 #define DW_DLE_EXPR_LENGTH_BAD 146
1121 #define DW_DLE_MULTIPLE_RELOC_IN_EXPR 147
1122 #define DW_DLE_ELF_GETIDENT_ERROR 148
1123 #define DW_DLE_NO_AT_MIPS_FDE 149
1124 #define DW_DLE_NO_CIE_FOR_FDE 150
1125 #define DW_DLE_DIE_ABBREV_LIST_NULL 151
1126 #define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE 152
1127 #define DW_DLE_DEBUG_FUNCNAMES_NULL 153
1128 #define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR 154
1129 #define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD 155
1130 #define DW_DLE_FUNC_NULL 156
1131 #define DW_DLE_FUNC_CONTEXT_NULL 157
1132 #define DW_DLE_DEBUG_TYPENAMES_DUPLICATE 158
1133 #define DW_DLE_DEBUG_TYPENAMES_NULL 159
1134 #define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR 160
1135 #define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD 161
1136 #define DW_DLE_TYPE_NULL 162
1137 #define DW_DLE_TYPE_CONTEXT_NULL 163
1138 #define DW_DLE_DEBUG_VARNAMES_DUPLICATE 164
1139 #define DW_DLE_DEBUG_VARNAMES_NULL 165
1140 #define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR 166
1141 #define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD 167
1142 #define DW_DLE_VAR_NULL 168
1143 #define DW_DLE_VAR_CONTEXT_NULL 169
1144 #define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE 170
1145 #define DW_DLE_DEBUG_WEAKNAMES_NULL 171
1146 #define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR 172
1147 #define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD 173
1148 #define DW_DLE_WEAK_NULL 174
1149 #define DW_DLE_WEAK_CONTEXT_NULL 175
1150 #define DW_DLE_LOCDESC_COUNT_WRONG 176
1151 #define DW_DLE_MACINFO_STRING_NULL 177
1152 #define DW_DLE_MACINFO_STRING_EMPTY 178
1153 #define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE 179
1154 #define DW_DLE_MACINFO_MALLOC_FAIL 180
1155 #define DW_DLE_DEBUGMACINFO_ERROR 181
1156 #define DW_DLE_DEBUG_MACRO_LENGTH_BAD 182
1157 #define DW_DLE_DEBUG_MACRO_MAX_BAD 183
1158 #define DW_DLE_DEBUG_MACRO_INTERNAL_ERR 184
1159 #define DW_DLE_DEBUG_MACRO_MALLOC_SPACE 185
1160 #define DW_DLE_DEBUG_MACRO_INCONSISTENT 186
1161 #define DW_DLE_DF_NO_CIE_AUGMENTATION 187
1162 #define DW_DLE_DF_REG_NUM_TOO_HIGH 188
1163 #define DW_DLE_DF_MAKE_INSTR_NO_INIT 189
1164 #define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC 190
1165 #define DW_DLE_DF_POP_EMPTY_STACK 191
1166 #define DW_DLE_DF_ALLOC_FAIL 192
1167 #define DW_DLE_DF_FRAME_DECODING_ERROR 193
1168 #define DW_DLE_DEBUG_LOC_SECTION_SHORT 194
1169 #define DW_DLE_FRAME_AUGMENTATION_UNKNOWN 195
1170 #define DW_DLE_PUBTYPE_CONTEXT 196 /* Unused. */
1171 #define DW_DLE_DEBUG_PUBTYPES_LENGTH_BAD 197
1172 #define DW_DLE_DEBUG_PUBTYPES_VERSION_ERROR 198
1173 #define DW_DLE_DEBUG_PUBTYPES_DUPLICATE 199
1174 #define DW_DLE_FRAME_CIE_DECODE_ERROR 200
1175 #define DW_DLE_FRAME_REGISTER_UNREPRESENTABLE 201
1176 #define DW_DLE_FRAME_REGISTER_COUNT_MISMATCH 202
1177 #define DW_DLE_LINK_LOOP 203
1178 #define DW_DLE_STRP_OFFSET_BAD 204
1179 #define DW_DLE_DEBUG_RANGES_DUPLICATE 205
1180 #define DW_DLE_DEBUG_RANGES_OFFSET_BAD 206
1181 #define DW_DLE_DEBUG_RANGES_MISSING_END 207
1182 #define DW_DLE_DEBUG_RANGES_OUT_OF_MEM 208
1183 #define DW_DLE_DEBUG_SYMTAB_ERR 209
1184 #define DW_DLE_DEBUG_STRTAB_ERR 210
1185 #define DW_DLE_RELOC_MISMATCH_INDEX 211
1186 #define DW_DLE_RELOC_MISMATCH_RELOC_INDEX 212
1187 #define DW_DLE_RELOC_MISMATCH_STRTAB_INDEX 213
1188 #define DW_DLE_RELOC_SECTION_MISMATCH 214
1189 #define DW_DLE_RELOC_SECTION_MISSING_INDEX 215
1190 #define DW_DLE_RELOC_SECTION_LENGTH_ODD 216
1191 #define DW_DLE_RELOC_SECTION_PTR_NULL 217
1192 #define DW_DLE_RELOC_SECTION_MALLOC_FAIL 218
1193 #define DW_DLE_NO_ELF64_SUPPORT 219
1194 #define DW_DLE_MISSING_ELF64_SUPPORT 220
1195 #define DW_DLE_ORPHAN_FDE 221
1196 #define DW_DLE_DUPLICATE_INST_BLOCK 222
1197 #define DW_DLE_BAD_REF_SIG8_FORM 223
1198 #define DW_DLE_ATTR_EXPRLOC_FORM_BAD 224
1199 #define DW_DLE_FORM_SEC_OFFSET_LENGTH_BAD 225
1200 #define DW_DLE_NOT_REF_FORM 226
1201 #define DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE 227
1202 #define DW_DLE_REF_SIG8_NOT_HANDLED 228
1203 #define DW_DLE_DEBUG_FRAME_POSSIBLE_ADDRESS_BOTCH 229
1204 #define DW_DLE_LOC_BAD_TERMINATION 230
1205 #define DW_DLE_SYMTAB_SECTION_LENGTH_ODD 231
1206 #define DW_DLE_RELOC_SECTION_SYMBOL_INDEX_BAD 232
1207 #define DW_DLE_RELOC_SECTION_RELOC_TARGET_SIZE_UNKNOWN 233
1208 #define DW_DLE_SYMTAB_SECTION_ENTRYSIZE_ZERO 234
1209 #define DW_DLE_LINE_NUMBER_HEADER_ERROR 235
1210 #define DW_DLE_DEBUG_TYPES_NULL 236
1211 #define DW_DLE_DEBUG_TYPES_DUPLICATE 237
1212 #define DW_DLE_DEBUG_TYPES_ONLY_DWARF4 238
1213 #define DW_DLE_DEBUG_TYPEOFFSET_BAD 239
1214 #define DW_DLE_GNU_OPCODE_ERROR 240
1215 #define DW_DLE_DEBUGPUBTYPES_ERROR 241
1216 #define DW_DLE_AT_FIXUP_NULL 242
1217 #define DW_DLE_AT_FIXUP_DUP 243
1218 #define DW_DLE_BAD_ABINAME 244
1219 #define DW_DLE_TOO_MANY_DEBUG 245
1220 #define DW_DLE_DEBUG_STR_OFFSETS_DUPLICATE 246
1221 #define DW_DLE_SECTION_DUPLICATION 247
1222 #define DW_DLE_SECTION_ERROR 248
1223 #define DW_DLE_DEBUG_ADDR_DUPLICATE 249
1224 #define DW_DLE_DEBUG_CU_UNAVAILABLE_FOR_FORM 250
1225 #define DW_DLE_DEBUG_FORM_HANDLING_INCOMPLETE 251
1226 #define DW_DLE_NEXT_DIE_PAST_END 252
1227 #define DW_DLE_NEXT_DIE_WRONG_FORM 253
1228 #define DW_DLE_NEXT_DIE_NO_ABBREV_LIST 254
1229 #define DW_DLE_NESTED_FORM_INDIRECT_ERROR 255
1230 #define DW_DLE_CU_DIE_NO_ABBREV_LIST 256
1231 #define DW_DLE_MISSING_NEEDED_DEBUG_ADDR_SECTION 257
1232 #define DW_DLE_ATTR_FORM_NOT_ADDR_INDEX 258
1233 #define DW_DLE_ATTR_FORM_NOT_STR_INDEX 259
1234 #define DW_DLE_DUPLICATE_GDB_INDEX 260
1235 #define DW_DLE_ERRONEOUS_GDB_INDEX_SECTION 261
1236 #define DW_DLE_GDB_INDEX_COUNT_ERROR 262
1237 #define DW_DLE_GDB_INDEX_COUNT_ADDR_ERROR 263
1238 #define DW_DLE_GDB_INDEX_INDEX_ERROR 264
1239 #define DW_DLE_GDB_INDEX_CUVEC_ERROR 265
1240 #define DW_DLE_DUPLICATE_CU_INDEX 266
1241 #define DW_DLE_DUPLICATE_TU_INDEX 267
1242 #define DW_DLE_XU_TYPE_ARG_ERROR 268
1243 #define DW_DLE_XU_IMPOSSIBLE_ERROR 269
1244 #define DW_DLE_XU_NAME_COL_ERROR 270
1245 #define DW_DLE_XU_HASH_ROW_ERROR 271
1246 #define DW_DLE_XU_HASH_INDEX_ERROR 272
1247 /* ..._FAILSAFE_ERRVAL is an aid when out of memory. */
1248 #define DW_DLE_FAILSAFE_ERRVAL 273
1249 #define DW_DLE_ARANGE_ERROR 274
1250 #define DW_DLE_PUBNAMES_ERROR 275
1251 #define DW_DLE_FUNCNAMES_ERROR 276
1252 #define DW_DLE_TYPENAMES_ERROR 277
1253 #define DW_DLE_VARNAMES_ERROR 278
1254 #define DW_DLE_WEAKNAMES_ERROR 279
1255 #define DW_DLE_RELOCS_ERROR 280
1256 #define DW_DLE_ATTR_OUTSIDE_SECTION 281
1257 #define DW_DLE_FISSION_INDEX_WRONG 282
1258 #define DW_DLE_FISSION_VERSION_ERROR 283
1259 #define DW_DLE_NEXT_DIE_LOW_ERROR 284
1260 #define DW_DLE_CU_UT_TYPE_ERROR 285
1261 #define DW_DLE_NO_SUCH_SIGNATURE_FOUND 286
1262 #define DW_DLE_SIGNATURE_SECTION_NUMBER_WRONG 287
1263 #define DW_DLE_ATTR_FORM_NOT_DATA8 288
1264 #define DW_DLE_SIG_TYPE_WRONG_STRING 289
1265 #define DW_DLE_MISSING_REQUIRED_TU_OFFSET_HASH 290
1266 #define DW_DLE_MISSING_REQUIRED_CU_OFFSET_HASH 291
1267 #define DW_DLE_DWP_MISSING_DWO_ID 292
1268 #define DW_DLE_DWP_SIBLING_ERROR 293
1269 #define DW_DLE_DEBUG_FISSION_INCOMPLETE 294
1270 #define DW_DLE_FISSION_SECNUM_ERR 295
1271 #define DW_DLE_DEBUG_MACRO_DUPLICATE 296
1272 #define DW_DLE_DEBUG_NAMES_DUPLICATE 297
1273 #define DW_DLE_DEBUG_LINE_STR_DUPLICATE 298
1274 #define DW_DLE_DEBUG_SUP_DUPLICATE 299
1275 #define DW_DLE_NO_SIGNATURE_TO_LOOKUP 300
1276 #define DW_DLE_NO_TIED_ADDR_AVAILABLE 301
1277 #define DW_DLE_NO_TIED_SIG_AVAILABLE 302
1278 #define DW_DLE_STRING_NOT_TERMINATED 303
1279 #define DW_DLE_BAD_LINE_TABLE_OPERATION 304
1280 #define DW_DLE_LINE_CONTEXT_BOTCH 305
1281 #define DW_DLE_LINE_CONTEXT_INDEX_WRONG 306
1282 #define DW_DLE_NO_TIED_STRING_AVAILABLE 307
1283 #define DW_DLE_NO_TIED_FILE_AVAILABLE 308
1284 #define DW_DLE_CU_TYPE_MISSING 309
1285 #define DW_DLE_LLE_CODE_UNKNOWN 310
1286 #define DW_DLE_LOCLIST_INTERFACE_ERROR 311
1287 #define DW_DLE_LOCLIST_INDEX_ERROR 312
1288 #define DW_DLE_INTERFACE_NOT_SUPPORTED 313
1289 #define DW_DLE_ZDEBUG_REQUIRES_ZLIB 314
1290 #define DW_DLE_ZDEBUG_INPUT_FORMAT_ODD 315
1291 #define DW_DLE_ZLIB_BUF_ERROR 316
1292 #define DW_DLE_ZLIB_DATA_ERROR 317
1293 #define DW_DLE_MACRO_OFFSET_BAD 318
1294 #define DW_DLE_MACRO_OPCODE_BAD 319
1295 #define DW_DLE_MACRO_OPCODE_FORM_BAD 320
1296 #define DW_DLE_UNKNOWN_FORM 321
1297 #define DW_DLE_BAD_MACRO_HEADER_POINTER 322
1298 #define DW_DLE_BAD_MACRO_INDEX 323
1299 #define DW_DLE_MACRO_OP_UNHANDLED 324
1300 #define DW_DLE_MACRO_PAST_END 325
1301 #define DW_DLE_LINE_STRP_OFFSET_BAD 326
1302 #define DW_DLE_STRING_FORM_IMPROPER 327
1303 #define DW_DLE_ELF_FLAGS_NOT_AVAILABLE 328
1304 #define DW_DLE_LEB_IMPROPER 329
1305 #define DW_DLE_DEBUG_LINE_RANGE_ZERO 330
1306 #define DW_DLE_READ_LITTLEENDIAN_ERROR 331
1307 #define DW_DLE_READ_BIGENDIAN_ERROR 332
1308 #define DW_DLE_RELOC_INVALID 333
1309 #define DW_DLE_INFO_HEADER_ERROR 334
1310 #define DW_DLE_ARANGES_HEADER_ERROR 335
1311 #define DW_DLE_LINE_OFFSET_WRONG_FORM 336
1312 #define DW_DLE_FORM_BLOCK_LENGTH_ERROR 337
1313 #define DW_DLE_ZLIB_SECTION_SHORT 338
1314 #define DW_DLE_CIE_INSTR_PTR_ERROR 339
1315 #define DW_DLE_FDE_INSTR_PTR_ERROR 340
1316 #define DW_DLE_FISSION_ADDITION_ERROR 341
1317 #define DW_DLE_HEADER_LEN_BIGGER_THAN_SECSIZE 342
1318 #define DW_DLE_LOCEXPR_OFF_SECTION_END 343
1319 #define DW_DLE_POINTER_SECTION_UNKNOWN 344
1320 #define DW_DLE_ERRONEOUS_XU_INDEX_SECTION 345
1321 #define DW_DLE_DIRECTORY_FORMAT_COUNT_VS_DIRECTORIES_MISMATCH 346
1322 #define DW_DLE_COMPRESSED_EMPTY_SECTION 347
1323 #define DW_DLE_SIZE_WRAPAROUND 348
1324 #define DW_DLE_ILLOGICAL_TSEARCH 349
1325 #define DW_DLE_BAD_STRING_FORM 350
1326 #define DW_DLE_DEBUGSTR_ERROR 351
1327 #define DW_DLE_DEBUGSTR_UNEXPECTED_REL 352
1328 #define DW_DLE_DISCR_ARRAY_ERROR 353
1329 #define DW_DLE_LEB_OUT_ERROR 354
1330 #define DW_DLE_SIBLING_LIST_IMPROPER 355
1331 #define DW_DLE_LOCLIST_OFFSET_BAD 356
1332 #define DW_DLE_LINE_TABLE_BAD 357
1333 #define DW_DLE_DEBUG_LOClISTS_DUPLICATE 358
1334 #define DW_DLE_DEBUG_RNGLISTS_DUPLICATE 359
1335 #define DW_DLE_ABBREV_OFF_END 360
1336 #define DW_DLE_FORM_STRING_BAD_STRING 361
1337 #define DW_DLE_AUGMENTATION_STRING_OFF_END 362
1338 #define DW_DLE_STRING_OFF_END_PUBNAMES_LIKE 363
1339 #define DW_DLE_LINE_STRING_BAD 364
1340 #define DW_DLE_DEFINE_FILE_STRING_BAD 365
1341 #define DW_DLE_MACRO_STRING_BAD 366
1342 #define DW_DLE_MACINFO_STRING_BAD 367
1343 #define DW_DLE_ZLIB_UNCOMPRESS_ERROR 368
1344 #define DW_DLE_IMPROPER_DWO_ID 369
1345 #define DW_DLE_GROUPNUMBER_ERROR 370
1346 #define DW_DLE_ADDRESS_SIZE_ZERO 371
1347 #define DW_DLE_DEBUG_NAMES_HEADER_ERROR 372
1348 #define DW_DLE_DEBUG_NAMES_AUG_STRING_ERROR 373
1349 #define DW_DLE_DEBUG_NAMES_PAD_NON_ZERO 374
1350 #define DW_DLE_DEBUG_NAMES_OFF_END 375
1351 #define DW_DLE_DEBUG_NAMES_ABBREV_OVERFLOW 376
1352 #define DW_DLE_DEBUG_NAMES_ABBREV_CORRUPTION 377
1353 #define DW_DLE_DEBUG_NAMES_NULL_POINTER 378
1354 #define DW_DLE_DEBUG_NAMES_BAD_INDEX_ARG 379
1355 #define DW_DLE_DEBUG_NAMES_ENTRYPOOL_OFFSET 380
1356 #define DW_DLE_DEBUG_NAMES_UNHANDLED_FORM 381
1357 #define DW_DLE_LNCT_CODE_UNKNOWN 382
1358 #define DW_DLE_LNCT_FORM_CODE_NOT_HANDLED 383
1359 #define DW_DLE_LINE_HEADER_LENGTH_BOTCH 384
1360 #define DW_DLE_STRING_HASHTAB_IDENTITY_ERROR 385
1361 #define DW_DLE_UNIT_TYPE_NOT_HANDLED 386
1362 #define DW_DLE_GROUP_MAP_ALLOC 387
1363 #define DW_DLE_GROUP_MAP_DUPLICATE 388
1364 #define DW_DLE_GROUP_COUNT_ERROR 389
1365 #define DW_DLE_GROUP_INTERNAL_ERROR 390
1366 #define DW_DLE_GROUP_LOAD_ERROR 391
1367 #define DW_DLE_GROUP_LOAD_READ_ERROR 392
1368 #define DW_DLE_AUG_DATA_LENGTH_BAD 393
1369 #define DW_DLE_ABBREV_MISSING 394
1370 #define DW_DLE_NO_TAG_FOR_DIE 395
1371 #define DW_DLE_LOWPC_WRONG_CLASS 396
1372 #define DW_DLE_HIGHPC_WRONG_FORM 397
1373 #define DW_DLE_STR_OFFSETS_BASE_WRONG_FORM 398
1374 #define DW_DLE_DATA16_OUTSIDE_SECTION 399
1375 #define DW_DLE_LNCT_MD5_WRONG_FORM 400
1376 #define DW_DLE_LINE_HEADER_CORRUPT 401
1377 #define DW_DLE_STR_OFFSETS_NULLARGUMENT 402
1378 #define DW_DLE_STR_OFFSETS_NULL_DBG 403
1379 #define DW_DLE_STR_OFFSETS_NO_MAGIC 404
1380 #define DW_DLE_STR_OFFSETS_ARRAY_SIZE 405
1381 #define DW_DLE_STR_OFFSETS_VERSION_WRONG 406
1382 #define DW_DLE_STR_OFFSETS_ARRAY_INDEX_WRONG 407
1383 #define DW_DLE_STR_OFFSETS_EXTRA_BYTES 408
1384 #define DW_DLE_DUP_ATTR_ON_DIE 409
1385 #define DW_DLE_SECTION_NAME_BIG 410
1386 #define DW_DLE_FILE_UNAVAILABLE 411
1387 #define DW_DLE_FILE_WRONG_TYPE 412
1388 #define DW_DLE_SIBLING_OFFSET_WRONG 413
1389 #define DW_DLE_OPEN_FAIL 414
1390 #define DW_DLE_OFFSET_SIZE 415
1391 #define DW_DLE_MACH_O_SEGOFFSET_BAD 416
1392 #define DW_DLE_FILE_OFFSET_BAD 417
1393 #define DW_DLE_SEEK_ERROR 418
1394 #define DW_DLE_READ_ERROR 419
1395 #define DW_DLE_ELF_CLASS_BAD 420
1396 #define DW_DLE_ELF_ENDIAN_BAD 421
1397 #define DW_DLE_ELF_VERSION_BAD 422
1398 #define DW_DLE_FILE_TOO_SMALL 423
1399 #define DW_DLE_PATH_SIZE_TOO_SMALL 424
1400 #define DW_DLE_BAD_TYPE_SIZE 425
1401 #define DW_DLE_PE_SIZE_SMALL 426
1402 #define DW_DLE_PE_OFFSET_BAD 427
1403 #define DW_DLE_PE_STRING_TOO_LONG 428
1404 #define DW_DLE_IMAGE_FILE_UNKNOWN_TYPE 429
1405 #define DW_DLE_LINE_TABLE_LINENO_ERROR 430
1406 #define DW_DLE_PRODUCER_CODE_NOT_AVAILABLE 431
1407 #define DW_DLE_NO_ELF_SUPPORT 432
1408 #define DW_DLE_NO_STREAM_RELOC_SUPPORT 433
1409 #define DW_DLE_RETURN_EMPTY_PUBNAMES_ERROR 434
1410 #define DW_DLE_SECTION_SIZE_ERROR 435
1411 #define DW_DLE_INTERNAL_NULL_POINTER 436
1412 #define DW_DLE_SECTION_STRING_OFFSET_BAD 437
1413 #define DW_DLE_SECTION_INDEX_BAD 438
1414 #define DW_DLE_INTEGER_TOO_SMALL 439
1415 #define DW_DLE_ELF_SECTION_LINK_ERROR 440
1416 #define DW_DLE_ELF_SECTION_GROUP_ERROR 441
1417 #define DW_DLE_ELF_SECTION_COUNT_MISMATCH 442
1418 #define DW_DLE_ELF_STRING_SECTION_MISSING 443
1419 #define DW_DLE_SEEK_OFF_END 444
1420 #define DW_DLE_READ_OFF_END 445
1421 #define DW_DLE_ELF_SECTION_ERROR 446
1422 #define DW_DLE_ELF_STRING_SECTION_ERROR 447
1423 #define DW_DLE_MIXING_SPLIT_DWARF_VERSIONS 448
1424 #define DW_DLE_TAG_CORRUPT 449
1425 #define DW_DLE_FORM_CORRUPT 450
1426 #define DW_DLE_ATTR_CORRUPT 451
1427 #define DW_DLE_ABBREV_ATTR_DUPLICATION 452
1428 #define DW_DLE_DWP_SIGNATURE_MISMATCH 453
1429 #define DW_DLE_CU_UT_TYPE_VALUE 454
1430 #define DW_DLE_DUPLICATE_GNU_DEBUGLINK 455
1431 #define DW_DLE_CORRUPT_GNU_DEBUGLINK 456
1432 #define DW_DLE_CORRUPT_NOTE_GNU_DEBUGID 457
1433 #define DW_DLE_CORRUPT_GNU_DEBUGID_SIZE 458
1434 #define DW_DLE_CORRUPT_GNU_DEBUGID_STRING 459
1435 #define DW_DLE_HEX_STRING_ERROR 460
1436 #define DW_DLE_DECIMAL_STRING_ERROR 461
1437 #define DW_DLE_PRO_INIT_EXTRAS_UNKNOWN 462
1438 #define DW_DLE_PRO_INIT_EXTRAS_ERR 463
1439 #define DW_DLE_NULL_ARGS_DWARF_ADD_PATH 464
1440 #define DW_DLE_DWARF_INIT_DBG_NULL 465
1441 #define DW_DLE_ELF_RELOC_SECTION_ERROR 466
1442 #define DW_DLE_USER_DECLARED_ERROR 467
1443 #define DW_DLE_RNGLISTS_ERROR 468
1444 #define DW_DLE_LOCLISTS_ERROR 469
1445 #define DW_DLE_SECTION_SIZE_OR_OFFSET_LARGE 470
1446 #define DW_DLE_GDBINDEX_STRING_ERROR 471
1447 #define DW_DLE_GNU_PUBNAMES_ERROR 472
1448 #define DW_DLE_GNU_PUBTYPES_ERROR 473
1449 #define DW_DLE_DUPLICATE_GNU_DEBUG_PUBNAMES 474
1450 #define DW_DLE_DUPLICATE_GNU_DEBUG_PUBTYPES 475
1451 #define DW_DLE_DEBUG_SUP_STRING_ERROR 476
1452 #define DW_DLE_DEBUG_SUP_ERROR 477
1453 #define DW_DLE_LOCATION_ERROR 478
1454 #define DW_DLE_DEBUGLINK_PATH_SHORT 479
1455 #define DW_DLE_SIGNATURE_MISMATCH 480
1456 #define DW_DLE_MACRO_VERSION_ERROR 481
1457 #define DW_DLE_NEGATIVE_SIZE 482
1458 #define DW_DLE_UDATA_VALUE_NEGATIVE 483
1459 #define DW_DLE_DEBUG_NAMES_ERROR 484
1460 #define DW_DLE_CFA_INSTRUCTION_ERROR 485
1461 #define DW_DLE_MACHO_CORRUPT_HEADER 486
1462 #define DW_DLE_MACHO_CORRUPT_COMMAND 487
1463 #define DW_DLE_MACHO_CORRUPT_SECTIONDETAILS 488
1464 #define DW_DLE_RELOCATION_SECTION_SIZE_ERROR 489
1465 #define DW_DLE_SYMBOL_SECTION_SIZE_ERROR 490
1466 #define DW_DLE_PE_SECTION_SIZE_ERROR 491
1467 #define DW_DLE_DEBUG_ADDR_ERROR 492
1468 #define DW_DLE_NO_SECT_STRINGS 493
1469 #define DW_DLE_TOO_FEW_SECTIONS 494
1470 #define DW_DLE_BUILD_ID_DESCRIPTION_SIZE 495
1471 #define DW_DLE_BAD_SECTION_FLAGS 496
1472 #define DW_DLE_IMPROPER_SECTION_ZERO 497
1473 #define DW_DLE_INVALID_NULL_ARGUMENT 498
1474 #define DW_DLE_LINE_INDEX_WRONG 499
1475 #define DW_DLE_LINE_COUNT_WRONG 500
1476 #define DW_DLE_ARITHMETIC_OVERFLOW 501
1477 #define DW_DLE_UNIVERSAL_BINARY_ERROR 502
1478 #define DW_DLE_UNIV_BIN_OFFSET_SIZE_ERROR 503
1479 #define DW_DLE_PE_SECTION_SIZE_HEURISTIC_FAIL 504
1480 
1482 #define DW_DLE_LAST 504
1483 #define DW_DLE_LO_USER 0x10000
1548 DW_API int dwarf_init_path(const char * dw_path,
1549  char * dw_true_path_out_buffer,
1550  unsigned int dw_true_path_bufferlen,
1551  unsigned int dw_groupnumber,
1552  Dwarf_Handler dw_errhand,
1553  Dwarf_Ptr dw_errarg,
1554  Dwarf_Debug* dw_dbg,
1555  Dwarf_Error* dw_error);
1556 
1569 DW_API int dwarf_init_path_a(const char * dw_path,
1570  char * dw_true_path_out_buffer,
1571  unsigned int dw_true_path_bufferlen,
1572  unsigned int dw_groupnumber,
1573  unsigned int dw_universalnumber,
1574  Dwarf_Handler dw_errhand,
1575  Dwarf_Ptr dw_errarg,
1576  Dwarf_Debug* dw_dbg,
1577  Dwarf_Error* dw_error);
1578 
1635 DW_API int dwarf_init_path_dl(const char * dw_path,
1636  char * dw_true_path_out_buffer,
1637  unsigned int dw_true_path_bufferlen,
1638  unsigned int dw_groupnumber,
1639  Dwarf_Handler dw_errhand,
1640  Dwarf_Ptr dw_errarg,
1641  Dwarf_Debug* dw_dbg,
1642  char ** dw_dl_path_array,
1643  unsigned int dw_dl_path_array_size,
1644  unsigned char * dw_dl_path_source,
1645  Dwarf_Error* dw_error);
1646 
1663 DW_API int dwarf_init_path_dl_a(const char * dw_path,
1664  char * dw_true_path_out_buffer,
1665  unsigned int dw_true_path_bufferlen,
1666  unsigned int dw_groupnumber,
1667  unsigned int dw_universalnumber,
1668  Dwarf_Handler dw_errhand,
1669  Dwarf_Ptr dw_errarg,
1670  Dwarf_Debug* dw_dbg,
1671  char ** dw_dl_path_array,
1672  unsigned int dw_dl_path_array_size,
1673  unsigned char * dw_dl_path_source,
1674  Dwarf_Error* dw_error);
1675 
1709 DW_API int dwarf_init_b(int dw_fd,
1710  unsigned int dw_groupnumber,
1711  Dwarf_Handler dw_errhand,
1712  Dwarf_Ptr dw_errarg,
1713  Dwarf_Debug* dw_dbg,
1714  Dwarf_Error* dw_error);
1715 
1731 DW_API int dwarf_finish(Dwarf_Debug dw_dbg);
1732 
1767  Dwarf_Handler dw_errhand,
1768  Dwarf_Ptr dw_errarg,
1769  unsigned int dw_groupnumber,
1770  Dwarf_Debug* dw_dbg,
1771  Dwarf_Error* dw_error);
1772 
1788 
1819 DW_API int dwarf_set_tied_dbg(Dwarf_Debug dw_split_dbg,
1820  Dwarf_Debug dw_tied_dbg,
1821  Dwarf_Error* dw_error);
1822 
1832  Dwarf_Debug * dw_tieddbg_out,
1833  Dwarf_Error * dw_error);
1915  Dwarf_Bool dw_is_info,
1916  Dwarf_Die *dw_cu_die,
1917  Dwarf_Unsigned *dw_cu_header_length,
1918  Dwarf_Half *dw_version_stamp,
1919  Dwarf_Off *dw_abbrev_offset,
1920  Dwarf_Half *dw_address_size,
1921  Dwarf_Half *dw_length_size,
1922  Dwarf_Half *dw_extension_size,
1923  Dwarf_Sig8 *dw_type_signature,
1924  Dwarf_Unsigned *dw_typeoffset,
1925  Dwarf_Unsigned *dw_next_cu_header_offset,
1926  Dwarf_Half *dw_header_cu_type,
1927  Dwarf_Error *dw_error);
1928 
1960  Dwarf_Bool dw_is_info,
1961  Dwarf_Unsigned *dw_cu_header_length,
1962  Dwarf_Half *dw_version_stamp,
1963  Dwarf_Off *dw_abbrev_offset,
1964  Dwarf_Half *dw_address_size,
1965  Dwarf_Half *dw_length_size,
1966  Dwarf_Half *dw_extension_size,
1967  Dwarf_Sig8 *dw_type_signature,
1968  Dwarf_Unsigned *dw_typeoffset,
1969  Dwarf_Unsigned *dw_next_cu_header_offset,
1970  Dwarf_Half *dw_header_cu_type,
1971  Dwarf_Error *dw_error);
1972 
1988 DW_API int dwarf_siblingof_c(Dwarf_Die dw_die,
1989  Dwarf_Die *dw_return_siblingdie,
1990  Dwarf_Error *dw_error);
1991 
2026 DW_API int dwarf_siblingof_b(Dwarf_Debug dw_dbg,
2027  Dwarf_Die dw_die,
2028  Dwarf_Bool dw_is_info,
2029  Dwarf_Die *dw_return_siblingdie,
2030  Dwarf_Error *dw_error);
2031 
2073  Dwarf_Half *dw_version,
2074  Dwarf_Bool *dw_is_info,
2075  Dwarf_Bool *dw_is_dwo,
2076  Dwarf_Half *dw_offset_size,
2077  Dwarf_Half *dw_address_size,
2078  Dwarf_Half *dw_extension_size,
2079  Dwarf_Sig8 **dw_signature,
2080  Dwarf_Off *dw_offset_of_length,
2081  Dwarf_Unsigned *dw_total_byte_length,
2082  Dwarf_Error *dw_error);
2083 
2103 DW_API int dwarf_child(Dwarf_Die dw_die,
2104  Dwarf_Die* dw_return_childdie,
2105  Dwarf_Error* dw_error);
2106 
2114 DW_API void dwarf_dealloc_die( Dwarf_Die dw_die);
2115 
2134  Dwarf_Sig8 * dw_hash_sig,
2135  const char * dw_sig_type,
2136  Dwarf_Die* dw_returned_CU_die,
2137  Dwarf_Error* dw_error);
2138 
2169 DW_API int dwarf_offdie_b(Dwarf_Debug dw_dbg,
2170  Dwarf_Off dw_offset,
2171  Dwarf_Bool dw_is_info,
2172  Dwarf_Die* dw_return_die,
2173  Dwarf_Error* dw_error);
2174 
2197  Dwarf_Sig8 *dw_ref,
2198  Dwarf_Die *dw_die_out,
2199  Dwarf_Bool *dw_is_info,
2200  Dwarf_Error *dw_error);
2201 
2243  Dwarf_Off * dw_abbrev_offset,
2244  Dwarf_Unsigned * dw_abbrev_count,
2245  Dwarf_Error* dw_error);
2246 
2257 DW_API int dwarf_tag(Dwarf_Die dw_die,
2258  Dwarf_Half* dw_return_tag,
2259  Dwarf_Error* dw_error);
2260 
2273 DW_API int dwarf_dieoffset(Dwarf_Die dw_die,
2274  Dwarf_Off* dw_return_offset,
2275  Dwarf_Error* dw_error);
2276 
2296  Dwarf_Unsigned dw_index,
2297  Dwarf_Addr * dw_return_addr,
2298  Dwarf_Error * dw_error);
2299 
2309 
2334  Dwarf_Off* dw_return_offset,
2335  Dwarf_Error* dw_error);
2336 
2358  Dwarf_Debug dw_dbg,
2359  Dwarf_Off dw_in_cu_header_offset,
2360  Dwarf_Bool dw_is_info,
2361  Dwarf_Off * dw_out_cu_die_offset,
2362  Dwarf_Error *dw_error);
2363 
2381 DW_API int dwarf_die_CU_offset(Dwarf_Die dw_die,
2382  Dwarf_Off* dw_return_offset,
2383  Dwarf_Error* dw_error);
2384 
2406  Dwarf_Off* dw_return_CU_header_offset,
2407  Dwarf_Off* dw_return_CU_length_bytes,
2408  Dwarf_Error* dw_error);
2409 
2427 DW_API int dwarf_attr(Dwarf_Die dw_die,
2428  Dwarf_Half dw_attrnum,
2429  Dwarf_Attribute * dw_returned_attr,
2430  Dwarf_Error* dw_error);
2431 
2453 DW_API int dwarf_die_text(Dwarf_Die dw_die,
2454  Dwarf_Half dw_attrnum,
2455  char ** dw_ret_name,
2456  Dwarf_Error * dw_error);
2457 
2477 DW_API int dwarf_diename(Dwarf_Die dw_die,
2478  char ** dw_diename,
2479  Dwarf_Error* dw_error);
2480 
2499 
2514  Dwarf_Half * dw_ab_has_child);
2515 
2540  Dwarf_Off* dw_offset);
2541 
2542 /* convenience functions, alternative to using dwarf_attrlist */
2543 
2562 DW_API int dwarf_hasattr(Dwarf_Die dw_die,
2563  Dwarf_Half dw_attrnum,
2564  Dwarf_Bool * dw_returned_bool,
2565  Dwarf_Error* dw_error);
2566 
2602 DW_API int dwarf_offset_list(Dwarf_Debug dw_dbg,
2603  Dwarf_Off dw_offset,
2604  Dwarf_Bool dw_is_info,
2605  Dwarf_Off ** dw_offbuf,
2606  Dwarf_Unsigned * dw_offcount,
2607  Dwarf_Error * dw_error);
2608 
2622  Dwarf_Half * dw_addr_size,
2623  Dwarf_Error * dw_error);
2624 
2625 /* Get both offsets (local and global) */
2645 DW_API int dwarf_die_offsets(Dwarf_Die dw_die,
2646  Dwarf_Off* dw_global_offset,
2647  Dwarf_Off* dw_local_offset,
2648  Dwarf_Error* dw_error);
2649 
2667  Dwarf_Half * dw_version,
2668  Dwarf_Half * dw_offset_size);
2669 
2683 DW_API int dwarf_lowpc(Dwarf_Die dw_die,
2684  Dwarf_Addr * dw_returned_addr,
2685  Dwarf_Error* dw_error);
2686 
2718 DW_API int dwarf_highpc_b(Dwarf_Die dw_die,
2719  Dwarf_Addr * dw_return_addr,
2720  Dwarf_Half * dw_return_form,
2721  enum Dwarf_Form_Class * dw_return_class,
2722  Dwarf_Error * dw_error);
2723 
2750  Dwarf_Off * dw_return_offset,
2751  Dwarf_Bool * dw_is_info,
2752  Dwarf_Error * dw_error);
2753 
2765 DW_API int dwarf_bytesize(Dwarf_Die dw_die,
2766  Dwarf_Unsigned * dw_returned_size,
2767  Dwarf_Error* dw_error);
2768 
2780 DW_API int dwarf_bitsize(Dwarf_Die dw_die,
2781  Dwarf_Unsigned * dw_returned_size,
2782  Dwarf_Error* dw_error);
2783 
2804 DW_API int dwarf_bitoffset(Dwarf_Die dw_die,
2805  Dwarf_Half * dw_attrnum,
2806  Dwarf_Unsigned * dw_returned_offset,
2807  Dwarf_Error* dw_error);
2808 
2822 DW_API int dwarf_srclang(Dwarf_Die dw_die,
2823  Dwarf_Unsigned * dw_returned_lang,
2824  Dwarf_Error * dw_error);
2825 
2838 DW_API int dwarf_arrayorder(Dwarf_Die dw_die,
2839  Dwarf_Unsigned * dw_returned_order,
2840  Dwarf_Error* dw_error);
2870 DW_API int dwarf_attrlist(Dwarf_Die dw_die,
2871  Dwarf_Attribute** dw_attrbuf,
2872  Dwarf_Signed * dw_attrcount,
2873  Dwarf_Error* dw_error);
2874 
2893 DW_API int dwarf_hasform(Dwarf_Attribute dw_attr,
2894  Dwarf_Half dw_form,
2895  Dwarf_Bool * dw_returned_bool,
2896  Dwarf_Error* dw_error);
2897 
2916 DW_API int dwarf_whatform(Dwarf_Attribute dw_attr,
2917  Dwarf_Half * dw_returned_final_form,
2918  Dwarf_Error* dw_error);
2919 
2937  Dwarf_Half * dw_returned_initial_form,
2938  Dwarf_Error* dw_error);
2939 
2955 DW_API int dwarf_whatattr(Dwarf_Attribute dw_attr,
2956  Dwarf_Half * dw_returned_attrnum,
2957  Dwarf_Error* dw_error);
2958 
2983 DW_API int dwarf_formref(Dwarf_Attribute dw_attr,
2984  Dwarf_Off* dw_return_offset,
2985  Dwarf_Bool *dw_is_info,
2986  Dwarf_Error *dw_error);
2987 
3021  Dwarf_Off *dw_return_offset,
3022  Dwarf_Bool *dw_offset_is_info,
3023  Dwarf_Error *dw_error);
3024 
3036  Dwarf_Off* dw_return_offset,
3037  Dwarf_Error* dw_error);
3038 
3057 DW_API int dwarf_formsig8(Dwarf_Attribute dw_attr,
3058  Dwarf_Sig8 * dw_returned_sig_bytes,
3059  Dwarf_Error* dw_error);
3060 
3080  Dwarf_Sig8 * dw_returned_sig_bytes,
3081  Dwarf_Error* dw_error);
3082 
3102 DW_API int dwarf_formaddr(Dwarf_Attribute dw_attr,
3103  Dwarf_Addr * dw_returned_addr,
3104  Dwarf_Error* dw_error);
3105 
3126  Dwarf_Unsigned * dw_return_index,
3127  Dwarf_Error * dw_error);
3128 
3142 DW_API int dwarf_formflag(Dwarf_Attribute dw_attr,
3143  Dwarf_Bool * dw_returned_bool,
3144  Dwarf_Error* dw_error);
3145 
3162  Dwarf_Unsigned * dw_returned_val,
3163  Dwarf_Error* dw_error);
3164 
3180  Dwarf_Signed * dw_returned_val,
3181  Dwarf_Error* dw_error);
3182 
3201  Dwarf_Form_Data16 * dw_returned_val,
3202  Dwarf_Error* dw_error);
3203 
3223  Dwarf_Block ** dw_returned_block,
3224  Dwarf_Error* dw_error);
3225 
3239  char ** dw_returned_string,
3240  Dwarf_Error* dw_error);
3241 
3258  Dwarf_Unsigned * dw_return_index,
3259  Dwarf_Error * dw_error);
3260 
3280  Dwarf_Unsigned * dw_return_exprlen,
3281  Dwarf_Ptr * dw_block_ptr,
3282  Dwarf_Error * dw_error);
3283 
3304  Dwarf_Half dw_version,
3305  Dwarf_Half dw_attrnum,
3306  Dwarf_Half dw_offset_size,
3307  Dwarf_Half dw_form);
3308 
3324 DW_API int dwarf_attr_offset(Dwarf_Die dw_die,
3325  Dwarf_Attribute dw_attr,
3326  Dwarf_Off * dw_return_offset,
3327  Dwarf_Error * dw_error);
3328 
3337  Dwarf_Unsigned dw_input_length_in_bytes,
3338  void * dw_input_block,
3339  Dwarf_Unsigned * dw_value_count,
3340  Dwarf_Signed ** dw_value_array,
3341  Dwarf_Error * dw_error);
3342 
3351  void *dw_value_array);
3352 
3373  Dwarf_Off dw_offset,
3374  Dwarf_Off* dw_return_offset,
3375  Dwarf_Error* dw_error);
3376 
3383 
3410 DW_API int dwarf_discr_list(Dwarf_Debug dw_dbg,
3411  Dwarf_Small * dw_blockpointer,
3412  Dwarf_Unsigned dw_blocklen,
3413  Dwarf_Dsc_Head * dw_dsc_head_out,
3414  Dwarf_Unsigned * dw_dsc_array_length_out,
3415  Dwarf_Error * dw_error);
3416 
3443  Dwarf_Unsigned dw_entrynum,
3444  Dwarf_Half * dw_out_type,
3445  Dwarf_Unsigned * dw_out_discr_low,
3446  Dwarf_Unsigned * dw_out_discr_high,
3447  Dwarf_Error * dw_error);
3448 
3455  Dwarf_Unsigned dw_entrynum,
3456  Dwarf_Half * dw_out_type,
3457  Dwarf_Signed * dw_out_discr_low,
3458  Dwarf_Signed * dw_out_discr_high,
3459  Dwarf_Error * dw_error);
3460 
3538 DW_API int dwarf_srcfiles(Dwarf_Die dw_cu_die,
3539  char *** dw_srcfiles,
3540  Dwarf_Signed * dw_filecount,
3541  Dwarf_Error * dw_error);
3542 
3569 DW_API int dwarf_srclines_b(Dwarf_Die dw_cudie,
3570  Dwarf_Unsigned * dw_version_out,
3571  Dwarf_Small * dw_table_count,
3572  Dwarf_Line_Context * dw_linecontext,
3573  Dwarf_Error * dw_error);
3574 
3596  Dwarf_Line_Context dw_linecontext,
3597  Dwarf_Line ** dw_linebuf,
3598  Dwarf_Signed * dw_linecount,
3599  Dwarf_Error * dw_error);
3600 
3618  Dwarf_Line_Context dw_context,
3619  Dwarf_Line ** dw_linebuf ,
3620  Dwarf_Signed * dw_linecount,
3621  Dwarf_Line ** dw_linebuf_actuals,
3622  Dwarf_Signed * dw_linecount_actuals,
3623  Dwarf_Error * dw_error);
3624 
3635 
3652  Dwarf_Unsigned * dw_offset,
3653  Dwarf_Error * dw_error);
3654 
3671  const char ** dw_compilation_directory,
3672  Dwarf_Error * dw_error);
3673 
3690  Dwarf_Signed * dw_count,
3691  Dwarf_Error * dw_error);
3692 
3712  Dwarf_Signed dw_index,
3713  const char ** dw_name,
3714  Dwarf_Unsigned * dw_decl_file,
3715  Dwarf_Unsigned * dw_decl_line,
3716  Dwarf_Error * dw_error);
3717 
3743  Dwarf_Line_Context dw_context,
3744  Dwarf_Signed * dw_baseindex,
3745  Dwarf_Signed * dw_count,
3746  Dwarf_Signed * dw_endindex,
3747  Dwarf_Error * dw_error);
3748 
3801  Dwarf_Line_Context dw_context,
3802  Dwarf_Signed dw_index_in,
3803  const char ** dw_name,
3804  Dwarf_Unsigned * dw_directory_index,
3805  Dwarf_Unsigned * dw_last_mod_time,
3806  Dwarf_Unsigned * dw_file_length,
3807  Dwarf_Form_Data16 ** dw_md5ptr,
3808  Dwarf_Error * dw_error);
3809 
3825  Dwarf_Line_Context dw_line_context,
3826  Dwarf_Signed * dw_count,
3827  Dwarf_Error * dw_error);
3828 
3852  Dwarf_Line_Context dw_line_context,
3853  Dwarf_Signed dw_index,
3854  const char ** dw_name,
3855  Dwarf_Error * dw_error);
3856 
3885 DW_API int dwarf_srclines_version(Dwarf_Line_Context dw_line_context,
3886  Dwarf_Unsigned * dw_version,
3887  Dwarf_Small * dw_table_count,
3888  Dwarf_Error * dw_error);
3889 
3906  Dwarf_Bool * dw_returned_bool,
3907  Dwarf_Error * dw_error);
3908 
3925  Dwarf_Bool * dw_returned_bool,
3926  Dwarf_Error * dw_error);
3927 
3942 DW_API int dwarf_lineno(Dwarf_Line dw_line,
3943  Dwarf_Unsigned * dw_returned_linenum,
3944  Dwarf_Error * dw_error);
3945 
3961  Dwarf_Unsigned * dw_returned_filenum,
3962  Dwarf_Error * dw_error);
3963 
3978  Dwarf_Bool * dw_is_addr_set,
3979  Dwarf_Error * dw_error);
3980 
3995 DW_API int dwarf_lineaddr(Dwarf_Line dw_line,
3996  Dwarf_Addr * dw_returned_addr,
3997  Dwarf_Error* dw_error);
3998 
4013 DW_API int dwarf_lineoff_b(Dwarf_Line dw_line,
4014  Dwarf_Unsigned * dw_returned_lineoffset,
4015  Dwarf_Error* dw_error);
4016 
4034 DW_API int dwarf_linesrc(Dwarf_Line dw_line,
4035  char ** dw_returned_name,
4036  Dwarf_Error* dw_error);
4037 
4052 DW_API int dwarf_lineblock(Dwarf_Line dw_line,
4053  Dwarf_Bool * dw_returned_bool,
4054  Dwarf_Error* dw_error);
4055 
4056 /* We gather these into one call as it's likely one
4057  will want all or none of them. */
4082  Dwarf_Bool * dw_prologue_end,
4083  Dwarf_Bool * dw_epilogue_begin,
4084  Dwarf_Unsigned * dw_isa,
4085  Dwarf_Unsigned * dw_discriminator,
4086  Dwarf_Error * dw_error);
4087 /* End line table operations */
4088 
4094 DW_API int dwarf_linelogical(Dwarf_Line dw_line,
4095  Dwarf_Unsigned * dw_returned_logical,
4096  Dwarf_Error* dw_error);
4097 
4104 DW_API int dwarf_linecontext(Dwarf_Line dw_line,
4105  Dwarf_Unsigned * dw_returned_context,
4106  Dwarf_Error* dw_error);
4107 
4116 DW_API int dwarf_line_subprogno(Dwarf_Line /*line*/,
4117  Dwarf_Unsigned * /*ret_subprogno*/,
4118  Dwarf_Error * /*error*/);
4119 
4126 DW_API int dwarf_line_subprog(Dwarf_Line /*line*/,
4127  char ** /*returned_subprog_name*/,
4128  char ** /*returned_filename*/,
4129  Dwarf_Unsigned * /*returned_lineno*/,
4130  Dwarf_Error * /*error*/);
4131 
4153  int * dw_errcount_out,
4154  Dwarf_Error * dw_error);
4155 
4185 DW_API int dwarf_print_lines(Dwarf_Die dw_cu_die,
4186  Dwarf_Error * dw_error,
4187  int * dw_errorcount_out);
4188 
4209 DW_API struct Dwarf_Printf_Callback_Info_s
4211  struct Dwarf_Printf_Callback_Info_s * dw_callbackinfo);
4212 
4273  Dwarf_Off dw_rangesoffset,
4274  Dwarf_Die dw_die,
4275  Dwarf_Off * dw_return_realoffset,
4276  Dwarf_Ranges ** dw_rangesbuf,
4277  Dwarf_Signed * dw_rangecount,
4278  Dwarf_Unsigned * dw_bytecount,
4279  Dwarf_Error * dw_error);
4280 
4291  Dwarf_Ranges * dw_rangesbuf,
4292  Dwarf_Signed dw_rangecount);
4293 
4334  Dwarf_Die dw_die,
4335  Dwarf_Bool *dw_known_base,
4336  Dwarf_Unsigned *dw_baseaddress,
4337  Dwarf_Bool *dw_at_ranges_offset_present,
4338  Dwarf_Unsigned *dw_at_ranges_offset,
4339  Dwarf_Error *dw_error);
4340 
4387  Dwarf_Half dw_theform,
4388  Dwarf_Unsigned dw_index_or_offset_value,
4389  Dwarf_Rnglists_Head * dw_head_out,
4390  Dwarf_Unsigned * dw_count_of_entries_in_head,
4391  Dwarf_Unsigned * dw_global_offset_of_rle_set,
4392  Dwarf_Error * dw_error);
4393 
4437  Dwarf_Rnglists_Head dw_head,
4438  Dwarf_Unsigned dw_entrynum,
4439  unsigned int * dw_entrylen,
4440  unsigned int * dw_rle_value_out,
4441  Dwarf_Unsigned * dw_raw1,
4442  Dwarf_Unsigned * dw_raw2,
4443  Dwarf_Bool * dw_debug_addr_unavailable,
4444  Dwarf_Unsigned * dw_cooked1,
4445  Dwarf_Unsigned * dw_cooked2,
4446  Dwarf_Error * dw_error);
4447 
4456 
4488  Dwarf_Unsigned * dw_rnglists_count,
4489  Dwarf_Error * dw_error);
4490 
4518  Dwarf_Unsigned dw_context_index,
4519  Dwarf_Unsigned dw_offsetentry_index,
4520  Dwarf_Unsigned * dw_offset_value_out,
4521  Dwarf_Unsigned * dw_global_offset_value_out,
4522  Dwarf_Error * dw_error);
4523 
4531  Dwarf_Unsigned * dw_rle_count,
4532  Dwarf_Unsigned * dw_rnglists_version,
4533  Dwarf_Unsigned * dw_rnglists_index_returned,
4534  Dwarf_Unsigned * dw_bytes_total_in_rle,
4535  Dwarf_Half * dw_offset_size,
4536  Dwarf_Half * dw_address_size,
4537  Dwarf_Half * dw_segment_selector_size,
4538  Dwarf_Unsigned * dw_overall_offset_of_this_context,
4539  Dwarf_Unsigned * dw_total_length_of_this_context,
4540  Dwarf_Unsigned * dw_offset_table_offset,
4541  Dwarf_Unsigned * dw_offset_table_entrycount,
4542  Dwarf_Bool * dw_rnglists_base_present,
4543  Dwarf_Unsigned * dw_rnglists_base,
4544  Dwarf_Bool * dw_rnglists_base_address_present,
4545  Dwarf_Unsigned * dw_rnglists_base_address,
4546  Dwarf_Bool * dw_rnglists_debug_addr_base_present,
4547  Dwarf_Unsigned * dw_rnglists_debug_addr_base,
4548  Dwarf_Error * dw_error);
4549 
4566  Dwarf_Unsigned dw_index,
4567  Dwarf_Unsigned * dw_header_offset,
4568  Dwarf_Small * dw_offset_size,
4569  Dwarf_Small * dw_extension_size,
4570  unsigned int * dw_version,
4571  Dwarf_Small * dw_address_size,
4572  Dwarf_Small * dw_segment_selector_size,
4573  Dwarf_Unsigned * dw_offset_entry_count,
4574  Dwarf_Unsigned * dw_offset_of_offset_array,
4575  Dwarf_Unsigned * dw_offset_of_first_rangeentry,
4576  Dwarf_Unsigned * dw_offset_past_last_rangeentry,
4577  Dwarf_Error * dw_error);
4578 
4589  Dwarf_Unsigned dw_contextnumber,
4590  Dwarf_Unsigned dw_entry_offset,
4591  Dwarf_Unsigned dw_endoffset,
4592  unsigned int * dw_entrylen,
4593  unsigned int * dw_entry_kind,
4594  Dwarf_Unsigned * dw_entry_operand1,
4595  Dwarf_Unsigned * dw_entry_operand2,
4596  Dwarf_Error * dw_error);
4623  Dwarf_Loc_Head_c * dw_loclist_head,
4624  Dwarf_Unsigned * dw_locentry_count,
4625  Dwarf_Error * dw_error);
4626 
4627 #define DW_LKIND_expression 0 /* DWARF2,3,4,5 */
4628 #define DW_LKIND_loclist 1 /* DWARF 2,3,4 */
4629 #define DW_LKIND_GNU_exp_list 2 /* GNU DWARF4 .dwo extension */
4630 #define DW_LKIND_loclists 5 /* DWARF5 loclists */
4631 #define DW_LKIND_unknown 99
4632 
4646  Dwarf_Loc_Head_c dw_loclist_head,
4647  unsigned int * dw_lkind,
4648  Dwarf_Error * dw_error);
4649 
4704 DW_API int dwarf_get_locdesc_entry_d(Dwarf_Loc_Head_c dw_loclist_head,
4705  Dwarf_Unsigned dw_index,
4706  Dwarf_Small * dw_lle_value_out,
4707  Dwarf_Unsigned * dw_rawlowpc,
4708  Dwarf_Unsigned * dw_rawhipc,
4709  Dwarf_Bool * dw_debug_addr_unavailable,
4710  Dwarf_Addr * dw_lowpc_cooked,
4711  Dwarf_Addr * dw_hipc_cooked,
4712  Dwarf_Unsigned * dw_locexpr_op_count_out,
4713  Dwarf_Locdesc_c * dw_locentry_out,
4714  Dwarf_Small * dw_loclist_source_out,
4715  Dwarf_Unsigned * dw_expression_offset_out,
4716  Dwarf_Unsigned * dw_locdesc_offset_out,
4717  Dwarf_Error * dw_error);
4718 
4738 DW_API int dwarf_get_locdesc_entry_e(Dwarf_Loc_Head_c dw_loclist_head,
4739  Dwarf_Unsigned dw_index,
4740  Dwarf_Small * dw_lle_value_out,
4741  Dwarf_Unsigned * dw_rawlowpc,
4742  Dwarf_Unsigned * dw_rawhipc,
4743  Dwarf_Bool * dw_debug_addr_unavailable,
4744  Dwarf_Addr * dw_lowpc_cooked,
4745  Dwarf_Addr * dw_hipc_cooked,
4746  Dwarf_Unsigned * dw_locexpr_op_count_out,
4747  Dwarf_Unsigned * dw_lle_bytecount,
4748  Dwarf_Locdesc_c * dw_locentry_out,
4749  Dwarf_Small * dw_loclist_source_out,
4750  Dwarf_Unsigned * dw_expression_offset_out,
4751  Dwarf_Unsigned * dw_locdesc_offset_out,
4752  Dwarf_Error * dw_error);
4753 
4780  Dwarf_Unsigned dw_index,
4781  Dwarf_Small * dw_operator_out,
4782  Dwarf_Unsigned * dw_operand1,
4783  Dwarf_Unsigned * dw_operand2,
4784  Dwarf_Unsigned * dw_operand3,
4785  Dwarf_Unsigned * dw_offset_for_branch,
4786  Dwarf_Error* dw_error);
4819  Dwarf_Ptr dw_expression_in,
4820  Dwarf_Unsigned dw_expression_length,
4821  Dwarf_Half dw_address_size,
4822  Dwarf_Half dw_offset_size,
4823  Dwarf_Half dw_dwarf_version,
4824  Dwarf_Loc_Head_c* dw_loc_head,
4825  Dwarf_Unsigned * dw_listlen,
4826  Dwarf_Error * dw_error);
4827 
4836 
4837 /* These interfaces allow reading the .debug_loclists
4838  section. Independently of DIEs.
4839  Normal use of .debug_loclists uses
4840  dwarf_get_loclist_c() to open access to any kind of location
4841  or loclist and uses dwarf_loc_head_c_dealloc() to
4842  deallocate that memory once one is finished with
4843  that data. So for most purposes you do not need
4844  to use these functions
4845  See dwarf_get_loclist_c() to open a Dwarf_Loc_Head_c
4846  on any type of location list or expression. */
4847 
4848 /* Loads all the loclists headers and
4849  returns DW_DLV_NO_ENTRY if the section
4850  is missing or empty.
4851  Intended to be done quite early and
4852  it is automatically
4853  done if .debug_info is loaded.
4854  Doing it more than once is never necessary
4855  or harmful. There is no deallocation call
4856  made visible, deallocation happens
4857  when dwarf_finish() is called.
4858  With DW_DLV_OK it returns the number of
4859  loclists headers in the section through
4860  loclists_count. */
4891  Dwarf_Unsigned * dw_loclists_count,
4892  Dwarf_Error * dw_error);
4893 
4920  Dwarf_Unsigned dw_context_index,
4921  Dwarf_Unsigned dw_offsetentry_index,
4922  Dwarf_Unsigned * dw_offset_value_out,
4923  Dwarf_Unsigned * dw_global_offset_value_out,
4924  Dwarf_Error * dw_error);
4925 
4941  Dwarf_Small * dw_lkind,
4942  Dwarf_Unsigned * dw_lle_count,
4943  Dwarf_Unsigned * dw_loclists_version,
4944  Dwarf_Unsigned * dw_loclists_index_returned,
4945  Dwarf_Unsigned * dw_bytes_total_in_rle,
4946  Dwarf_Half * dw_offset_size,
4947  Dwarf_Half * dw_address_size,
4948  Dwarf_Half * dw_segment_selector_size,
4949  Dwarf_Unsigned * dw_overall_offset_of_this_context,
4950  Dwarf_Unsigned * dw_total_length_of_this_context,
4951  Dwarf_Unsigned * dw_offset_table_offset,
4952  Dwarf_Unsigned * dw_offset_table_entrycount,
4953  Dwarf_Bool * dw_loclists_base_present,
4954  Dwarf_Unsigned * dw_loclists_base,
4955  Dwarf_Bool * dw_loclists_base_address_present,
4956  Dwarf_Unsigned * dw_loclists_base_address,
4957  Dwarf_Bool * dw_loclists_debug_addr_base_present,
4958  Dwarf_Unsigned * dw_loclists_debug_addr_base,
4959  Dwarf_Unsigned * dw_offset_this_lle_area,
4960  Dwarf_Error * dw_error);
4961 
4971  Dwarf_Unsigned dw_index,
4972  Dwarf_Unsigned * dw_header_offset,
4973  Dwarf_Small * dw_offset_size,
4974  Dwarf_Small * dw_extension_size,
4975  unsigned int * dw_version,
4976  Dwarf_Small * dw_address_size,
4977  Dwarf_Small * dw_segment_selector_size,
4978  Dwarf_Unsigned * dw_offset_entry_count,
4979  Dwarf_Unsigned * dw_offset_of_offset_array,
4980  Dwarf_Unsigned * dw_offset_of_first_locentry,
4981  Dwarf_Unsigned * dw_offset_past_last_locentry,
4982  Dwarf_Error * dw_error);
4983 
4989  Dwarf_Unsigned dw_contextnumber,
4990  Dwarf_Unsigned dw_entry_offset,
4991  Dwarf_Unsigned dw_endoffset,
4992  unsigned int * dw_entrylen,
4993  unsigned int * dw_entry_kind,
4994  Dwarf_Unsigned * dw_entry_operand1,
4995  Dwarf_Unsigned * dw_entry_operand2,
4996  Dwarf_Unsigned * dw_expr_ops_blocksize,
4997  Dwarf_Unsigned * dw_expr_ops_offset,
4998  Dwarf_Small ** dw_expr_opsdata,
4999  Dwarf_Error * dw_error);
5080  Dwarf_Unsigned dw_section_offset,
5081  Dwarf_Debug_Addr_Table *dw_table_header,
5082  Dwarf_Unsigned *dw_length,
5083  Dwarf_Half *dw_version,
5084  Dwarf_Small *dw_address_size,
5085  Dwarf_Unsigned *dw_at_addr_base,
5086  Dwarf_Unsigned *dw_entry_count,
5087  Dwarf_Unsigned *dw_next_table_offset,
5088  Dwarf_Error *dw_error);
5089 
5113  Dwarf_Unsigned dw_entry_index,
5114  Dwarf_Unsigned *dw_address,
5115  Dwarf_Error *dw_error);
5116 
5125  Dwarf_Debug_Addr_Table dw_dat);
5126 
5164  Dwarf_Unsigned * dw_version_out,
5165  Dwarf_Macro_Context * dw_macro_context,
5166  Dwarf_Unsigned * dw_macro_unit_offset_out,
5167  Dwarf_Unsigned * dw_macro_ops_count_out,
5168  Dwarf_Unsigned * dw_macro_ops_data_length_out,
5169  Dwarf_Error * dw_error);
5170 
5199  Dwarf_Unsigned dw_offset,
5200  Dwarf_Unsigned * dw_version_out,
5201  Dwarf_Macro_Context * dw_macro_context,
5202  Dwarf_Unsigned * dw_macro_ops_count_out,
5203  Dwarf_Unsigned * dw_macro_ops_data_length,
5204  Dwarf_Error * dw_error);
5205 
5206 /* New December 2020. libdwarf 0.1.0
5207  Sometimes its necessary to know
5208  a context total length including macro 5 header */
5222  Dwarf_Macro_Context dw_context,
5223  Dwarf_Unsigned * dw_mac_total_len,
5224  Dwarf_Error * dw_error);
5225 
5234 
5241  Dwarf_Half * dw_version,
5242  Dwarf_Unsigned * dw_mac_offset,
5243  Dwarf_Unsigned * dw_mac_len,
5244  Dwarf_Unsigned * dw_mac_header_len,
5245  unsigned int * dw_flags,
5246  Dwarf_Bool * dw_has_line_offset,
5247  Dwarf_Unsigned * dw_line_offset,
5248  Dwarf_Bool * dw_has_offset_size_64,
5249  Dwarf_Bool * dw_has_operands_table,
5250  Dwarf_Half * dw_opcode_count,
5251  Dwarf_Error * dw_error);
5252 
5276  Dwarf_Half dw_index, /* 0 to opcode_count -1 */
5277  Dwarf_Half * dw_opcode_number,
5278  Dwarf_Half * dw_operand_count,
5279  const Dwarf_Small ** dw_operand_array,
5280  Dwarf_Error * dw_error);
5281 
5306 DW_API int dwarf_get_macro_op(Dwarf_Macro_Context dw_macro_context,
5307  Dwarf_Unsigned dw_op_number,
5308  Dwarf_Unsigned * dw_op_start_section_offset,
5309  Dwarf_Half * dw_macro_operator,
5310  Dwarf_Half * dw_forms_count,
5311  const Dwarf_Small ** dw_formcode_array,
5312  Dwarf_Error * dw_error);
5313 
5352  Dwarf_Macro_Context dw_macro_context,
5353  Dwarf_Unsigned dw_op_number,
5354  Dwarf_Unsigned * dw_line_number,
5355  Dwarf_Unsigned * dw_index,
5356  Dwarf_Unsigned * dw_offset,
5357  Dwarf_Half * dw_forms_count,
5358  const char ** dw_macro_string,
5359  Dwarf_Error * dw_error);
5360 
5389  Dwarf_Macro_Context dw_macro_context,
5390  Dwarf_Unsigned dw_op_number,
5391  Dwarf_Unsigned * dw_line_number,
5392  Dwarf_Unsigned * dw_name_index_to_line_tab,
5393  const char ** dw_src_file_name,
5394  Dwarf_Error * dw_error);
5395 
5412  Dwarf_Macro_Context dw_macro_context,
5413  Dwarf_Unsigned dw_op_number,
5414  Dwarf_Unsigned * dw_target_offset,
5415  Dwarf_Error * dw_error);
5444 DW_API char* dwarf_find_macro_value_start(char * dw_macro_string);
5445 
5472  Dwarf_Off dw_macro_offset,
5473  Dwarf_Unsigned dw_maximum_count,
5474  Dwarf_Signed * dw_entry_count,
5475  Dwarf_Macro_Details ** dw_details,
5476  Dwarf_Error * dw_error);
5477 
5521  Dwarf_Cie** dw_cie_data,
5522  Dwarf_Signed* dw_cie_element_count,
5523  Dwarf_Fde** dw_fde_data,
5524  Dwarf_Signed* dw_fde_element_count,
5525  Dwarf_Error* dw_error);
5536  Dwarf_Cie** dw_cie_data,
5537  Dwarf_Signed* dw_cie_element_count,
5538  Dwarf_Fde** dw_fde_data,
5539  Dwarf_Signed* dw_fde_element_count,
5540  Dwarf_Error* dw_error);
5541 
5562  Dwarf_Cie * dw_cie_data,
5563  Dwarf_Signed dw_cie_element_count,
5564  Dwarf_Fde * dw_fde_data,
5565  Dwarf_Signed dw_fde_element_count);
5566 
5594 DW_API int dwarf_get_fde_range(Dwarf_Fde dw_fde,
5595  Dwarf_Addr* dw_low_pc,
5596  Dwarf_Unsigned* dw_func_length,
5597  Dwarf_Small **dw_fde_bytes,
5598  Dwarf_Unsigned* dw_fde_byte_length,
5599  Dwarf_Off* dw_cie_offset,
5600  Dwarf_Signed* dw_cie_index,
5601  Dwarf_Off* dw_fde_offset,
5602  Dwarf_Error* dw_error);
5603 
5610  Dwarf_Signed* dw_offset_into_exception_tables,
5611  Dwarf_Error* dw_error);
5612 
5625  Dwarf_Cie * dw_cie_returned,
5626  Dwarf_Error* dw_error);
5627 
5662  Dwarf_Unsigned * dw_bytes_in_cie,
5663  Dwarf_Small* dw_version,
5664  char ** dw_augmenter,
5665  Dwarf_Unsigned* dw_code_alignment_factor,
5666  Dwarf_Signed* dw_data_alignment_factor,
5667  Dwarf_Half* dw_return_address_register_rule,
5668  Dwarf_Small ** dw_initial_instructions,
5669  Dwarf_Unsigned* dw_initial_instructions_length,
5670  Dwarf_Half* dw_offset_size,
5671  Dwarf_Error* dw_error);
5672 
5685 DW_API int dwarf_get_cie_index(Dwarf_Cie dw_cie,
5686  Dwarf_Signed* dw_index,
5687  Dwarf_Error * dw_error);
5688 
5708  Dwarf_Small ** dw_outinstrs,
5709  Dwarf_Unsigned * dw_outlen,
5710  Dwarf_Error * dw_error);
5711 
5745  Dwarf_Addr dw_pc_requested,
5746  Dwarf_Regtable3* dw_reg_table,
5747  Dwarf_Addr* dw_row_pc,
5748  Dwarf_Bool* dw_has_more_rows,
5749  Dwarf_Addr* dw_subsequent_pc,
5750  Dwarf_Error* dw_error);
5751 
5762  Dwarf_Addr dw_pc_requested,
5763  Dwarf_Regtable3* dw_reg_table,
5764  Dwarf_Addr* dw_row_pc,
5765  Dwarf_Error* dw_error);
5766 
5767 /* See discussion of dw_value_type, libdwarf.h. */
5828  Dwarf_Half dw_table_column,
5829  Dwarf_Addr dw_pc_requested,
5830  Dwarf_Small * dw_value_type,
5831  Dwarf_Unsigned * dw_offset_relevant,
5832  Dwarf_Unsigned * dw_register,
5833  Dwarf_Signed * dw_offset,
5834  Dwarf_Block * dw_block_content,
5835  Dwarf_Addr * dw_row_pc_out,
5836  Dwarf_Bool * dw_has_more_rows,
5837  Dwarf_Addr * dw_subsequent_pc,
5838  Dwarf_Error * dw_error);
5839 
5850  Dwarf_Half dw_table_column,
5851  Dwarf_Addr dw_pc_requested,
5852  Dwarf_Small * dw_value_type,
5853  Dwarf_Unsigned * dw_offset_relevant,
5854  Dwarf_Unsigned * dw_register,
5855  Dwarf_Unsigned * dw_offset,
5856  Dwarf_Block * dw_block_content,
5857  Dwarf_Addr * dw_row_pc_out,
5858  Dwarf_Bool * dw_has_more_rows,
5859  Dwarf_Addr * dw_subsequent_pc,
5860  Dwarf_Error * dw_error);
5861 
5886  Dwarf_Addr dw_pc_requested,
5887  Dwarf_Small * dw_value_type,
5888  Dwarf_Unsigned* dw_offset_relevant,
5889  Dwarf_Unsigned* dw_register,
5890  Dwarf_Signed * dw_offset,
5891  Dwarf_Block * dw_block,
5892  Dwarf_Addr * dw_row_pc_out,
5893  Dwarf_Bool * dw_has_more_rows,
5894  Dwarf_Addr * dw_subsequent_pc,
5895  Dwarf_Error * dw_error);
5906  Dwarf_Addr dw_pc_requested,
5907  Dwarf_Small * dw_value_type,
5908  Dwarf_Unsigned* dw_offset_relevant,
5909  Dwarf_Unsigned* dw_register,
5910  Dwarf_Unsigned* dw_offset,
5911  Dwarf_Block * dw_block,
5912  Dwarf_Addr * dw_row_pc_out,
5913  Dwarf_Bool * dw_has_more_rows,
5914  Dwarf_Addr * dw_subsequent_pc,
5915  Dwarf_Error * dw_error);
5916 
5926  Dwarf_Die dw_subr_die,
5927  Dwarf_Fde * dw_returned_fde,
5928  Dwarf_Error* dw_error);
5929 
5937 DW_API int dwarf_get_fde_n(Dwarf_Fde* dw_fde_data,
5938  Dwarf_Unsigned dw_fde_index,
5939  Dwarf_Fde * dw_returned_fde,
5940  Dwarf_Error * dw_error);
5941 
5972 DW_API int dwarf_get_fde_at_pc(Dwarf_Fde* dw_fde_data,
5973  Dwarf_Addr dw_pc_of_interest,
5974  Dwarf_Fde * dw_returned_fde,
5975  Dwarf_Addr * dw_lopc,
5976  Dwarf_Addr * dw_hipc,
5977  Dwarf_Error* dw_error);
5978 
5999  Dwarf_Small ** dw_augdata,
6000  Dwarf_Unsigned * dw_augdata_len,
6001  Dwarf_Error* dw_error);
6002 
6023  Dwarf_Small ** dw_augdata,
6024  Dwarf_Unsigned * dw_augdata_len,
6025  Dwarf_Error* dw_error);
6026 
6061  Dwarf_Small * dw_instructionspointer,
6062  Dwarf_Unsigned dw_length_in_bytes,
6063  Dwarf_Frame_Instr_Head * dw_head,
6064  Dwarf_Unsigned * dw_instr_count,
6065  Dwarf_Error * dw_error);
6066 
6140  Dwarf_Frame_Instr_Head dw_head,
6141  Dwarf_Unsigned dw_instr_index,
6142  Dwarf_Unsigned * dw_instr_offset_in_instrs,
6143  Dwarf_Small * dw_cfa_operation,
6144  const char ** dw_fields_description,
6145  Dwarf_Unsigned * dw_u0,
6146  Dwarf_Unsigned * dw_u1,
6147  Dwarf_Signed * dw_s0,
6148  Dwarf_Signed * dw_s1,
6149  Dwarf_Unsigned * dw_code_alignment_factor,
6150  Dwarf_Signed * dw_data_alignment_factor,
6151  Dwarf_Block * dw_expression_block,
6152  Dwarf_Error * dw_error);
6153 
6176  Dwarf_Frame_Instr_Head dw_/* head*/,
6177  Dwarf_Unsigned dw_instr_index,
6178  Dwarf_Unsigned * dw_instr_offset_in_instrs,
6179  Dwarf_Small * dw_cfa_operation,
6180  const char ** dw_fields_description,
6181  Dwarf_Unsigned * dw_u0,
6182  Dwarf_Unsigned * dw_u1,
6183  Dwarf_Unsigned * dw_u2,
6184  Dwarf_Signed * dw_s0,
6185  Dwarf_Signed * dw_s1,
6186  Dwarf_Unsigned * dw_code_alignment_factor,
6187  Dwarf_Signed * dw_data_alignment_factor,
6188  Dwarf_Block * dw_expression_block,
6189  Dwarf_Error * dw_error);
6190 
6200  dw_head);
6201 
6219  Dwarf_Fde dw_in_fde,
6220  Dwarf_Off * dw_fde_off,
6221  Dwarf_Off * dw_cie_off,
6222  Dwarf_Error * dw_error);
6223 
6239  Dwarf_Cie dw_in_cie,
6240  Dwarf_Off * dw_cie_off,
6241  Dwarf_Error * dw_error);
6242 
6253  Dwarf_Debug dw_dbg,
6254  Dwarf_Half dw_value);
6267  Dwarf_Debug dw_dbg,
6268  Dwarf_Half dw_value);
6279  Dwarf_Debug dw_dbg,
6280  Dwarf_Half dw_value);
6281 
6292  Dwarf_Debug dw_dbg,
6293  Dwarf_Half dw_value);
6304  Dwarf_Debug dw_dbg,
6305  Dwarf_Half dw_value);
6359 DW_API int dwarf_get_abbrev(Dwarf_Debug dw_dbg,
6360  Dwarf_Unsigned dw_offset,
6361  Dwarf_Abbrev * dw_returned_abbrev,
6362  Dwarf_Unsigned* dw_length,
6363  Dwarf_Unsigned* dw_attr_count,
6364  Dwarf_Error* dw_error);
6365 
6377 DW_API int dwarf_get_abbrev_tag(Dwarf_Abbrev dw_abbrev,
6378  Dwarf_Half* dw_return_tag_number,
6379  Dwarf_Error* dw_error);
6380 
6395  Dwarf_Unsigned* dw_return_code_number,
6396  Dwarf_Error* dw_error);
6397 
6412  Dwarf_Signed* dw_return_flag,
6413  Dwarf_Error* dw_error);
6414 
6449  Dwarf_Unsigned dw_indx,
6450  Dwarf_Bool dw_filter_outliers,
6451  Dwarf_Unsigned * dw_returned_attr_num,
6452  Dwarf_Unsigned * dw_returned_form,
6453  Dwarf_Signed * dw_returned_implicit_const,
6454  Dwarf_Off * dw_offset,
6455  Dwarf_Error * dw_error);
6456 
6490 DW_API int dwarf_get_str(Dwarf_Debug dw_dbg,
6491  Dwarf_Off dw_offset,
6492  char** dw_string,
6493  Dwarf_Signed * dw_strlen_of_string,
6494  Dwarf_Error* dw_error);
6495 
6506 /* Allows applications to print the .debug_str_offsets
6507  section.
6508  Beginning at starting_offset zero,
6509  returns data about the first table found.
6510  The value *next_table_offset is the value
6511  of the next table (if any), one byte past
6512  the end of the table whose data is returned..
6513  Returns DW_DLV_NO_ENTRY if the starting offset
6514  is past the end of valid data.
6515 
6516  There is no guarantee that there are no non-0 nonsense
6517  bytes in the section outside of useful tables,
6518  so this can fail and return nonsense or
6519  DW_DLV_ERROR if such garbage exists.
6520 */
6521 
6539  Dwarf_Str_Offsets_Table * dw_table_data,
6540  Dwarf_Error * dw_error);
6541 
6560  Dwarf_Str_Offsets_Table dw_table_data,
6561  Dwarf_Error * dw_error);
6562 
6597  Dwarf_Str_Offsets_Table dw_table_data,
6598  Dwarf_Unsigned * dw_unit_length,
6599  Dwarf_Unsigned * dw_unit_length_offset,
6600  Dwarf_Unsigned * dw_table_start_offset,
6601  Dwarf_Half * dw_entry_size,
6602  Dwarf_Half * dw_version,
6603  Dwarf_Half * dw_padding,
6604  Dwarf_Unsigned * dw_table_value_count,
6605  Dwarf_Error * dw_error);
6606 
6627  Dwarf_Str_Offsets_Table dw_table_data,
6628  Dwarf_Unsigned dw_index_to_entry,
6629  Dwarf_Unsigned * dw_entry_value,
6630  Dwarf_Error * dw_error);
6631 
6650  Dwarf_Str_Offsets_Table dw_table_data,
6651  Dwarf_Unsigned * dw_wasted_byte_count,
6652  Dwarf_Unsigned * dw_table_count,
6653  Dwarf_Error * dw_error);
6654 
6673 DW_API char* dwarf_errmsg(Dwarf_Error dw_error);
6681 DW_API char* dwarf_errmsg_by_number(Dwarf_Unsigned dw_errornum);
6682 
6696 DW_API void dwarf_error_creation(Dwarf_Debug dw_dbg ,
6697  Dwarf_Error * dw_error, char * dw_errmsg);
6698 
6708  Dwarf_Error dw_error);
6750 DW_API void dwarf_dealloc(Dwarf_Debug dw_dbg,
6751  void* dw_space, Dwarf_Unsigned dw_type);
6772  Dwarf_Half * dw_version,
6773  Dwarf_Small * dw_is_supplementary,
6774  char ** dw_filename,
6775  Dwarf_Unsigned * dw_checksum_len,
6776  Dwarf_Small ** dw_checksum,
6777  Dwarf_Error * dw_error);
6814  Dwarf_Off dw_starting_offset,
6815  Dwarf_Dnames_Head * dw_dn,
6816  Dwarf_Off * dw_offset_of_next_table,
6817  Dwarf_Error * dw_error);
6818 
6827 
6873  Dwarf_Unsigned dw_index,
6874  Dwarf_Unsigned *dw_abbrev_offset,
6875  Dwarf_Unsigned *dw_abbrev_code,
6876  Dwarf_Unsigned *dw_abbrev_tag,
6877  Dwarf_Unsigned dw_array_size,
6878  Dwarf_Half *dw_idxattr_array,
6879  Dwarf_Half *dw_form_array,
6880  Dwarf_Unsigned *dw_idxattr_count);
6881 
6900  Dwarf_Unsigned * dw_comp_unit_count,
6901  Dwarf_Unsigned * dw_local_type_unit_count,
6902  Dwarf_Unsigned * dw_foreign_type_unit_count,
6903  Dwarf_Unsigned * dw_bucket_count,
6904  Dwarf_Unsigned * dw_name_count,
6905  /* The following are counted in bytes */
6906  Dwarf_Unsigned * dw_abbrev_table_size,
6907  Dwarf_Unsigned * dw_entry_pool_size,
6908  Dwarf_Unsigned * dw_augmentation_string_size,
6909  char ** dw_augmentation_string,
6910  Dwarf_Unsigned * dw_section_size,
6911  Dwarf_Half * dw_table_version,
6912  Dwarf_Half * dw_offset_size,
6913  Dwarf_Error * dw_error);
6914 
6926  Dwarf_Unsigned * dw_header_offset,
6927  Dwarf_Unsigned * dw_cu_table_offset,
6928  Dwarf_Unsigned * dw_tu_local_offset,
6929  Dwarf_Unsigned * dw_foreign_tu_offset,
6930  Dwarf_Unsigned * dw_bucket_offset,
6931  Dwarf_Unsigned * dw_hashes_offset,
6932  Dwarf_Unsigned * dw_stringoffsets_offset,
6933  Dwarf_Unsigned * dw_entryoffsets_offset,
6934  Dwarf_Unsigned * dw_abbrev_table_offset,
6935  Dwarf_Unsigned * dw_entry_pool_offset,
6936  Dwarf_Error * dw_error);
6937 
6967  const char * dw_type,
6968  Dwarf_Unsigned dw_index_number,
6969  Dwarf_Unsigned * dw_offset,
6970  Dwarf_Sig8 * dw_sig,
6971  Dwarf_Error * dw_error);
6972 
6995  Dwarf_Unsigned dw_bucket_number,
6996  Dwarf_Unsigned * dw_index,
6997  Dwarf_Unsigned * dw_indexcount,
6998  Dwarf_Error * dw_error);
6999 
7050  Dwarf_Unsigned dw_name_index,
7051  Dwarf_Unsigned * dw_bucket_number,
7052  Dwarf_Unsigned * dw_hash_value,
7053  Dwarf_Unsigned * dw_offset_to_debug_str,
7054  char * * dw_ptrtostr,
7055  Dwarf_Unsigned * dw_offset_in_entrypool,
7056  Dwarf_Unsigned * dw_abbrev_number,
7057  Dwarf_Half * dw_abbrev_tag,
7058  Dwarf_Unsigned dw_array_size,
7059  Dwarf_Half * dw_idxattr_array,
7060  Dwarf_Half * dw_form_array,
7061  Dwarf_Unsigned * dw_idxattr_count,
7062  Dwarf_Error * dw_error);
7063 
7106  Dwarf_Unsigned dw_offset_in_entrypool,
7107  Dwarf_Unsigned * dw_abbrev_code,
7108  Dwarf_Half * dw_tag,
7109  Dwarf_Unsigned * dw_value_count,
7110  Dwarf_Unsigned * dw_index_of_abbrev,
7111  Dwarf_Unsigned * dw_offset_of_initial_value,
7112  Dwarf_Error * dw_error);
7113 
7174  Dwarf_Unsigned dw_index_of_abbrev,
7175  Dwarf_Unsigned dw_offset_in_entrypool_of_values,
7176  Dwarf_Unsigned dw_arrays_length,
7177  Dwarf_Half *dw_array_idx_number,
7178  Dwarf_Half *dw_array_form,
7179  Dwarf_Unsigned *dw_array_of_offsets,
7180  Dwarf_Sig8 *dw_array_of_signatures,
7181  Dwarf_Bool *dw_single_cu,
7182  Dwarf_Unsigned *dw_cu_offset,
7183  Dwarf_Unsigned *dw_offset_of_next_entrypool,
7184  Dwarf_Error *dw_error);
7185 
7212 DW_API int dwarf_get_aranges(Dwarf_Debug dw_dbg,
7213  Dwarf_Arange** dw_aranges,
7214  Dwarf_Signed * dw_arange_count,
7215  Dwarf_Error* dw_error);
7216 
7236 DW_API int dwarf_get_arange(Dwarf_Arange* dw_aranges,
7237  Dwarf_Unsigned dw_arange_count,
7238  Dwarf_Addr dw_address,
7239  Dwarf_Arange * dw_returned_arange,
7240  Dwarf_Error* dw_error);
7241 
7255  Dwarf_Off * dw_return_offset,
7256  Dwarf_Error* dw_error);
7257 
7271  Dwarf_Off * dw_return_cu_header_offset,
7272  Dwarf_Error* dw_error);
7273 
7300  Dwarf_Unsigned* dw_segment,
7301  Dwarf_Unsigned* dw_segment_entry_size,
7302  Dwarf_Addr * dw_start,
7303  Dwarf_Unsigned* dw_length,
7304  Dwarf_Off * dw_cu_die_offset,
7305  Dwarf_Error * dw_error );
7355 DW_API int dwarf_get_globals(Dwarf_Debug dw_dbg,
7356  Dwarf_Global** dw_globals,
7357  Dwarf_Signed * dw_number_of_globals,
7358  Dwarf_Error * dw_error);
7359 
7360 #define DW_GL_GLOBALS 0 /* .debug_pubnames and .debug_names */
7361 #define DW_GL_PUBTYPES 1 /* .debug_pubtypes */
7362 /* the following are IRIX ONLY */
7363 #define DW_GL_FUNCS 2 /* .debug_funcnames */
7364 #define DW_GL_TYPES 3 /* .debug_typenames */
7365 #define DW_GL_VARS 4 /* .debug_varnames */
7366 #define DW_GL_WEAKS 5 /* .debug_weaknames */
7390  Dwarf_Global** dw_pubtypes,
7391  Dwarf_Signed * dw_number_of_pubtypes,
7392  Dwarf_Error * dw_error);
7393 
7420  int dw_requested_section,
7421  Dwarf_Global **dw_contents,
7422  Dwarf_Signed *dw_count,
7423  Dwarf_Error *dw_error);
7424 
7436  Dwarf_Global* dw_global_like,
7437  Dwarf_Signed dw_count);
7438 
7451 DW_API int dwarf_globname(Dwarf_Global dw_global,
7452  char ** dw_returned_name,
7453  Dwarf_Error* dw_error);
7454 
7468  Dwarf_Off * dw_die_offset,
7469  Dwarf_Error * dw_error);
7470 
7486  Dwarf_Off* dw_cu_header_offset,
7487  Dwarf_Error* dw_error);
7488 
7508  char ** dw_returned_name,
7509  Dwarf_Off* dw_die_offset,
7510  Dwarf_Off* dw_cu_die_offset,
7511  Dwarf_Error* dw_error);
7512 
7526 
7538  int * dw_category, /* DW_GL_GLOBAL for example */
7539  Dwarf_Off * dw_offset_pub_header,
7540  Dwarf_Unsigned * dw_length_size,
7541  Dwarf_Unsigned * dw_length_pub,
7542  Dwarf_Unsigned * dw_version,
7543  Dwarf_Unsigned * dw_header_info_offset,
7544  Dwarf_Unsigned * dw_info_length,
7545  Dwarf_Error * dw_error);
7546 
7570  int dw_flag);
7571 
7606  Dwarf_Bool dw_which_section,
7607  Dwarf_Gnu_Index_Head *dw_head,
7608  Dwarf_Unsigned *dw_index_block_count_out,
7609  Dwarf_Error *dw_error);
7657  Dwarf_Unsigned dw_number,
7658  Dwarf_Unsigned *dw_block_length,
7659  Dwarf_Half *dw_version,
7660  Dwarf_Unsigned *dw_offset_into_debug_info,
7661  Dwarf_Unsigned *dw_size_of_debug_info_area,
7662  Dwarf_Unsigned *dw_count_of_index_entries,
7663  Dwarf_Error *dw_error);
7664 
7697  Dwarf_Gnu_Index_Head dw_head,
7698  Dwarf_Unsigned dw_blocknumber,
7699  Dwarf_Unsigned dw_entrynumber,
7700  Dwarf_Unsigned *dw_offset_in_debug_info,
7701  const char **dw_name_string,
7702  unsigned char *dw_flagbyte,
7703  unsigned char *dw_staticorglobal,
7704  unsigned char *dw_typeofentry,
7705  Dwarf_Error *dw_error);
7706 
7768  Dwarf_Gdbindex * dw_gdbindexptr,
7769  Dwarf_Unsigned * dw_version,
7770  Dwarf_Unsigned * dw_cu_list_offset,
7771  Dwarf_Unsigned * dw_types_cu_list_offset,
7772  Dwarf_Unsigned * dw_address_area_offset,
7773  Dwarf_Unsigned * dw_symbol_table_offset,
7774  Dwarf_Unsigned * dw_constant_pool_offset,
7775  Dwarf_Unsigned * dw_section_size,
7776  const char ** dw_section_name,
7777  Dwarf_Error * dw_error);
7778 
7786 DW_API void dwarf_dealloc_gdbindex(Dwarf_Gdbindex dw_gdbindexptr);
7787 
7799  Dwarf_Gdbindex dw_gdbindexptr,
7800  Dwarf_Unsigned * dw_list_length,
7801  Dwarf_Error * dw_error);
7802 
7821  Dwarf_Gdbindex dw_gdbindexptr,
7822  Dwarf_Unsigned dw_entryindex,
7823  Dwarf_Unsigned * dw_cu_offset,
7824  Dwarf_Unsigned * dw_cu_length,
7825  Dwarf_Error * dw_error);
7826 
7839  Dwarf_Gdbindex dw_gdbindexptr,
7840  Dwarf_Unsigned * dw_types_list_length,
7841  Dwarf_Error * dw_error);
7842 
7843 /* entryindex: 0 to types_list_length -1 */
7866  Dwarf_Gdbindex dw_gdbindexptr,
7867  Dwarf_Unsigned dw_types_entryindex,
7868  Dwarf_Unsigned * dw_cu_offset,
7869  Dwarf_Unsigned * dw_tu_offset,
7870  Dwarf_Unsigned * dw_type_signature,
7871  Dwarf_Error * dw_error);
7872 
7888  Dwarf_Gdbindex dw_gdbindexptr,
7889  Dwarf_Unsigned * dw_addressarea_list_length,
7890  Dwarf_Error * dw_error);
7891 
7911  Dwarf_Gdbindex dw_gdbindexptr,
7912  Dwarf_Unsigned dw_entryindex,
7913  Dwarf_Unsigned * dw_low_address,
7914  Dwarf_Unsigned * dw_high_address,
7915  Dwarf_Unsigned * dw_cu_index,
7916  Dwarf_Error * dw_error);
7917 
7931  Dwarf_Gdbindex dw_gdbindexptr,
7932  Dwarf_Unsigned * dw_symtab_list_length,
7933  Dwarf_Error * dw_error);
7934 
7955  Dwarf_Gdbindex dw_gdbindexptr,
7956  Dwarf_Unsigned dw_entryindex,
7957  Dwarf_Unsigned * dw_string_offset,
7958  Dwarf_Unsigned * dw_cu_vector_offset,
7959  Dwarf_Error * dw_error);
7960 
7979  Dwarf_Gdbindex dw_gdbindexptr,
7980  Dwarf_Unsigned dw_cuvector_offset,
7981  Dwarf_Unsigned * dw_innercount,
7982  Dwarf_Error * dw_error);
7983 
8001  Dwarf_Gdbindex dw_gdbindexptr,
8002  Dwarf_Unsigned dw_cuvector_offset_in,
8003  Dwarf_Unsigned dw_innerindex,
8004  Dwarf_Unsigned * dw_field_value,
8005  Dwarf_Error * dw_error);
8006 
8030  Dwarf_Gdbindex dw_gdbindexptr,
8031  Dwarf_Unsigned dw_field_value,
8032  Dwarf_Unsigned * dw_cu_index,
8033  Dwarf_Unsigned * dw_symbol_kind,
8034  Dwarf_Unsigned * dw_is_static,
8035  Dwarf_Error * dw_error);
8036 
8053  Dwarf_Gdbindex dw_gdbindexptr,
8054  Dwarf_Unsigned dw_stringoffset,
8055  const char ** dw_string_ptr,
8056  Dwarf_Error * dw_error);
8098  const char * dw_section_type, /* "tu" or "cu" */
8099  Dwarf_Xu_Index_Header * dw_xuhdr,
8100  Dwarf_Unsigned * dw_version_number,
8101  Dwarf_Unsigned * dw_section_count,
8102  Dwarf_Unsigned * dw_units_count,
8103  Dwarf_Unsigned * dw_hash_slots_count,
8104  const char ** dw_sect_name,
8105  Dwarf_Error * dw_error);
8106 
8116 
8132  Dwarf_Xu_Index_Header dw_xuhdr,
8133  const char ** dw_typename,
8134  const char ** dw_sectionname,
8135  Dwarf_Error * dw_error);
8136 
8169  Dwarf_Unsigned dw_index,
8170  Dwarf_Sig8 * dw_hash_value,
8171  Dwarf_Unsigned * dw_index_to_sections,
8172  Dwarf_Error * dw_error);
8173 
8174 /* Columns 0 to L-1, valid. */
8198  Dwarf_Unsigned dw_column_index,
8199  Dwarf_Unsigned* dw_SECT_number,
8200  const char ** dw_SECT_name,
8201  Dwarf_Error * dw_error);
8202 
8225  Dwarf_Xu_Index_Header dw_xuhdr,
8226  Dwarf_Unsigned dw_row_index,
8227  Dwarf_Unsigned dw_column_index,
8228  Dwarf_Unsigned* dw_sec_offset,
8229  Dwarf_Unsigned* dw_sec_size,
8230  Dwarf_Error * dw_error);
8231 
8254  Dwarf_Debug_Fission_Per_CU * dw_percu_out,
8255  Dwarf_Error * dw_error);
8256 
8275  Dwarf_Sig8 * dw_hash_sig,
8276  const char * dw_cu_type,
8277  Dwarf_Debug_Fission_Per_CU * dw_percu_out,
8278  Dwarf_Error * dw_error);
8279 
8280 /* END debugfission dwp .debug_cu_index
8281  and .debug_tu_index meaningful operations. */
8282 
8377  char ** dw_debuglink_path_returned,
8378  unsigned char ** dw_crc_returned,
8379  char ** dw_debuglink_fullpath_returned,
8380  unsigned int * dw_debuglink_path_length_returned,
8381  unsigned int * dw_buildid_type_returned,
8382  char ** dw_buildid_owner_name_returned,
8383  unsigned char ** dw_buildid_returned,
8384  unsigned int * dw_buildid_length_returned,
8385  char *** dw_paths_returned,
8386  unsigned int * dw_paths_length_returned,
8387  Dwarf_Error* dw_error);
8388 
8421 DW_API int dwarf_suppress_debuglink_crc(int dw_suppress);
8422 
8442  const char * dw_pathname,
8443  Dwarf_Error* dw_error);
8444 
8472 DW_API int dwarf_crc32(Dwarf_Debug dw_dbg,
8473  unsigned char * dw_crcbuf,
8474  Dwarf_Error * dw_error);
8475 
8499 DW_API unsigned int dwarf_basic_crc32(const unsigned char * dw_buf,
8500  unsigned long dw_len,
8501  unsigned int dw_init);
8520 #define DW_HARMLESS_ERROR_CIRCULAR_LIST_DEFAULT_SIZE 4
8521 
8565  unsigned int dw_count,
8566  const char ** dw_errmsg_ptrs_array,
8567  unsigned int * dw_newerr_count);
8568 
8590  Dwarf_Debug dw_dbg,
8591  unsigned int dw_maxcount);
8592 
8605  char * dw_newerror);
8641 DW_API int dwarf_get_ACCESS_name(unsigned int dw_val_in,
8642  const char ** dw_s_out);
8645 DW_API int dwarf_get_ADDR_name(unsigned int dw_val_in,
8646  const char ** dw_s_out);
8649 DW_API int dwarf_get_AT_name(unsigned int dw_val_in,
8650  const char ** dw_s_out);
8653 DW_API int dwarf_get_ATCF_name(unsigned int dw_val_in,
8654  const char ** dw_s_out);
8657 DW_API int dwarf_get_ATE_name(unsigned int dw_val_in,
8658  const char ** dw_s_out);
8661 DW_API int dwarf_get_CC_name(unsigned int dw_val_in,
8662  const char ** dw_s_out);
8665 DW_API int dwarf_get_CFA_name(unsigned int dw_val_in,
8666  const char ** dw_s_out);
8669 DW_API int dwarf_get_children_name(unsigned int dw_val_in,
8670  const char ** dw_s_out);
8673 DW_API int dwarf_get_CHILDREN_name(unsigned int dw_val_in,
8674  const char ** dw_s_out);
8677 DW_API int dwarf_get_DEFAULTED_name(unsigned int dw_val_in,
8678  const char ** dw_s_out);
8681 DW_API int dwarf_get_DS_name(unsigned int dw_val_in,
8682  const char ** dw_s_out);
8685 DW_API int dwarf_get_DSC_name(unsigned int dw_val_in,
8686  const char ** dw_s_out);
8691 DW_API int dwarf_get_GNUIKIND_name(unsigned int dw_val_in,
8692  const char ** dw_s_out);
8697 DW_API int dwarf_get_EH_name(unsigned int dw_val_in,
8698  const char ** dw_s_out);
8701 DW_API int dwarf_get_END_name(unsigned int dw_val_in,
8702  const char ** dw_s_out);
8705 DW_API int dwarf_get_FORM_name(unsigned int dw_val_in,
8706  const char ** dw_s_out);
8713 DW_API int dwarf_get_FRAME_name(unsigned int dw_val_in,
8714  const char ** dw_s_out);
8719 DW_API int dwarf_get_GNUIVIS_name(unsigned int dw_val_in,
8720  const char ** dw_s_out);
8721 
8724 DW_API int dwarf_get_ID_name(unsigned int dw_val_in,
8725  const char ** dw_s_out);
8728 DW_API int dwarf_get_IDX_name(unsigned int dw_val_in,
8729  const char ** dw_s_out);
8732 DW_API int dwarf_get_INL_name(unsigned int dw_val_in,
8733  const char ** dw_s_out);
8736 DW_API int dwarf_get_ISA_name(unsigned int dw_val_in,
8737  const char ** dw_s_out);
8740 DW_API int dwarf_get_LANG_name(unsigned int dw_val_in,
8741  const char ** dw_s_out);
8744 DW_API int dwarf_get_LLE_name(unsigned int dw_val_in,
8745  const char ** dw_s_out);
8751 DW_API int dwarf_get_LLEX_name(unsigned int dw_val_in,
8752  const char ** dw_s_out );
8753 
8756 DW_API int dwarf_get_LNCT_name(unsigned int dw_val_in,
8757  const char ** dw_s_out);
8760 DW_API int dwarf_get_LNE_name(unsigned int dw_val_in,
8761  const char ** dw_s_out);
8764 DW_API int dwarf_get_LNS_name(unsigned int dw_val_in,
8765  const char ** dw_s_out);
8770 DW_API int dwarf_get_MACINFO_name(unsigned int dw_val_in,
8771  const char ** dw_s_out);
8776 DW_API int dwarf_get_MACRO_name(unsigned int dw_val_in,
8777  const char ** dw_s_out);
8780 DW_API int dwarf_get_OP_name(unsigned int dw_val_in,
8781  const char ** dw_s_out);
8784 DW_API int dwarf_get_ORD_name(unsigned int dw_val_in,
8785  const char ** dw_s_out);
8788 DW_API int dwarf_get_RLE_name(unsigned int dw_val_in,
8789  const char ** dw_s_out);
8792 DW_API int dwarf_get_SECT_name(unsigned int dw_val_in,
8793  const char ** dw_s_out);
8796 DW_API int dwarf_get_TAG_name(unsigned int dw_val_in,
8797  const char ** dw_s_out);
8800 DW_API int dwarf_get_UT_name(unsigned int dw_val_in,
8801  const char ** dw_s_out);
8804 DW_API int dwarf_get_VIRTUALITY_name(unsigned int dw_val_in,
8805  const char ** dw_s_out);
8808 DW_API int dwarf_get_VIS_name(unsigned int dw_val_in,
8809  const char ** dw_s_out);
8810 
8822  const char ** dw_s_out);
8877  Dwarf_Bool dw_is_info,
8878  const char **dw_sec_name,
8879  Dwarf_Error *dw_error);
8880 
8888  const char ** dw_sec_name,
8889  Dwarf_Error * dw_error);
8890 
8894  const char ** dw_sec_name_out,
8895  Dwarf_Error * dw_err);
8896 
8940  const char * dw_std_section_name,
8941  const char ** dw_actual_sec_name_out,
8942  Dwarf_Small * dw_marked_zcompressed,
8943  Dwarf_Small * dw_marked_zlib_compressed,
8944  Dwarf_Small * dw_marked_shf_compressed,
8945  Dwarf_Unsigned * dw_compressed_length,
8946  Dwarf_Unsigned * dw_uncompressed_length,
8947  Dwarf_Error * dw_error);
8948 
8954  const char ** dw_section_name_out,
8955  Dwarf_Error * dw_error);
8956 
8963  const char ** dw_section_name_out,
8964  Dwarf_Error * dw_error);
8965 
8970  const char ** dw_section_name_out,
8971  Dwarf_Error * dw_error);
8972 
8977  const char ** dw_section_name_out,
8978  Dwarf_Error * dw_error);
8979 
8980 /* These two get the offset or address size as defined
8981  by the object format (not by DWARF). */
8988  Dwarf_Half * dw_offset_size,
8989  Dwarf_Error * dw_error);
8990 
8997  Dwarf_Half * dw_addr_size,
8998  Dwarf_Error * dw_error);
8999 
9004  const char ** dw_section_name_out,
9005  Dwarf_Error * dw_error);
9006 
9011  const char ** dw_section_name_out,
9012  Dwarf_Error * dw_error);
9013 
9028  const char ** dw_section_name_out,
9029  Dwarf_Error * dw_error);
9030 
9078  const char * dw_section_name,
9079  Dwarf_Addr * dw_section_addr,
9080  Dwarf_Unsigned* dw_section_size,
9081  Dwarf_Unsigned* dw_section_flags,
9082  Dwarf_Unsigned* dw_section_offset,
9083  Dwarf_Error * dw_error);
9084 
9098  const char * dw_section_name,
9099  Dwarf_Addr * dw_section_addr,
9100  Dwarf_Unsigned* dw_section_size,
9101  Dwarf_Error * dw_error);
9102 
9149  int dw_section_index,
9150  const char ** dw_section_name,
9151  Dwarf_Addr* dw_section_addr,
9152  Dwarf_Unsigned* dw_section_size,
9153  Dwarf_Unsigned* dw_section_flags,
9154  Dwarf_Unsigned* dw_section_offset,
9155  Dwarf_Error* dw_error);
9156 
9170  int dw_section_index,
9171  const char ** dw_section_name,
9172  Dwarf_Addr* dw_section_addr,
9173  Dwarf_Unsigned* dw_section_size,
9174  Dwarf_Error* dw_error);
9175 
9254  Dwarf_Small *dw_ftype,
9255  Dwarf_Small *dw_obj_pointersize,
9256  Dwarf_Bool *dw_obj_is_big_endian,
9257  Dwarf_Unsigned *dw_obj_machine, /*architecture*/
9258  Dwarf_Unsigned *dw_obj_flags,
9259  Dwarf_Small *dw_path_source,
9260  Dwarf_Unsigned *dw_ub_offset,
9261  Dwarf_Unsigned *dw_ub_count,
9262  Dwarf_Unsigned *dw_ub_index,
9263  Dwarf_Unsigned *dw_comdat_groupnumber);
9264 
9277 
9297  Dwarf_Unsigned * dw_debug_info_size,
9298  Dwarf_Unsigned * dw_debug_abbrev_size,
9299  Dwarf_Unsigned * dw_debug_line_size,
9300  Dwarf_Unsigned * dw_debug_loc_size,
9301  Dwarf_Unsigned * dw_debug_aranges_size,
9302 
9303  Dwarf_Unsigned * dw_debug_macinfo_size,
9304  Dwarf_Unsigned * dw_debug_pubnames_size,
9305  Dwarf_Unsigned * dw_debug_str_size,
9306  Dwarf_Unsigned * dw_debug_frame_size,
9307  Dwarf_Unsigned * dw_debug_ranges_size,
9308 
9309  Dwarf_Unsigned * dw_debug_pubtypes_size,
9310  Dwarf_Unsigned * dw_debug_types_size,
9311  Dwarf_Unsigned * dw_debug_macro_size,
9312  Dwarf_Unsigned * dw_debug_str_offsets_size,
9313  Dwarf_Unsigned * dw_debug_sup_size,
9314 
9315  Dwarf_Unsigned * dw_debug_cu_index_size,
9316  Dwarf_Unsigned * dw_debug_tu_index_size,
9317  Dwarf_Unsigned * dw_debug_names_size,
9318  Dwarf_Unsigned * dw_debug_loclists_size,
9319  Dwarf_Unsigned * dw_debug_rnglists_size);
9369  Dwarf_Unsigned *dw_section_count_out,
9370  Dwarf_Unsigned *dw_group_count_out,
9371  Dwarf_Unsigned *dw_selected_group_out,
9372  Dwarf_Unsigned *dw_map_entry_count_out,
9373  Dwarf_Error *dw_error);
9374 
9406  Dwarf_Unsigned dw_map_entry_count,
9407  Dwarf_Unsigned *dw_group_numbers_array,
9408  Dwarf_Unsigned *dw_sec_numbers_array,
9409  const char **dw_sec_names_array,
9410  Dwarf_Error *dw_error);
9425 DW_API int dwarf_encode_leb128(Dwarf_Unsigned dw_val,
9426  int *dw_nbytes,
9427  char *dw_space,
9428  int dw_splen);
9429 DW_API int dwarf_encode_signed_leb128(Dwarf_Signed dw_val,
9430  int *dw_nbytes,
9431  char *dw_space,
9432  int dw_splen);
9433 /* Same for LEB decoding routines.
9434  caller sets endptr to an address one past the last valid
9435  address the library should be allowed to
9436  access. */
9437 DW_API int dwarf_decode_leb128(char *dw_leb,
9438  Dwarf_Unsigned *dw_leblen,
9439  Dwarf_Unsigned *dw_outval,
9440  char *dw_endptr);
9441 DW_API int dwarf_decode_signed_leb128(char *dw_leb,
9442  Dwarf_Unsigned *dw_leblen,
9443  Dwarf_Signed *dw_outval,
9444  char *dw_endptr);
9461 DW_API const char * dwarf_package_version(void);
9462 
9478 DW_API int dwarf_set_stringcheck(int dw_stringcheck);
9479 
9501 DW_API int dwarf_set_reloc_application(int dw_apply);
9502 
9528  (void *, const void *, unsigned long);
9529 
9530 /* A global flag in libdwarf. Applies to all Dwarf_Debug */
9531 DW_API extern Dwarf_Cmdline_Options dwarf_cmdline_options;
9532 
9548  Dwarf_Cmdline_Options dw_dd_options);
9549 
9568 DW_API int dwarf_set_de_alloc_flag(int dw_v);
9569 
9592  Dwarf_Debug dw_dbg,
9593  Dwarf_Small dw_value);
9594 
9621  Dwarf_Debug dw_dbg,
9622  Dwarf_Unsigned *dw_current_index,
9623  Dwarf_Unsigned *dw_available_count);
9624 
9643 DW_API int dwarf_object_detector_path_b(const char * dw_path,
9644  char *dw_outpath_buffer,
9645  unsigned long dw_outpathlen,
9646  char ** dw_gl_pathnames,
9647  unsigned int dw_gl_pathcount,
9648  unsigned int *dw_ftype,
9649  unsigned int *dw_endian,
9650  unsigned int *dw_offsetsize,
9651  Dwarf_Unsigned *dw_filesize,
9652  unsigned char *dw_pathsource,
9653  int * dw_errcode);
9654 
9655 /* Solely looks for dSYM */
9656 DW_API int dwarf_object_detector_path_dSYM(const char * dw_path,
9657  char * dw_outpath,
9658  unsigned long dw_outpath_len,
9659  char ** dw_gl_pathnames,
9660  unsigned int dw_gl_pathcount,
9661  unsigned int *dw_ftype,
9662  unsigned int *dw_endian,
9663  unsigned int *dw_offsetsize,
9664  Dwarf_Unsigned *dw_filesize,
9665  unsigned char *dw_pathsource,
9666  int * dw_errcode);
9667 
9668 DW_API int dwarf_object_detector_fd(int dw_fd,
9669  unsigned int *dw_ftype,
9670  unsigned int *dw_endian,
9671  unsigned int *dw_offsetsize,
9672  Dwarf_Unsigned *dw_filesize,
9673  int *dw_errcode);
9674 
9678 #ifdef __cplusplus
9679 }
9680 #endif /* __cplusplus */
9681 #endif /* _LIBDWARF_H */
int dwarf_get_ACCESS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ACCESS_name
int dwarf_get_OP_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_OP_name
int dwarf_get_RLE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_RLE_name
int dwarf_get_ADDR_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ADDR_name
int dwarf_get_ATCF_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_AT_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...
int dwarf_get_END_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_END_name
int dwarf_get_LLE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LLE_name
int dwarf_get_VIRTUALITY_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_VIRTUALITY_name
int dwarf_get_MACRO_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_MACRO_name
int dwarf_get_CHILDREN_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CHILDREN_name
int dwarf_get_SECT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_SECT_name
int dwarf_get_EH_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_EH_name
int dwarf_get_DEFAULTED_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DEFAULTED_name
int dwarf_get_ATE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ATE_name
int dwarf_get_DS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DS_name
int dwarf_get_FORM_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_FORM_name
int dwarf_get_MACINFO_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_MACINFO_name
int dwarf_get_TAG_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_TAG_name
int dwarf_get_LANG_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LANG_name
int dwarf_get_IDX_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_IDX_name
int dwarf_get_GNUIKIND_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_GNUIKIND_name - libdwarf invention
int dwarf_get_DSC_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DSC_name
int dwarf_get_children_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_children_namea - historic misspelling.
int dwarf_get_VIS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_VIS_name
int dwarf_get_ISA_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ISA_name
int dwarf_get_LNE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNE_name
int dwarf_get_ID_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ID_name
int dwarf_get_GNUIVIS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_GNUIVIS_name - a libdwarf invention
int dwarf_get_CC_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CC_name
int dwarf_get_ORD_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ORD_name
int dwarf_get_LNCT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNCT_name
int dwarf_get_AT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_AT_name
int dwarf_get_CFA_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CFA_name
int dwarf_get_UT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_UT_name
int dwarf_get_LLEX_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LLEX_name - a GNU extension.
int dwarf_get_LNS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNS_name
int dwarf_get_FRAME_name(unsigned int dw_val_in, const char **dw_s_out)
This is a set of register names.
int dwarf_get_INL_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_INL_name
int dwarf_get_abbrev_code(Dwarf_Abbrev dw_abbrev, Dwarf_Unsigned *dw_return_code_number, Dwarf_Error *dw_error)
Get Abbreviation Code.
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.
int dwarf_get_abbrev_tag(Dwarf_Abbrev dw_abbrev, Dwarf_Half *dw_return_tag_number, Dwarf_Error *dw_error)
Get abbreviation tag.
int dwarf_get_abbrev_children_flag(Dwarf_Abbrev dw_abbrev, Dwarf_Signed *dw_return_flag, Dwarf_Error *dw_error)
Get Abbrev Children Flag.
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.
struct Dwarf_Xu_Index_Header_s * Dwarf_Xu_Index_Header
Definition: libdwarf.h:693
struct Dwarf_Fde_s * Dwarf_Fde
Definition: libdwarf.h:671
struct Dwarf_Weak_s * Dwarf_Weak
Definition: libdwarf.h:653
struct Dwarf_Regtable3_s Dwarf_Regtable3
struct Dwarf_Debug_Addr_Table_s * Dwarf_Debug_Addr_Table
Definition: libdwarf.h:613
struct Dwarf_Debug_s * Dwarf_Debug
Definition: libdwarf.h:603
struct Dwarf_Regtable_Entry3_s Dwarf_Regtable_Entry3
struct Dwarf_Die_s * Dwarf_Die
Definition: libdwarf.h:608
struct Dwarf_Dnames_Head_s * Dwarf_Dnames_Head
Definition: libdwarf.h:709
void(* dwarf_printf_callback_function_type)(void *dw_user_pointer, const char *dw_linecontent)
Definition: libdwarf.h:394
struct Dwarf_Str_Offsets_Table_s * Dwarf_Str_Offsets_Table
Definition: libdwarf.h:455
struct Dwarf_Gdbindex_s * Dwarf_Gdbindex
Definition: libdwarf.h:687
struct Dwarf_Line_s * Dwarf_Line
Definition: libdwarf.h:619
struct Dwarf_Abbrev_s * Dwarf_Abbrev
Definition: libdwarf.h:665
struct Dwarf_Func_s * Dwarf_Func
Definition: libdwarf.h:641
struct Dwarf_Block_s Dwarf_Block
struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head
Definition: libdwarf.h:852
struct Dwarf_Global_s * Dwarf_Global
Definition: libdwarf.h:625
struct Dwarf_Frame_Instr_Head_s * Dwarf_Frame_Instr_Head
Definition: libdwarf.h:370
struct Dwarf_Error_s * Dwarf_Error
Definition: libdwarf.h:597
struct Dwarf_Gnu_Index_Head_s * Dwarf_Gnu_Index_Head
Definition: libdwarf.h:357
struct Dwarf_Macro_Context_s * Dwarf_Macro_Context
Definition: libdwarf.h:702
struct Dwarf_Line_Context_s * Dwarf_Line_Context
Definition: libdwarf.h:697
struct Dwarf_Sig8_s Dwarf_Sig8
struct Dwarf_Locdesc_c_s * Dwarf_Locdesc_c
Definition: libdwarf.h:341
struct Dwarf_Dsc_Head_s * Dwarf_Dsc_Head
Definition: libdwarf.h:363
struct Dwarf_Form_Data16_s Dwarf_Form_Data16
struct Dwarf_Type_s * Dwarf_Type
Definition: libdwarf.h:634
struct Dwarf_Ranges_s Dwarf_Ranges
struct Dwarf_Loc_Head_c_s * Dwarf_Loc_Head_c
Definition: libdwarf.h:347
struct Dwarf_Cie_s * Dwarf_Cie
Definition: libdwarf.h:676
struct Dwarf_Var_s * Dwarf_Var
Definition: libdwarf.h:647
void(* Dwarf_Handler)(Dwarf_Error dw_error, Dwarf_Ptr dw_errarg)
Definition: libdwarf.h:718
struct Dwarf_Arange_s * Dwarf_Arange
Definition: libdwarf.h:682
struct Dwarf_Attribute_s * Dwarf_Attribute
Definition: libdwarf.h:658
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.
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.
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.
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.
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.
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)
Return the FORM_CLASS applicable. Four pieces of information are necessary to get the correct FORM_CL...
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.
void dwarf_dealloc_uncompressed_block(Dwarf_Debug dw_dbg, void *dw_value_array)
Dealloc what dwarf_uncompress_integer_block_a allocated.
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)
Return an array of discriminant values.
int dwarf_attr_offset(Dwarf_Die dw_die, Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Return the offset of an attribute in its section.
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.
int dwarf_formexprloc(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_return_exprlen, Dwarf_Ptr *dw_block_ptr, Dwarf_Error *dw_error)
Return a pointer-to and length-of a block of data.
int dwarf_formudata(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_returned_val, Dwarf_Error *dw_error)
Return an unsigned value.
void dwarf_dealloc_attribute(Dwarf_Attribute dw_attr)
Dealloc a Dwarf_Attribute When this call returns the dw_attr is a stale pointer.
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....
int dwarf_whatform_direct(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_initial_form, Dwarf_Error *dw_error)
Return the initial form of the Dwarf_Attribute.
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.
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.
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.
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.
int dwarf_formblock(Dwarf_Attribute dw_attr, Dwarf_Block **dw_returned_block, Dwarf_Error *dw_error)
Return an allocated filled-in Form_Block.
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.
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.
int dwarf_formsdata(Dwarf_Attribute dw_attr, Dwarf_Signed *dw_returned_val, Dwarf_Error *dw_error)
Return a signed value.
int dwarf_whatform(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_final_form, Dwarf_Error *dw_error)
Return the form of the Dwarf_Attribute.
int dwarf_formstring(Dwarf_Attribute dw_attr, char **dw_returned_string, Dwarf_Error *dw_error)
Return a pointer to a string.
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.
int dwarf_whatattr(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_attrnum, Dwarf_Error *dw_error)
Return the attribute number of the Dwarf_Attribute.
int dwarf_hasform(Dwarf_Attribute dw_attr, Dwarf_Half dw_form, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Sets TRUE if a Dwarf_Attribute has the indicated FORM.
int dwarf_get_debug_str_index(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_return_index, Dwarf_Error *dw_error)
Return a string index.
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.
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.
int dwarf_global_formref(Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Same as dwarf_global_formref_b except...
int dwarf_formflag(Dwarf_Attribute dw_attr, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Return the flag value of a flag form.
unsigned char Dwarf_Small
Definition: libdwarf.h:204
signed long long Dwarf_Signed
Definition: libdwarf.h:197
unsigned short Dwarf_Half
Definition: libdwarf.h:203
unsigned long long Dwarf_Unsigned
Definition: libdwarf.h:196
void * Dwarf_Ptr
Definition: libdwarf.h:208
int Dwarf_Bool
Definition: libdwarf.h:202
unsigned long long Dwarf_Off
Definition: libdwarf.h:198
unsigned long long Dwarf_Addr
Definition: libdwarf.h:199
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)
Return a CU DIE given a has signature.
int dwarf_siblingof_c(Dwarf_Die dw_die, Dwarf_Die *dw_return_siblingdie, Dwarf_Error *dw_error)
Return the next sibling DIE.
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)
Return DIE given global (not CU-relative) offset.
int dwarf_next_cu_header_e(Dwarf_Debug dw_dbg, Dwarf_Bool dw_is_info, Dwarf_Die *dw_cu_die, 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)
Return information on the next CU header(e).
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)
Return information on the next CU header(d)
Dwarf_Bool dwarf_get_die_infotypes_flag(Dwarf_Die dw_die)
Return the is_info flag.
void dwarf_dealloc_die(Dwarf_Die dw_die)
Deallocate (free) a DIE.
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)
Return a DIE given a Dwarf_Sig8 hash.
int dwarf_child(Dwarf_Die dw_die, Dwarf_Die *dw_return_childdie, Dwarf_Error *dw_error)
Return the child DIE, if any. The child may be the first of a list of sibling DIEs.
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)
Return some CU-relative facts.
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)
Return the first DIE or the next sibling DIE.
void dwarf_dealloc_debug_addr_table(Dwarf_Debug_Addr_Table dw_dat)
dealloc (free) a Dwarf_Attr_Table record.
int dwarf_debug_addr_table(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_section_offset, Dwarf_Debug_Addr_Table *dw_table_header, Dwarf_Unsigned *dw_length, Dwarf_Half *dw_version, Dwarf_Small *dw_address_size, Dwarf_Unsigned *dw_at_addr_base, Dwarf_Unsigned *dw_entry_count, Dwarf_Unsigned *dw_next_table_offset, Dwarf_Error *dw_error)
Return a .debug_addr table.
int dwarf_debug_addr_by_index(Dwarf_Debug_Addr_Table dw_dat, Dwarf_Unsigned dw_entry_index, Dwarf_Unsigned *dw_address, Dwarf_Error *dw_error)
Return .debug_addr address given table index.
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.
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)
Return a the set of values from an entrypool entry.
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.
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.
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)
Return the value set defined by this entry.
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.
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.
void dwarf_dealloc_dnames(Dwarf_Dnames_Head dw_dn)
Frees all the malloc data associated with dw_dn.
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 cu list entry one at a time.
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.
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)
Return basic .debug_sup section header data.
int dwarf_validate_die_sibling(Dwarf_Die dw_sibling, Dwarf_Off *dw_offset)
Validate a sibling DIE.
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)
Return the offset length of the entire CU of a DIE.
int dwarf_srclang(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_lang, Dwarf_Error *dw_error)
Return the value of the DW_AT_language attribute.
int dwarf_lowpc(Dwarf_Die dw_die, Dwarf_Addr *dw_returned_addr, Dwarf_Error *dw_error)
Return the DW_AT_low_pc value.
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.
int dwarf_tag(Dwarf_Die dw_die, Dwarf_Half *dw_return_tag, Dwarf_Error *dw_error)
Get TAG value of DIE.
int dwarf_dietype_offset(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Bool *dw_is_info, Dwarf_Error *dw_error)
Return the offset from the DW_AT_type attribute.
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.
int dwarf_die_abbrev_children_flag(Dwarf_Die dw_die, Dwarf_Half *dw_ab_has_child)
Return TRUE if the DIE has children.
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_Bool dwarf_addr_form_is_indexed(int dw_form)
Informs if a DW_FORM is an indexed form.
Dwarf_Unsigned dwarf_die_abbrev_code(Dwarf_Die dw_die)
Return the DIE abbrev code.
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)
Return the CU DIE section offset given CU header offset.
int dwarf_CU_dieoffset_given_die(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Return the CU DIE offset given any DIE.
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.
int dwarf_arrayorder(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_order, Dwarf_Error *dw_error)
Return the value of the DW_AT_ordering attribute.
int dwarf_bitoffset(Dwarf_Die dw_die, Dwarf_Half *dw_attrnum, Dwarf_Unsigned *dw_returned_offset, Dwarf_Error *dw_error)
Return the bit offset attribute of a DIE.
int dwarf_die_abbrev_global_offset(Dwarf_Die dw_die, Dwarf_Off *dw_abbrev_offset, Dwarf_Unsigned *dw_abbrev_count, Dwarf_Error *dw_error)
Return the abbrev section offset of a DIE's abbrevs.
int dwarf_bitsize(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_size, Dwarf_Error *dw_error)
Return the value of the attribute DW_AT_bitsize.
int dwarf_bytesize(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_size, Dwarf_Error *dw_error)
Return the value of the attribute DW_AT_byte_size.
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)
Return an array of DIE children offsets.
int dwarf_diename(Dwarf_Die dw_die, char **dw_diename, Dwarf_Error *dw_error)
Return the string from a DW_AT_name attribute.
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.
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.
int dwarf_dieoffset(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Return the global section offset of the DIE.
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.
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)
Return the DW_AT_hipc address value.
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.
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,...
char * dwarf_errmsg_by_number(Dwarf_Unsigned dw_errornum)
What message string is associated with the error number.
void dwarf_dealloc_error(Dwarf_Debug dw_dbg, Dwarf_Error dw_error)
Free (dealloc) an Dwarf_Error something created.
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...
char * dwarf_errmsg(Dwarf_Error dw_error)
What message string is in the error?
Dwarf_Unsigned dwarf_errno(Dwarf_Error dw_error)
What DW_DLE code does the error have?
Dwarf_Ranges_Entry_Type
Definition: libdwarf.h:234
Dwarf_Form_Class
Definition: libdwarf.h:269
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.
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...
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_Half dwarf_set_frame_rule_initial_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Rule Initial Value.
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...
int dwarf_get_fde_info_for_reg3_c(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_Signed *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)
Return details about a particular pc and register.
Dwarf_Half dwarf_set_frame_same_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Same Value Default Invariants for setting frame registers .
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_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_Half dwarf_set_frame_cfa_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame CFA Column Invariants for setting frame registers .
void dwarf_dealloc_frame_instr_head(Dwarf_Frame_Instr_Head dw_head)
Deallocates the frame instruction data in dw_head.
int dwarf_get_fde_info_for_all_regs3_b(Dwarf_Fde dw_fde, Dwarf_Addr dw_pc_requested, Dwarf_Regtable3 *dw_reg_table, Dwarf_Addr *dw_row_pc, Dwarf_Bool *dw_has_more_rows, Dwarf_Addr *dw_subsequent_pc, Dwarf_Error *dw_error)
Return information on frame registers at a given pc value.
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.
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)
Return details about a particular pc and register.
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.
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)
Return the FDE data for a single FDE.
Dwarf_Half dwarf_set_frame_undefined_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Undefined Value Default Invariants for setting frame registers .
int dwarf_get_fde_info_for_cfa_reg3_c(Dwarf_Fde dw_fde, Dwarf_Addr dw_pc_requested, Dwarf_Small *dw_value_type, Dwarf_Unsigned *dw_offset_relevant, Dwarf_Unsigned *dw_register, Dwarf_Signed *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.
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)
Return information about a single instruction Fields_description means a sequence of up to three lett...
int dwarf_get_fde_instr_bytes(Dwarf_Fde dw_fde, Dwarf_Small **dw_outinstrs, Dwarf_Unsigned *dw_outlen, Dwarf_Error *dw_error)
Return length and pointer to access frame instructions.
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.
int dwarf_get_cie_of_fde(Dwarf_Fde dw_fde, Dwarf_Cie *dw_cie_returned, Dwarf_Error *dw_error)
Given FDE get CIE.
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.
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.
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)
Return FDE and CIE offsets from debugging info.
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.
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.
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.
int dwarf_get_cie_index(Dwarf_Cie dw_cie, Dwarf_Signed *dw_index, Dwarf_Error *dw_error)
Return CIE index given CIE.
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.
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.
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.
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.
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.
int dwarf_gdbindex_types_culist_array(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_types_list_length, Dwarf_Error *dw_error)
Return the types culist array length.
void dwarf_dealloc_gdbindex(Dwarf_Gdbindex dw_gdbindexptr)
Free (dealloc) all allocated Dwarf_Gdbindex memory It should named dwarf_dealloc_gdbindex.
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.
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.
int dwarf_gdbindex_addressarea(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_addressarea_list_length, Dwarf_Error *dw_error)
Get access to gdbindex address area.
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.
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.
int dwarf_gdbindex_culist_array(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_list_length, Dwarf_Error *dw_error)
Return the culist array length.
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.
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.
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.
void dwarf_gnu_index_dealloc(Dwarf_Gnu_Index_Head dw_head)
Free resources of .debug_gnu_pubnames .debug_gnu_pubtypes.
int dwarf_get_gnu_index_block(Dwarf_Gnu_Index_Head dw_head, Dwarf_Unsigned dw_number, Dwarf_Unsigned *dw_block_length, Dwarf_Half *dw_version, Dwarf_Unsigned *dw_offset_into_debug_info, Dwarf_Unsigned *dw_size_of_debug_info_area, Dwarf_Unsigned *dw_count_of_index_entries, Dwarf_Error *dw_error)
Access a particular block.
int dwarf_get_gnu_index_block_entry(Dwarf_Gnu_Index_Head dw_head, Dwarf_Unsigned dw_blocknumber, Dwarf_Unsigned dw_entrynumber, Dwarf_Unsigned *dw_offset_in_debug_info, const char **dw_name_string, unsigned char *dw_flagbyte, unsigned char *dw_staticorglobal, unsigned char *dw_typeofentry, Dwarf_Error *dw_error)
Access a particular entry of a block.
int dwarf_get_gnu_index_head(Dwarf_Debug dw_dbg, Dwarf_Bool dw_which_section, Dwarf_Gnu_Index_Head *dw_head, Dwarf_Unsigned *dw_index_block_count_out, Dwarf_Error *dw_error)
Access to .debug_gnu_pubnames or .debug_gnu_pubtypes.
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.
void dwarf_insert_harmless_error(Dwarf_Debug dw_dbg, char *dw_newerror)
Harmless Error Insertion is only for testing.
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....
int dwarf_init_path_a(const char *dw_path, char *dw_true_path_out_buffer, unsigned int dw_true_path_bufferlen, unsigned int dw_groupnumber, unsigned int dw_universalnumber, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, Dwarf_Debug *dw_dbg, Dwarf_Error *dw_error)
Initialization based on path.
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.
int dwarf_object_finish(Dwarf_Debug dw_dbg)
Used to close the object_init dw_dbg.
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.
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.
int dwarf_get_tied_dbg(Dwarf_Debug dw_dbg, Dwarf_Debug *dw_tieddbg_out, Dwarf_Error *dw_error)
Use with split dwarf.
int dwarf_init_path_dl_a(const char *dw_path, char *dw_true_path_out_buffer, unsigned int dw_true_path_bufferlen, unsigned int dw_groupnumber, unsigned int dw_universalnumber, 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 based on path with debuglink.
int dwarf_set_tied_dbg(Dwarf_Debug dw_split_dbg, Dwarf_Debug dw_tied_dbg, Dwarf_Error *dw_error)
Use with split dwarf.
int dwarf_finish(Dwarf_Debug dw_dbg)
Close the initialized dw_dbg and free all data libdwarf has for this dw_dbg.
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) fd.
int dwarf_lineno(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_linenum, Dwarf_Error *dw_error)
Read Line line register.
int dwarf_srclines_include_dir_count(Dwarf_Line_Context dw_line_context, Dwarf_Signed *dw_count, Dwarf_Error *dw_error)
Return the number of include directories in the Line Table.
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.
int dwarf_lineoff_b(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_lineoffset, Dwarf_Error *dw_error)
Return a column number through the pointer.
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....
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.
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)
Return values easing indexing line table file numbers. Count is the real count of files array entries...
int dwarf_lineendsequence(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Read Line endsequence register flag.
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 ...
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.
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.
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.
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.
int dwarf_linebeginstatement(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Read Line beginstatement register.
int dwarf_line_srcfileno(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_filenum, Dwarf_Error *dw_error)
Read Line file register.
int dwarf_lineaddr(Dwarf_Line dw_line, Dwarf_Addr *dw_returned_addr, Dwarf_Error *dw_error)
Return the address of the Dwarf_Line.
int dwarf_srclines_table_offset(Dwarf_Line_Context dw_context, Dwarf_Unsigned *dw_offset, Dwarf_Error *dw_error)
Return the srclines table offset.
int dwarf_srclines_include_dir_data(Dwarf_Line_Context dw_line_context, Dwarf_Signed dw_index, const char **dw_name, Dwarf_Error *dw_error)
Return the include directories in the Line Table.
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.
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)
Return various line table registers in one call.
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.
void dwarf_srclines_dealloc_b(Dwarf_Line_Context dw_context)
Dealloc the memory allocated by 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.
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.
int dwarf_print_lines(Dwarf_Die dw_cu_die, Dwarf_Error *dw_error, int *dw_errorcount_out)
Print line information in great detail.
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....
int dwarf_lineblock(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Return the basic_block line register.
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....
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.
int dwarf_linesrc(Dwarf_Line dw_line, char **dw_returned_name, Dwarf_Error *dw_error)
Return the file name applicable to the Dwarf_Line.
int dwarf_line_subprogno(Dwarf_Line, Dwarf_Unsigned *, Dwarf_Error *)
Two-level line tables get subprogram number Experimental two level line tables. Not explained here....
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.
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.
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_Half 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.
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.
int dwarf_get_locdesc_entry_e(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_Unsigned *dw_lle_bytecount, 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(_e) of a location expression.
int dwarf_load_loclists(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_loclists_count, Dwarf_Error *dw_error)
Load Loclists.
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(_d) of a location expression.
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.
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.
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.
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.
void dwarf_dealloc_loc_head_c(Dwarf_Loc_Head_c dw_head)
Dealloc (free) all memory allocated for Dwarf_Loc_Head_c.
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.
char * dwarf_find_macro_value_start(char *dw_macro_string)
Return a pointer to the value part of a macro.
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.
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.
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.
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.
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.
void dwarf_dealloc_macro_context(Dwarf_Macro_Context dw_mc)
Dealloc a macro context.
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.
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.
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.
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.
void(*)(void *, const void *, unsigned long) dwarf_get_endian_copy_function(Dwarf_Debug dw_dbg)
Get a pointer to the applicable swap/noswap function.
Definition: libdwarf.h:9527
int dwarf_set_de_alloc_flag(int dw_v)
Eliminate libdwarf tracking of allocations Independent of any Dwarf_Debug and applicable to all whene...
int dwarf_set_reloc_application(int dw_apply)
Set libdwarf response to *.rela relocations.
int dwarf_set_stringcheck(int dw_stringcheck)
Turn off libdwarf checks of strings.
const char * dwarf_package_version(void)
Return the version string in the library.
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_Small dwarf_set_default_address_size(Dwarf_Debug dw_dbg, Dwarf_Small dw_value)
Set the address size on a Dwarf_Debug.
int dwarf_get_universalbinary_count(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_current_index, Dwarf_Unsigned *dw_available_count)
Retrieve universal binary index.
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.
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.
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.
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.
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.
int dwarf_get_section_info_by_index_a(Dwarf_Debug dw_dbg, int dw_section_index, const char **dw_section_name, Dwarf_Addr *dw_section_addr, Dwarf_Unsigned *dw_section_size, Dwarf_Unsigned *dw_section_flags, Dwarf_Unsigned *dw_section_offset, Dwarf_Error *dw_error)
Given a section index, get its size and address, etc.
int dwarf_machine_architecture(Dwarf_Debug dw_dbg, Dwarf_Small *dw_ftype, Dwarf_Small *dw_obj_pointersize, Dwarf_Bool *dw_obj_is_big_endian, Dwarf_Unsigned *dw_obj_machine, Dwarf_Unsigned *dw_obj_flags, Dwarf_Small *dw_path_source, Dwarf_Unsigned *dw_ub_offset, Dwarf_Unsigned *dw_ub_count, Dwarf_Unsigned *dw_ub_index, Dwarf_Unsigned *dw_comdat_groupnumber)
Get basic object information from Dwarf_Debug.
int dwarf_get_section_info_by_name_a(Dwarf_Debug dw_dbg, const char *dw_section_name, Dwarf_Addr *dw_section_addr, Dwarf_Unsigned *dw_section_size, Dwarf_Unsigned *dw_section_flags, Dwarf_Unsigned *dw_section_offset, Dwarf_Error *dw_error)
Given a section name, get its size, address, etc.
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.
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.
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.
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.
int dwarf_get_offset_size(Dwarf_Debug dw_dbg, Dwarf_Half *dw_offset_size, Dwarf_Error *dw_error)
Get offset size as defined by the object.
Dwarf_Unsigned dwarf_get_section_count(Dwarf_Debug dw_dbg)
Get section count (of object file sections).
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.
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.
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.
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.
int dwarf_get_address_size(Dwarf_Debug dw_dbg, Dwarf_Half *dw_addr_size, Dwarf_Error *dw_error)
Get the address size as defined by the object.
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_Half dwarf_global_tag_number(Dwarf_Global dw_global)
Return the DW_TAG number of a global entry.
int dwarf_global_cu_offset(Dwarf_Global dw_global, Dwarf_Off *dw_cu_header_offset, Dwarf_Error *dw_error)
Return the CU header data of a global data item.
int dwarf_globals_by_type(Dwarf_Debug dw_dbg, int dw_requested_section, Dwarf_Global **dw_contents, Dwarf_Signed *dw_count, Dwarf_Error *dw_error)
Allocate Any Fast Access DWARF2-DWARF4.
int dwarf_global_name_offsets(Dwarf_Global dw_global, char **dw_returned_name, Dwarf_Off *dw_die_offset, Dwarf_Off *dw_cu_die_offset, Dwarf_Error *dw_error)
Return the name and offsets of a global entry.
int dwarf_globname(Dwarf_Global dw_global, char **dw_returned_name, Dwarf_Error *dw_error)
Return the name of a global-like data item.
int dwarf_get_pubtypes(Dwarf_Debug dw_dbg, Dwarf_Global **dw_pubtypes, Dwarf_Signed *dw_number_of_pubtypes, Dwarf_Error *dw_error)
Global debug_types access.
int dwarf_return_empty_pubnames(Dwarf_Debug dw_dbg, int dw_flag)
A flag for dwarfdump on pubnames, pubtypes etc.
void dwarf_globals_dealloc(Dwarf_Debug dw_dbg, Dwarf_Global *dw_global_like, Dwarf_Signed dw_count)
Dealloc the Dwarf_Global data.
int dwarf_global_die_offset(Dwarf_Global dw_global, Dwarf_Off *dw_die_offset, Dwarf_Error *dw_error)
Return the DIE offset of a global data item.
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.
int dwarf_get_globals_header(Dwarf_Global dw_global, int *dw_category, 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.
int dwarf_get_ranges_baseaddress(Dwarf_Debug dw_dbg, Dwarf_Die dw_die, Dwarf_Bool *dw_known_base, Dwarf_Unsigned *dw_baseaddress, Dwarf_Bool *dw_at_ranges_offset_present, Dwarf_Unsigned *dw_at_ranges_offset, Dwarf_Error *dw_error)
Find ranges base address.
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.
void dwarf_dealloc_ranges(Dwarf_Debug dw_dbg, Dwarf_Ranges *dw_rangesbuf, Dwarf_Signed dw_rangecount)
Dealloc the array dw_rangesbuf.
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.
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.
int dwarf_load_rnglists(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_rnglists_count, Dwarf_Error *dw_error)
Loads all .debug_rnglists headers.
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.
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.
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.
void dwarf_dealloc_rnglists_head(Dwarf_Rnglists_Head dw_head)
Dealloc a Dwarf_Rnglists_Head.
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.
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.
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)
Return a map between group numbers and section numbers.
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.
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.
void dwarf_dealloc_xu_header(Dwarf_Xu_Index_Header dw_xuhdr)
Dealloc (free) memory associated with dw_xuhdr.
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.
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.
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.
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.
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.
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.
int dwarf_open_str_offsets_table_access(Dwarf_Debug dw_dbg, Dwarf_Str_Offsets_Table *dw_table_data, Dwarf_Error *dw_error)
Creates access to a .debug_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.
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.
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.
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.
Definition: libdwarf.h:330
Definition: libdwarf.h:441
Definition: libdwarf.h:824
Definition: libdwarf.h:302
Definition: libdwarf.h:728
Definition: libdwarf.h:815
Definition: libdwarf.h:796
Definition: libdwarf.h:778
Definition: libdwarf.h:413
Definition: libdwarf.h:469
Definition: libdwarf.h:581
Definition: libdwarf.h:553
Definition: libdwarf.h:313