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.9.2"
103 #define DW_LIBDWARF_VERSION_MAJOR 0
104 #define DW_LIBDWARF_VERSION_MINOR 9
105 #define DW_LIBDWARF_VERSION_MICRO 2
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 */
224 enum Dwarf_Ranges_Entry_Type { DW_RANGES_ENTRY,
225  DW_RANGES_ADDRESS_SELECTION,
226  DW_RANGES_END
227 };
228 
260  DW_FORM_CLASS_UNKNOWN = 0,
261  DW_FORM_CLASS_ADDRESS = 1,
262  DW_FORM_CLASS_BLOCK = 2,
263  DW_FORM_CLASS_CONSTANT =3,
264  DW_FORM_CLASS_EXPRLOC = 4,
265  DW_FORM_CLASS_FLAG = 5,
266  DW_FORM_CLASS_LINEPTR = 6,
267  DW_FORM_CLASS_LOCLISTPTR=7, /* DWARF2,3,4 only */
268  DW_FORM_CLASS_MACPTR = 8, /* DWARF2,3,4 only */
269  DW_FORM_CLASS_RANGELISTPTR=9, /* DWARF2,3,4 only */
270  DW_FORM_CLASS_REFERENCE=10,
271  DW_FORM_CLASS_STRING = 11,
272  DW_FORM_CLASS_FRAMEPTR= 12, /* MIPS/IRIX DWARF2 only */
273  DW_FORM_CLASS_MACROPTR= 13, /* DWARF5 */
274  DW_FORM_CLASS_ADDRPTR = 14, /* DWARF5 */
275  DW_FORM_CLASS_LOCLIST = 15, /* DWARF5 */
276  DW_FORM_CLASS_LOCLISTSPTR=16, /* DWARF5 */
277  DW_FORM_CLASS_RNGLIST =17, /* DWARF5 */
278  DW_FORM_CLASS_RNGLISTSPTR=18, /* DWARF5 */
279  DW_FORM_CLASS_STROFFSETSPTR=19 /* DWARF5 */
280 };
292 typedef struct Dwarf_Form_Data16_s {
293  unsigned char fd_data[16];
295 
303 typedef struct Dwarf_Sig8_s {
304  char signature[8];
306 
320 typedef struct Dwarf_Block_s {
321  Dwarf_Unsigned bl_len;
322  Dwarf_Ptr bl_data;
323  Dwarf_Small bl_from_loclist;
324  Dwarf_Unsigned bl_section_offset;
326 
331 typedef struct Dwarf_Locdesc_c_s * Dwarf_Locdesc_c;
332 
337 typedef struct Dwarf_Loc_Head_c_s * Dwarf_Loc_Head_c;
338 
347 typedef struct Dwarf_Gnu_Index_Head_s * Dwarf_Gnu_Index_Head;
348 
353 typedef struct Dwarf_Dsc_Head_s * Dwarf_Dsc_Head;
354 
360 typedef struct Dwarf_Frame_Instr_Head_s * Dwarf_Frame_Instr_Head;
361 
384  (void * dw_user_pointer, const char * dw_linecontent);
385 
404  void * dp_user_pointer;
406  char * dp_buffer;
407  unsigned int dp_buffer_len;
408  int dp_buffer_user_provided;
409  void * dp_reserved;
410 };
411 
432  Dwarf_Bool check_verbose_mode;
433 };
438 
445 typedef struct Dwarf_Str_Offsets_Table_s * Dwarf_Str_Offsets_Table;
446 
452 typedef struct Dwarf_Ranges_s {
453  Dwarf_Addr dwr_addr1;
454  Dwarf_Addr dwr_addr2;
455  enum Dwarf_Ranges_Entry_Type dwr_type;
457 
536 typedef struct Dwarf_Regtable_Entry3_s {
537  Dwarf_Small dw_offset_relevant;
538  Dwarf_Small dw_value_type;
539  Dwarf_Half dw_regnum;
540  Dwarf_Unsigned dw_offset; /* Should be Dwarf_Signed */
541  Dwarf_Unsigned dw_args_size; /* Always zero. */
542  Dwarf_Block dw_block;
544 
564 typedef struct Dwarf_Regtable3_s {
565  struct Dwarf_Regtable_Entry3_s rt3_cfa_rule;
566  Dwarf_Half rt3_reg_table_size;
567  struct Dwarf_Regtable_Entry3_s * rt3_rules;
569 
570 /* Opaque types for Consumer Library. */
580 typedef struct Dwarf_Error_s* Dwarf_Error;
581 
586 typedef struct Dwarf_Debug_s* Dwarf_Debug;
587 
591 typedef struct Dwarf_Die_s* Dwarf_Die;
592 
596 typedef struct Dwarf_Debug_Addr_Table_s* Dwarf_Debug_Addr_Table;
597 
602 typedef struct Dwarf_Line_s* Dwarf_Line;
603 
608 typedef struct Dwarf_Global_s* Dwarf_Global;
609 
617 typedef struct Dwarf_Type_s* Dwarf_Type;
618 
624 typedef struct Dwarf_Func_s* Dwarf_Func;
630 typedef struct Dwarf_Var_s* Dwarf_Var;
636 typedef struct Dwarf_Weak_s* Dwarf_Weak;
637 
641 typedef struct Dwarf_Attribute_s* Dwarf_Attribute;
642 
648 typedef struct Dwarf_Abbrev_s* Dwarf_Abbrev;
649 
654 typedef struct Dwarf_Fde_s* Dwarf_Fde;
659 typedef struct Dwarf_Cie_s* Dwarf_Cie;
660 
665 typedef struct Dwarf_Arange_s* Dwarf_Arange;
670 typedef struct Dwarf_Gdbindex_s* Dwarf_Gdbindex;
676 typedef struct Dwarf_Xu_Index_Header_s *Dwarf_Xu_Index_Header;
680 typedef struct Dwarf_Line_Context_s *Dwarf_Line_Context;
681 
685 typedef struct Dwarf_Macro_Context_s *Dwarf_Macro_Context;
686 
692 typedef struct Dwarf_Dnames_Head_s *Dwarf_Dnames_Head;
693 
701 typedef void (*Dwarf_Handler)(Dwarf_Error dw_error,
702  Dwarf_Ptr dw_errarg);
703 
712  Dwarf_Off dmd_offset; /* offset, in the section,
713  of this macro info */
714  Dwarf_Small dmd_type; /* the type, DW_MACINFO_define etc*/
715  Dwarf_Signed dmd_lineno; /* the source line number where
716  applicable and vend_def number if
717  vendor_extension op */
718  Dwarf_Signed dmd_fileindex;/* the source file index */
719  char * dmd_macro; /* macro name string */
720 };
726 
731 typedef struct Dwarf_Debug_Fission_Per_CU_s
733 
734 /* ===== BEGIN Obj_Access data ===== */
740 typedef struct Dwarf_Obj_Access_Interface_a_s
742 
748 typedef struct Dwarf_Obj_Access_Methods_a_s
750 
759 typedef struct Dwarf_Obj_Access_Section_a_s
762  const char* as_name;
763  Dwarf_Unsigned as_type;
764  Dwarf_Unsigned as_flags;
765  Dwarf_Addr as_addr;
766  Dwarf_Unsigned as_offset;
767  Dwarf_Unsigned as_size;
768  Dwarf_Unsigned as_link;
769  Dwarf_Unsigned as_info;
770  Dwarf_Unsigned as_addralign;
771  Dwarf_Unsigned as_entrysize;
772 };
773 
780  int (*om_get_section_info)(void* obj,
781  Dwarf_Unsigned section_index,
782  Dwarf_Obj_Access_Section_a* return_section,
783  int * error);
784  Dwarf_Small (*om_get_byte_order)(void* obj);
785  Dwarf_Small (*om_get_length_size)(void* obj);
786  Dwarf_Small (*om_get_pointer_size)(void* obj);
787  Dwarf_Unsigned (*om_get_filesize)(void* obj);
788  Dwarf_Unsigned (*om_get_section_count)(void* obj);
789  int (*om_load_section)(void* obj,
790  Dwarf_Unsigned section_index,
791  Dwarf_Small** return_data,
792  int * error);
793  int (*om_relocate_a_section)(void* obj,
794  Dwarf_Unsigned section_index,
795  Dwarf_Debug dbg,
796  int * error);
797 };
799  void* ai_object;
800  const Dwarf_Obj_Access_Methods_a *ai_methods;
801 };
802 /* ===== END Obj_Access data ===== */
803 
804 /* User code must allocate this struct, zero it,
805  and pass a pointer to it
806  into dwarf_get_debugfission_for_cu . */
808  /* Do not free the string. It contains "cu" or "tu". */
809  /* If this is not set (ie, not a CU/TU in DWP Package File)
810  then pcu_type will be NULL. */
811  const char * pcu_type;
812  /* pcu_index is the index (range 1 to N )
813  into the tu/cu table of offsets and the table
814  of sizes. 1 to N as the zero index is reserved
815  for special purposes. Not a value one
816  actually needs. */
817  Dwarf_Unsigned pcu_index;
818  Dwarf_Sig8 pcu_hash; /* 8 byte */
819  /* [0] has offset and size 0.
820  [1]-[8] are DW_SECT_* indexes and the
821  values are the offset and size
822  of the respective section contribution
823  of a single .dwo object. When pcu_size[n] is
824  zero the corresponding section is not present. */
825  Dwarf_Unsigned pcu_offset[DW_FISSION_SECT_COUNT];
826  Dwarf_Unsigned pcu_size[DW_FISSION_SECT_COUNT];
827  Dwarf_Unsigned unused1;
828  Dwarf_Unsigned unused2;
829 };
830 
835 typedef struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head;
836 
842 /* Special values for offset_into_exception_table field
843  of dwarf fde's
844  The following value indicates that there is no
845  Exception table offset
846  associated with a dwarf frame.
847 */
848 #define DW_DLX_NO_EH_OFFSET (-1LL)
849 /* The following value indicates that the producer
850  was unable to analyze the
851  source file to generate Exception tables for this function.
852 */
853 #define DW_DLX_EH_OFFSET_UNAVAILABLE (-2LL)
854 
855 /* The augmenter string for CIE */
856 #define DW_CIE_AUGMENTER_STRING_V0 "z"
857 
858 /* ***IMPORTANT NOTE, TARGET DEPENDENCY ****
859  DW_REG_TABLE_SIZE must be at least as large as
860  the number of registers
861  DW_FRAME_LAST_REG_NUM as defined in dwarf.h
862 */
863 #ifndef DW_REG_TABLE_SIZE
864 #define DW_REG_TABLE_SIZE DW_FRAME_LAST_REG_NUM
865 #endif
866 
867 /* For MIPS, DW_FRAME_SAME_VAL is the correct default value
868  for a frame register value. For other CPUS another value
869  may be better, such as DW_FRAME_UNDEFINED_VAL.
870  See dwarf_set_frame_rule_table_size
871 */
872 #ifndef DW_FRAME_REG_INITIAL_VALUE
873 #define DW_FRAME_REG_INITIAL_VALUE DW_FRAME_SAME_VAL
874 #endif
875 
876 /* The following are all needed to evaluate DWARF3 register rules.
877  These have nothing to do simply printing
878  frame instructions.
879 */
880 #define DW_EXPR_OFFSET 0 /* offset is from CFA reg */
881 #define DW_EXPR_VAL_OFFSET 1
882 #define DW_EXPR_EXPRESSION 2
883 #define DW_EXPR_VAL_EXPRESSION 3
894 #define DW_DLA_STRING 0x01 /* char* */
895 #define DW_DLA_LOC 0x02 /* Dwarf_Loc */
896 #define DW_DLA_LOCDESC 0x03 /* Dwarf_Locdesc */
897 #define DW_DLA_ELLIST 0x04 /* Dwarf_Ellist (not used)*/
898 #define DW_DLA_BOUNDS 0x05 /* Dwarf_Bounds (not used) */
899 #define DW_DLA_BLOCK 0x06 /* Dwarf_Block */
900 #define DW_DLA_DEBUG 0x07 /* Dwarf_Debug */
901 #define DW_DLA_DIE 0x08 /* Dwarf_Die */
902 #define DW_DLA_LINE 0x09 /* Dwarf_Line */
903 #define DW_DLA_ATTR 0x0a /* Dwarf_Attribute */
904 #define DW_DLA_TYPE 0x0b /* Dwarf_Type (not used) */
905 #define DW_DLA_SUBSCR 0x0c /* Dwarf_Subscr (not used) */
906 #define DW_DLA_GLOBAL 0x0d /* Dwarf_Global */
907 #define DW_DLA_ERROR 0x0e /* Dwarf_Error */
908 #define DW_DLA_LIST 0x0f /* a list */
909 #define DW_DLA_LINEBUF 0x10 /* Dwarf_Line* (not used) */
910 #define DW_DLA_ARANGE 0x11 /* Dwarf_Arange */
911 #define DW_DLA_ABBREV 0x12 /* Dwarf_Abbrev */
912 #define DW_DLA_FRAME_INSTR_HEAD 0x13 /* Dwarf_Frame_Instr_Head */
913 #define DW_DLA_CIE 0x14 /* Dwarf_Cie */
914 #define DW_DLA_FDE 0x15 /* Dwarf_Fde */
915 #define DW_DLA_LOC_BLOCK 0x16 /* Dwarf_Loc */
916 
917 #define DW_DLA_FRAME_OP 0x17 /* Dwarf_Frame_Op (not used) */
918 #define DW_DLA_FUNC 0x18 /* Dwarf_Func */
919 #define DW_DLA_UARRAY 0x19 /* Array of Dwarf_Off:Jan2023 */
920 #define DW_DLA_VAR 0x1a /* Dwarf_Var */
921 #define DW_DLA_WEAK 0x1b /* Dwarf_Weak */
922 #define DW_DLA_ADDR 0x1c /* Dwarf_Addr sized entries */
923 #define DW_DLA_RANGES 0x1d /* Dwarf_Ranges */
924 /* 0x1e (30) to 0x34 (52) reserved for internal to libdwarf types. */
925 /* .debug_gnu_typenames/pubnames, 2020 */
926 #define DW_DLA_GNU_INDEX_HEAD 0x35
927 
928 #define DW_DLA_RNGLISTS_HEAD 0x36 /* .debug_rnglists DW5 */
929 #define DW_DLA_GDBINDEX 0x37 /* Dwarf_Gdbindex */
930 #define DW_DLA_XU_INDEX 0x38 /* Dwarf_Xu_Index_Header */
931 #define DW_DLA_LOC_BLOCK_C 0x39 /* Dwarf_Loc_c*/
932 #define DW_DLA_LOCDESC_C 0x3a /* Dwarf_Locdesc_c */
933 #define DW_DLA_LOC_HEAD_C 0x3b /* Dwarf_Loc_Head_c */
934 #define DW_DLA_MACRO_CONTEXT 0x3c /* Dwarf_Macro_Context */
935 /* 0x3d (61) is for libdwarf internal use. */
936 #define DW_DLA_DSC_HEAD 0x3e /* Dwarf_Dsc_Head */
937 #define DW_DLA_DNAMES_HEAD 0x3f /* Dwarf_Dnames_Head */
938 
939 /* struct Dwarf_Str_Offsets_Table_s */
940 #define DW_DLA_STR_OFFSETS 0x40
941 /* struct Dwarf_Debug_Addr_Table_s */
942 #define DW_DLA_DEBUG_ADDR 0x41
954 /* libdwarf error numbers */
955 #define DW_DLE_NE 0 /* no error */
956 #define DW_DLE_VMM 1 /* dwarf format/library version mismatch */
957 #define DW_DLE_MAP 2 /* memory map failure */
958 #define DW_DLE_LEE 3 /* libelf error */
959 #define DW_DLE_NDS 4 /* no debug section */
960 #define DW_DLE_NLS 5 /* no line section */
961 #define DW_DLE_ID 6 /* invalid descriptor for query */
962 #define DW_DLE_IOF 7 /* I/O failure */
963 #define DW_DLE_MAF 8 /* memory allocation failure */
964 #define DW_DLE_IA 9 /* invalid argument */
965 #define DW_DLE_MDE 10 /* mangled debugging entry */
966 #define DW_DLE_MLE 11 /* mangled line number entry */
967 #define DW_DLE_FNO 12 /* file not open */
968 #define DW_DLE_FNR 13 /* file not a regular file */
969 #define DW_DLE_FWA 14 /* file open with wrong access */
970 #define DW_DLE_NOB 15 /* not an object file */
971 #define DW_DLE_MOF 16 /* mangled object file header */
972 #define DW_DLE_EOLL 17 /* end of location list entries */
973 #define DW_DLE_NOLL 18 /* no location list section */
974 #define DW_DLE_BADOFF 19 /* Invalid offset */
975 #define DW_DLE_EOS 20 /* end of section */
976 #define DW_DLE_ATRUNC 21 /* abbreviations section appears truncated*/
977 #define DW_DLE_BADBITC 22 /* Address size passed to dwarf bad,*/
978  /* It is not an allowed size (64 or 32) */
979  /* Error codes defined by the current Libdwarf Implementation. */
980 #define DW_DLE_DBG_ALLOC 23
981 #define DW_DLE_FSTAT_ERROR 24
982 #define DW_DLE_FSTAT_MODE_ERROR 25
983 #define DW_DLE_INIT_ACCESS_WRONG 26
984 #define DW_DLE_ELF_BEGIN_ERROR 27
985 #define DW_DLE_ELF_GETEHDR_ERROR 28
986 #define DW_DLE_ELF_GETSHDR_ERROR 29
987 #define DW_DLE_ELF_STRPTR_ERROR 30
988 #define DW_DLE_DEBUG_INFO_DUPLICATE 31
989 #define DW_DLE_DEBUG_INFO_NULL 32
990 #define DW_DLE_DEBUG_ABBREV_DUPLICATE 33
991 #define DW_DLE_DEBUG_ABBREV_NULL 34
992 #define DW_DLE_DEBUG_ARANGES_DUPLICATE 35
993 #define DW_DLE_DEBUG_ARANGES_NULL 36
994 #define DW_DLE_DEBUG_LINE_DUPLICATE 37
995 #define DW_DLE_DEBUG_LINE_NULL 38
996 #define DW_DLE_DEBUG_LOC_DUPLICATE 39
997 #define DW_DLE_DEBUG_LOC_NULL 40
998 #define DW_DLE_DEBUG_MACINFO_DUPLICATE 41
999 #define DW_DLE_DEBUG_MACINFO_NULL 42
1000 #define DW_DLE_DEBUG_PUBNAMES_DUPLICATE 43
1001 #define DW_DLE_DEBUG_PUBNAMES_NULL 44
1002 #define DW_DLE_DEBUG_STR_DUPLICATE 45
1003 #define DW_DLE_DEBUG_STR_NULL 46
1004 #define DW_DLE_CU_LENGTH_ERROR 47
1005 #define DW_DLE_VERSION_STAMP_ERROR 48
1006 #define DW_DLE_ABBREV_OFFSET_ERROR 49
1007 #define DW_DLE_ADDRESS_SIZE_ERROR 50
1008 #define DW_DLE_DEBUG_INFO_PTR_NULL 51
1009 #define DW_DLE_DIE_NULL 52
1010 #define DW_DLE_STRING_OFFSET_BAD 53
1011 #define DW_DLE_DEBUG_LINE_LENGTH_BAD 54
1012 #define DW_DLE_LINE_PROLOG_LENGTH_BAD 55
1013 #define DW_DLE_LINE_NUM_OPERANDS_BAD 56
1014 #define DW_DLE_LINE_SET_ADDR_ERROR 57
1015 #define DW_DLE_LINE_EXT_OPCODE_BAD 58
1016 #define DW_DLE_DWARF_LINE_NULL 59
1017 #define DW_DLE_INCL_DIR_NUM_BAD 60
1018 #define DW_DLE_LINE_FILE_NUM_BAD 61
1019 #define DW_DLE_ALLOC_FAIL 62
1020 #define DW_DLE_NO_CALLBACK_FUNC 63
1021 #define DW_DLE_SECT_ALLOC 64
1022 #define DW_DLE_FILE_ENTRY_ALLOC 65
1023 #define DW_DLE_LINE_ALLOC 66
1024 #define DW_DLE_FPGM_ALLOC 67
1025 #define DW_DLE_INCDIR_ALLOC 68
1026 #define DW_DLE_STRING_ALLOC 69
1027 #define DW_DLE_CHUNK_ALLOC 70
1028 #define DW_DLE_BYTEOFF_ERR 71
1029 #define DW_DLE_CIE_ALLOC 72
1030 #define DW_DLE_FDE_ALLOC 73
1031 #define DW_DLE_REGNO_OVFL 74
1032 #define DW_DLE_CIE_OFFS_ALLOC 75
1033 #define DW_DLE_WRONG_ADDRESS 76
1034 #define DW_DLE_EXTRA_NEIGHBORS 77
1035 #define DW_DLE_WRONG_TAG 78
1036 #define DW_DLE_DIE_ALLOC 79
1037 #define DW_DLE_PARENT_EXISTS 80
1038 #define DW_DLE_DBG_NULL 81
1039 #define DW_DLE_DEBUGLINE_ERROR 82
1040 #define DW_DLE_DEBUGFRAME_ERROR 83
1041 #define DW_DLE_DEBUGINFO_ERROR 84
1042 #define DW_DLE_ATTR_ALLOC 85
1043 #define DW_DLE_ABBREV_ALLOC 86
1044 #define DW_DLE_OFFSET_UFLW 87
1045 #define DW_DLE_ELF_SECT_ERR 88
1046 #define DW_DLE_DEBUG_FRAME_LENGTH_BAD 89
1047 #define DW_DLE_FRAME_VERSION_BAD 90
1048 #define DW_DLE_CIE_RET_ADDR_REG_ERROR 91
1049 #define DW_DLE_FDE_NULL 92
1050 #define DW_DLE_FDE_DBG_NULL 93
1051 #define DW_DLE_CIE_NULL 94
1052 #define DW_DLE_CIE_DBG_NULL 95
1053 #define DW_DLE_FRAME_TABLE_COL_BAD 96
1054 #define DW_DLE_PC_NOT_IN_FDE_RANGE 97
1055 #define DW_DLE_CIE_INSTR_EXEC_ERROR 98
1056 #define DW_DLE_FRAME_INSTR_EXEC_ERROR 99
1057 #define DW_DLE_FDE_PTR_NULL 100
1058 #define DW_DLE_RET_OP_LIST_NULL 101
1059 #define DW_DLE_LINE_CONTEXT_NULL 102
1060 #define DW_DLE_DBG_NO_CU_CONTEXT 103
1061 #define DW_DLE_DIE_NO_CU_CONTEXT 104
1062 #define DW_DLE_FIRST_DIE_NOT_CU 105
1063 #define DW_DLE_NEXT_DIE_PTR_NULL 106
1064 #define DW_DLE_DEBUG_FRAME_DUPLICATE 107
1065 #define DW_DLE_DEBUG_FRAME_NULL 108
1066 #define DW_DLE_ABBREV_DECODE_ERROR 109
1067 #define DW_DLE_DWARF_ABBREV_NULL 110
1068 #define DW_DLE_ATTR_NULL 111
1069 #define DW_DLE_DIE_BAD 112
1070 #define DW_DLE_DIE_ABBREV_BAD 113
1071 #define DW_DLE_ATTR_FORM_BAD 114
1072 #define DW_DLE_ATTR_NO_CU_CONTEXT 115
1073 #define DW_DLE_ATTR_FORM_SIZE_BAD 116
1074 #define DW_DLE_ATTR_DBG_NULL 117
1075 #define DW_DLE_BAD_REF_FORM 118
1076 #define DW_DLE_ATTR_FORM_OFFSET_BAD 119
1077 #define DW_DLE_LINE_OFFSET_BAD 120
1078 #define DW_DLE_DEBUG_STR_OFFSET_BAD 121
1079 #define DW_DLE_STRING_PTR_NULL 122
1080 #define DW_DLE_PUBNAMES_VERSION_ERROR 123
1081 #define DW_DLE_PUBNAMES_LENGTH_BAD 124
1082 #define DW_DLE_GLOBAL_NULL 125
1083 #define DW_DLE_GLOBAL_CONTEXT_NULL 126
1084 #define DW_DLE_DIR_INDEX_BAD 127
1085 #define DW_DLE_LOC_EXPR_BAD 128
1086 #define DW_DLE_DIE_LOC_EXPR_BAD 129
1087 #define DW_DLE_ADDR_ALLOC 130
1088 #define DW_DLE_OFFSET_BAD 131
1089 #define DW_DLE_MAKE_CU_CONTEXT_FAIL 132
1090 #define DW_DLE_REL_ALLOC 133
1091 #define DW_DLE_ARANGE_OFFSET_BAD 134
1092 #define DW_DLE_SEGMENT_SIZE_BAD 135
1093 #define DW_DLE_ARANGE_LENGTH_BAD 136
1094 #define DW_DLE_ARANGE_DECODE_ERROR 137
1095 #define DW_DLE_ARANGES_NULL 138
1096 #define DW_DLE_ARANGE_NULL 139
1097 #define DW_DLE_NO_FILE_NAME 140
1098 #define DW_DLE_NO_COMP_DIR 141
1099 #define DW_DLE_CU_ADDRESS_SIZE_BAD 142
1100 #define DW_DLE_INPUT_ATTR_BAD 143
1101 #define DW_DLE_EXPR_NULL 144
1102 #define DW_DLE_BAD_EXPR_OPCODE 145
1103 #define DW_DLE_EXPR_LENGTH_BAD 146
1104 #define DW_DLE_MULTIPLE_RELOC_IN_EXPR 147
1105 #define DW_DLE_ELF_GETIDENT_ERROR 148
1106 #define DW_DLE_NO_AT_MIPS_FDE 149
1107 #define DW_DLE_NO_CIE_FOR_FDE 150
1108 #define DW_DLE_DIE_ABBREV_LIST_NULL 151
1109 #define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE 152
1110 #define DW_DLE_DEBUG_FUNCNAMES_NULL 153
1111 #define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR 154
1112 #define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD 155
1113 #define DW_DLE_FUNC_NULL 156
1114 #define DW_DLE_FUNC_CONTEXT_NULL 157
1115 #define DW_DLE_DEBUG_TYPENAMES_DUPLICATE 158
1116 #define DW_DLE_DEBUG_TYPENAMES_NULL 159
1117 #define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR 160
1118 #define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD 161
1119 #define DW_DLE_TYPE_NULL 162
1120 #define DW_DLE_TYPE_CONTEXT_NULL 163
1121 #define DW_DLE_DEBUG_VARNAMES_DUPLICATE 164
1122 #define DW_DLE_DEBUG_VARNAMES_NULL 165
1123 #define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR 166
1124 #define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD 167
1125 #define DW_DLE_VAR_NULL 168
1126 #define DW_DLE_VAR_CONTEXT_NULL 169
1127 #define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE 170
1128 #define DW_DLE_DEBUG_WEAKNAMES_NULL 171
1129 #define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR 172
1130 #define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD 173
1131 #define DW_DLE_WEAK_NULL 174
1132 #define DW_DLE_WEAK_CONTEXT_NULL 175
1133 #define DW_DLE_LOCDESC_COUNT_WRONG 176
1134 #define DW_DLE_MACINFO_STRING_NULL 177
1135 #define DW_DLE_MACINFO_STRING_EMPTY 178
1136 #define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE 179
1137 #define DW_DLE_MACINFO_MALLOC_FAIL 180
1138 #define DW_DLE_DEBUGMACINFO_ERROR 181
1139 #define DW_DLE_DEBUG_MACRO_LENGTH_BAD 182
1140 #define DW_DLE_DEBUG_MACRO_MAX_BAD 183
1141 #define DW_DLE_DEBUG_MACRO_INTERNAL_ERR 184
1142 #define DW_DLE_DEBUG_MACRO_MALLOC_SPACE 185
1143 #define DW_DLE_DEBUG_MACRO_INCONSISTENT 186
1144 #define DW_DLE_DF_NO_CIE_AUGMENTATION 187
1145 #define DW_DLE_DF_REG_NUM_TOO_HIGH 188
1146 #define DW_DLE_DF_MAKE_INSTR_NO_INIT 189
1147 #define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC 190
1148 #define DW_DLE_DF_POP_EMPTY_STACK 191
1149 #define DW_DLE_DF_ALLOC_FAIL 192
1150 #define DW_DLE_DF_FRAME_DECODING_ERROR 193
1151 #define DW_DLE_DEBUG_LOC_SECTION_SHORT 194
1152 #define DW_DLE_FRAME_AUGMENTATION_UNKNOWN 195
1153 #define DW_DLE_PUBTYPE_CONTEXT 196 /* Unused. */
1154 #define DW_DLE_DEBUG_PUBTYPES_LENGTH_BAD 197
1155 #define DW_DLE_DEBUG_PUBTYPES_VERSION_ERROR 198
1156 #define DW_DLE_DEBUG_PUBTYPES_DUPLICATE 199
1157 #define DW_DLE_FRAME_CIE_DECODE_ERROR 200
1158 #define DW_DLE_FRAME_REGISTER_UNREPRESENTABLE 201
1159 #define DW_DLE_FRAME_REGISTER_COUNT_MISMATCH 202
1160 #define DW_DLE_LINK_LOOP 203
1161 #define DW_DLE_STRP_OFFSET_BAD 204
1162 #define DW_DLE_DEBUG_RANGES_DUPLICATE 205
1163 #define DW_DLE_DEBUG_RANGES_OFFSET_BAD 206
1164 #define DW_DLE_DEBUG_RANGES_MISSING_END 207
1165 #define DW_DLE_DEBUG_RANGES_OUT_OF_MEM 208
1166 #define DW_DLE_DEBUG_SYMTAB_ERR 209
1167 #define DW_DLE_DEBUG_STRTAB_ERR 210
1168 #define DW_DLE_RELOC_MISMATCH_INDEX 211
1169 #define DW_DLE_RELOC_MISMATCH_RELOC_INDEX 212
1170 #define DW_DLE_RELOC_MISMATCH_STRTAB_INDEX 213
1171 #define DW_DLE_RELOC_SECTION_MISMATCH 214
1172 #define DW_DLE_RELOC_SECTION_MISSING_INDEX 215
1173 #define DW_DLE_RELOC_SECTION_LENGTH_ODD 216
1174 #define DW_DLE_RELOC_SECTION_PTR_NULL 217
1175 #define DW_DLE_RELOC_SECTION_MALLOC_FAIL 218
1176 #define DW_DLE_NO_ELF64_SUPPORT 219
1177 #define DW_DLE_MISSING_ELF64_SUPPORT 220
1178 #define DW_DLE_ORPHAN_FDE 221
1179 #define DW_DLE_DUPLICATE_INST_BLOCK 222
1180 #define DW_DLE_BAD_REF_SIG8_FORM 223
1181 #define DW_DLE_ATTR_EXPRLOC_FORM_BAD 224
1182 #define DW_DLE_FORM_SEC_OFFSET_LENGTH_BAD 225
1183 #define DW_DLE_NOT_REF_FORM 226
1184 #define DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE 227
1185 #define DW_DLE_REF_SIG8_NOT_HANDLED 228
1186 #define DW_DLE_DEBUG_FRAME_POSSIBLE_ADDRESS_BOTCH 229
1187 #define DW_DLE_LOC_BAD_TERMINATION 230
1188 #define DW_DLE_SYMTAB_SECTION_LENGTH_ODD 231
1189 #define DW_DLE_RELOC_SECTION_SYMBOL_INDEX_BAD 232
1190 #define DW_DLE_RELOC_SECTION_RELOC_TARGET_SIZE_UNKNOWN 233
1191 #define DW_DLE_SYMTAB_SECTION_ENTRYSIZE_ZERO 234
1192 #define DW_DLE_LINE_NUMBER_HEADER_ERROR 235
1193 #define DW_DLE_DEBUG_TYPES_NULL 236
1194 #define DW_DLE_DEBUG_TYPES_DUPLICATE 237
1195 #define DW_DLE_DEBUG_TYPES_ONLY_DWARF4 238
1196 #define DW_DLE_DEBUG_TYPEOFFSET_BAD 239
1197 #define DW_DLE_GNU_OPCODE_ERROR 240
1198 #define DW_DLE_DEBUGPUBTYPES_ERROR 241
1199 #define DW_DLE_AT_FIXUP_NULL 242
1200 #define DW_DLE_AT_FIXUP_DUP 243
1201 #define DW_DLE_BAD_ABINAME 244
1202 #define DW_DLE_TOO_MANY_DEBUG 245
1203 #define DW_DLE_DEBUG_STR_OFFSETS_DUPLICATE 246
1204 #define DW_DLE_SECTION_DUPLICATION 247
1205 #define DW_DLE_SECTION_ERROR 248
1206 #define DW_DLE_DEBUG_ADDR_DUPLICATE 249
1207 #define DW_DLE_DEBUG_CU_UNAVAILABLE_FOR_FORM 250
1208 #define DW_DLE_DEBUG_FORM_HANDLING_INCOMPLETE 251
1209 #define DW_DLE_NEXT_DIE_PAST_END 252
1210 #define DW_DLE_NEXT_DIE_WRONG_FORM 253
1211 #define DW_DLE_NEXT_DIE_NO_ABBREV_LIST 254
1212 #define DW_DLE_NESTED_FORM_INDIRECT_ERROR 255
1213 #define DW_DLE_CU_DIE_NO_ABBREV_LIST 256
1214 #define DW_DLE_MISSING_NEEDED_DEBUG_ADDR_SECTION 257
1215 #define DW_DLE_ATTR_FORM_NOT_ADDR_INDEX 258
1216 #define DW_DLE_ATTR_FORM_NOT_STR_INDEX 259
1217 #define DW_DLE_DUPLICATE_GDB_INDEX 260
1218 #define DW_DLE_ERRONEOUS_GDB_INDEX_SECTION 261
1219 #define DW_DLE_GDB_INDEX_COUNT_ERROR 262
1220 #define DW_DLE_GDB_INDEX_COUNT_ADDR_ERROR 263
1221 #define DW_DLE_GDB_INDEX_INDEX_ERROR 264
1222 #define DW_DLE_GDB_INDEX_CUVEC_ERROR 265
1223 #define DW_DLE_DUPLICATE_CU_INDEX 266
1224 #define DW_DLE_DUPLICATE_TU_INDEX 267
1225 #define DW_DLE_XU_TYPE_ARG_ERROR 268
1226 #define DW_DLE_XU_IMPOSSIBLE_ERROR 269
1227 #define DW_DLE_XU_NAME_COL_ERROR 270
1228 #define DW_DLE_XU_HASH_ROW_ERROR 271
1229 #define DW_DLE_XU_HASH_INDEX_ERROR 272
1230 /* ..._FAILSAFE_ERRVAL is an aid when out of memory. */
1231 #define DW_DLE_FAILSAFE_ERRVAL 273
1232 #define DW_DLE_ARANGE_ERROR 274
1233 #define DW_DLE_PUBNAMES_ERROR 275
1234 #define DW_DLE_FUNCNAMES_ERROR 276
1235 #define DW_DLE_TYPENAMES_ERROR 277
1236 #define DW_DLE_VARNAMES_ERROR 278
1237 #define DW_DLE_WEAKNAMES_ERROR 279
1238 #define DW_DLE_RELOCS_ERROR 280
1239 #define DW_DLE_ATTR_OUTSIDE_SECTION 281
1240 #define DW_DLE_FISSION_INDEX_WRONG 282
1241 #define DW_DLE_FISSION_VERSION_ERROR 283
1242 #define DW_DLE_NEXT_DIE_LOW_ERROR 284
1243 #define DW_DLE_CU_UT_TYPE_ERROR 285
1244 #define DW_DLE_NO_SUCH_SIGNATURE_FOUND 286
1245 #define DW_DLE_SIGNATURE_SECTION_NUMBER_WRONG 287
1246 #define DW_DLE_ATTR_FORM_NOT_DATA8 288
1247 #define DW_DLE_SIG_TYPE_WRONG_STRING 289
1248 #define DW_DLE_MISSING_REQUIRED_TU_OFFSET_HASH 290
1249 #define DW_DLE_MISSING_REQUIRED_CU_OFFSET_HASH 291
1250 #define DW_DLE_DWP_MISSING_DWO_ID 292
1251 #define DW_DLE_DWP_SIBLING_ERROR 293
1252 #define DW_DLE_DEBUG_FISSION_INCOMPLETE 294
1253 #define DW_DLE_FISSION_SECNUM_ERR 295
1254 #define DW_DLE_DEBUG_MACRO_DUPLICATE 296
1255 #define DW_DLE_DEBUG_NAMES_DUPLICATE 297
1256 #define DW_DLE_DEBUG_LINE_STR_DUPLICATE 298
1257 #define DW_DLE_DEBUG_SUP_DUPLICATE 299
1258 #define DW_DLE_NO_SIGNATURE_TO_LOOKUP 300
1259 #define DW_DLE_NO_TIED_ADDR_AVAILABLE 301
1260 #define DW_DLE_NO_TIED_SIG_AVAILABLE 302
1261 #define DW_DLE_STRING_NOT_TERMINATED 303
1262 #define DW_DLE_BAD_LINE_TABLE_OPERATION 304
1263 #define DW_DLE_LINE_CONTEXT_BOTCH 305
1264 #define DW_DLE_LINE_CONTEXT_INDEX_WRONG 306
1265 #define DW_DLE_NO_TIED_STRING_AVAILABLE 307
1266 #define DW_DLE_NO_TIED_FILE_AVAILABLE 308
1267 #define DW_DLE_CU_TYPE_MISSING 309
1268 #define DW_DLE_LLE_CODE_UNKNOWN 310
1269 #define DW_DLE_LOCLIST_INTERFACE_ERROR 311
1270 #define DW_DLE_LOCLIST_INDEX_ERROR 312
1271 #define DW_DLE_INTERFACE_NOT_SUPPORTED 313
1272 #define DW_DLE_ZDEBUG_REQUIRES_ZLIB 314
1273 #define DW_DLE_ZDEBUG_INPUT_FORMAT_ODD 315
1274 #define DW_DLE_ZLIB_BUF_ERROR 316
1275 #define DW_DLE_ZLIB_DATA_ERROR 317
1276 #define DW_DLE_MACRO_OFFSET_BAD 318
1277 #define DW_DLE_MACRO_OPCODE_BAD 319
1278 #define DW_DLE_MACRO_OPCODE_FORM_BAD 320
1279 #define DW_DLE_UNKNOWN_FORM 321
1280 #define DW_DLE_BAD_MACRO_HEADER_POINTER 322
1281 #define DW_DLE_BAD_MACRO_INDEX 323
1282 #define DW_DLE_MACRO_OP_UNHANDLED 324
1283 #define DW_DLE_MACRO_PAST_END 325
1284 #define DW_DLE_LINE_STRP_OFFSET_BAD 326
1285 #define DW_DLE_STRING_FORM_IMPROPER 327
1286 #define DW_DLE_ELF_FLAGS_NOT_AVAILABLE 328
1287 #define DW_DLE_LEB_IMPROPER 329
1288 #define DW_DLE_DEBUG_LINE_RANGE_ZERO 330
1289 #define DW_DLE_READ_LITTLEENDIAN_ERROR 331
1290 #define DW_DLE_READ_BIGENDIAN_ERROR 332
1291 #define DW_DLE_RELOC_INVALID 333
1292 #define DW_DLE_INFO_HEADER_ERROR 334
1293 #define DW_DLE_ARANGES_HEADER_ERROR 335
1294 #define DW_DLE_LINE_OFFSET_WRONG_FORM 336
1295 #define DW_DLE_FORM_BLOCK_LENGTH_ERROR 337
1296 #define DW_DLE_ZLIB_SECTION_SHORT 338
1297 #define DW_DLE_CIE_INSTR_PTR_ERROR 339
1298 #define DW_DLE_FDE_INSTR_PTR_ERROR 340
1299 #define DW_DLE_FISSION_ADDITION_ERROR 341
1300 #define DW_DLE_HEADER_LEN_BIGGER_THAN_SECSIZE 342
1301 #define DW_DLE_LOCEXPR_OFF_SECTION_END 343
1302 #define DW_DLE_POINTER_SECTION_UNKNOWN 344
1303 #define DW_DLE_ERRONEOUS_XU_INDEX_SECTION 345
1304 #define DW_DLE_DIRECTORY_FORMAT_COUNT_VS_DIRECTORIES_MISMATCH 346
1305 #define DW_DLE_COMPRESSED_EMPTY_SECTION 347
1306 #define DW_DLE_SIZE_WRAPAROUND 348
1307 #define DW_DLE_ILLOGICAL_TSEARCH 349
1308 #define DW_DLE_BAD_STRING_FORM 350
1309 #define DW_DLE_DEBUGSTR_ERROR 351
1310 #define DW_DLE_DEBUGSTR_UNEXPECTED_REL 352
1311 #define DW_DLE_DISCR_ARRAY_ERROR 353
1312 #define DW_DLE_LEB_OUT_ERROR 354
1313 #define DW_DLE_SIBLING_LIST_IMPROPER 355
1314 #define DW_DLE_LOCLIST_OFFSET_BAD 356
1315 #define DW_DLE_LINE_TABLE_BAD 357
1316 #define DW_DLE_DEBUG_LOClISTS_DUPLICATE 358
1317 #define DW_DLE_DEBUG_RNGLISTS_DUPLICATE 359
1318 #define DW_DLE_ABBREV_OFF_END 360
1319 #define DW_DLE_FORM_STRING_BAD_STRING 361
1320 #define DW_DLE_AUGMENTATION_STRING_OFF_END 362
1321 #define DW_DLE_STRING_OFF_END_PUBNAMES_LIKE 363
1322 #define DW_DLE_LINE_STRING_BAD 364
1323 #define DW_DLE_DEFINE_FILE_STRING_BAD 365
1324 #define DW_DLE_MACRO_STRING_BAD 366
1325 #define DW_DLE_MACINFO_STRING_BAD 367
1326 #define DW_DLE_ZLIB_UNCOMPRESS_ERROR 368
1327 #define DW_DLE_IMPROPER_DWO_ID 369
1328 #define DW_DLE_GROUPNUMBER_ERROR 370
1329 #define DW_DLE_ADDRESS_SIZE_ZERO 371
1330 #define DW_DLE_DEBUG_NAMES_HEADER_ERROR 372
1331 #define DW_DLE_DEBUG_NAMES_AUG_STRING_ERROR 373
1332 #define DW_DLE_DEBUG_NAMES_PAD_NON_ZERO 374
1333 #define DW_DLE_DEBUG_NAMES_OFF_END 375
1334 #define DW_DLE_DEBUG_NAMES_ABBREV_OVERFLOW 376
1335 #define DW_DLE_DEBUG_NAMES_ABBREV_CORRUPTION 377
1336 #define DW_DLE_DEBUG_NAMES_NULL_POINTER 378
1337 #define DW_DLE_DEBUG_NAMES_BAD_INDEX_ARG 379
1338 #define DW_DLE_DEBUG_NAMES_ENTRYPOOL_OFFSET 380
1339 #define DW_DLE_DEBUG_NAMES_UNHANDLED_FORM 381
1340 #define DW_DLE_LNCT_CODE_UNKNOWN 382
1341 #define DW_DLE_LNCT_FORM_CODE_NOT_HANDLED 383
1342 #define DW_DLE_LINE_HEADER_LENGTH_BOTCH 384
1343 #define DW_DLE_STRING_HASHTAB_IDENTITY_ERROR 385
1344 #define DW_DLE_UNIT_TYPE_NOT_HANDLED 386
1345 #define DW_DLE_GROUP_MAP_ALLOC 387
1346 #define DW_DLE_GROUP_MAP_DUPLICATE 388
1347 #define DW_DLE_GROUP_COUNT_ERROR 389
1348 #define DW_DLE_GROUP_INTERNAL_ERROR 390
1349 #define DW_DLE_GROUP_LOAD_ERROR 391
1350 #define DW_DLE_GROUP_LOAD_READ_ERROR 392
1351 #define DW_DLE_AUG_DATA_LENGTH_BAD 393
1352 #define DW_DLE_ABBREV_MISSING 394
1353 #define DW_DLE_NO_TAG_FOR_DIE 395
1354 #define DW_DLE_LOWPC_WRONG_CLASS 396
1355 #define DW_DLE_HIGHPC_WRONG_FORM 397
1356 #define DW_DLE_STR_OFFSETS_BASE_WRONG_FORM 398
1357 #define DW_DLE_DATA16_OUTSIDE_SECTION 399
1358 #define DW_DLE_LNCT_MD5_WRONG_FORM 400
1359 #define DW_DLE_LINE_HEADER_CORRUPT 401
1360 #define DW_DLE_STR_OFFSETS_NULLARGUMENT 402
1361 #define DW_DLE_STR_OFFSETS_NULL_DBG 403
1362 #define DW_DLE_STR_OFFSETS_NO_MAGIC 404
1363 #define DW_DLE_STR_OFFSETS_ARRAY_SIZE 405
1364 #define DW_DLE_STR_OFFSETS_VERSION_WRONG 406
1365 #define DW_DLE_STR_OFFSETS_ARRAY_INDEX_WRONG 407
1366 #define DW_DLE_STR_OFFSETS_EXTRA_BYTES 408
1367 #define DW_DLE_DUP_ATTR_ON_DIE 409
1368 #define DW_DLE_SECTION_NAME_BIG 410
1369 #define DW_DLE_FILE_UNAVAILABLE 411
1370 #define DW_DLE_FILE_WRONG_TYPE 412
1371 #define DW_DLE_SIBLING_OFFSET_WRONG 413
1372 #define DW_DLE_OPEN_FAIL 414
1373 #define DW_DLE_OFFSET_SIZE 415
1374 #define DW_DLE_MACH_O_SEGOFFSET_BAD 416
1375 #define DW_DLE_FILE_OFFSET_BAD 417
1376 #define DW_DLE_SEEK_ERROR 418
1377 #define DW_DLE_READ_ERROR 419
1378 #define DW_DLE_ELF_CLASS_BAD 420
1379 #define DW_DLE_ELF_ENDIAN_BAD 421
1380 #define DW_DLE_ELF_VERSION_BAD 422
1381 #define DW_DLE_FILE_TOO_SMALL 423
1382 #define DW_DLE_PATH_SIZE_TOO_SMALL 424
1383 #define DW_DLE_BAD_TYPE_SIZE 425
1384 #define DW_DLE_PE_SIZE_SMALL 426
1385 #define DW_DLE_PE_OFFSET_BAD 427
1386 #define DW_DLE_PE_STRING_TOO_LONG 428
1387 #define DW_DLE_IMAGE_FILE_UNKNOWN_TYPE 429
1388 #define DW_DLE_LINE_TABLE_LINENO_ERROR 430
1389 #define DW_DLE_PRODUCER_CODE_NOT_AVAILABLE 431
1390 #define DW_DLE_NO_ELF_SUPPORT 432
1391 #define DW_DLE_NO_STREAM_RELOC_SUPPORT 433
1392 #define DW_DLE_RETURN_EMPTY_PUBNAMES_ERROR 434
1393 #define DW_DLE_SECTION_SIZE_ERROR 435
1394 #define DW_DLE_INTERNAL_NULL_POINTER 436
1395 #define DW_DLE_SECTION_STRING_OFFSET_BAD 437
1396 #define DW_DLE_SECTION_INDEX_BAD 438
1397 #define DW_DLE_INTEGER_TOO_SMALL 439
1398 #define DW_DLE_ELF_SECTION_LINK_ERROR 440
1399 #define DW_DLE_ELF_SECTION_GROUP_ERROR 441
1400 #define DW_DLE_ELF_SECTION_COUNT_MISMATCH 442
1401 #define DW_DLE_ELF_STRING_SECTION_MISSING 443
1402 #define DW_DLE_SEEK_OFF_END 444
1403 #define DW_DLE_READ_OFF_END 445
1404 #define DW_DLE_ELF_SECTION_ERROR 446
1405 #define DW_DLE_ELF_STRING_SECTION_ERROR 447
1406 #define DW_DLE_MIXING_SPLIT_DWARF_VERSIONS 448
1407 #define DW_DLE_TAG_CORRUPT 449
1408 #define DW_DLE_FORM_CORRUPT 450
1409 #define DW_DLE_ATTR_CORRUPT 451
1410 #define DW_DLE_ABBREV_ATTR_DUPLICATION 452
1411 #define DW_DLE_DWP_SIGNATURE_MISMATCH 453
1412 #define DW_DLE_CU_UT_TYPE_VALUE 454
1413 #define DW_DLE_DUPLICATE_GNU_DEBUGLINK 455
1414 #define DW_DLE_CORRUPT_GNU_DEBUGLINK 456
1415 #define DW_DLE_CORRUPT_NOTE_GNU_DEBUGID 457
1416 #define DW_DLE_CORRUPT_GNU_DEBUGID_SIZE 458
1417 #define DW_DLE_CORRUPT_GNU_DEBUGID_STRING 459
1418 #define DW_DLE_HEX_STRING_ERROR 460
1419 #define DW_DLE_DECIMAL_STRING_ERROR 461
1420 #define DW_DLE_PRO_INIT_EXTRAS_UNKNOWN 462
1421 #define DW_DLE_PRO_INIT_EXTRAS_ERR 463
1422 #define DW_DLE_NULL_ARGS_DWARF_ADD_PATH 464
1423 #define DW_DLE_DWARF_INIT_DBG_NULL 465
1424 #define DW_DLE_ELF_RELOC_SECTION_ERROR 466
1425 #define DW_DLE_USER_DECLARED_ERROR 467
1426 #define DW_DLE_RNGLISTS_ERROR 468
1427 #define DW_DLE_LOCLISTS_ERROR 469
1428 #define DW_DLE_SECTION_SIZE_OR_OFFSET_LARGE 470
1429 #define DW_DLE_GDBINDEX_STRING_ERROR 471
1430 #define DW_DLE_GNU_PUBNAMES_ERROR 472
1431 #define DW_DLE_GNU_PUBTYPES_ERROR 473
1432 #define DW_DLE_DUPLICATE_GNU_DEBUG_PUBNAMES 474
1433 #define DW_DLE_DUPLICATE_GNU_DEBUG_PUBTYPES 475
1434 #define DW_DLE_DEBUG_SUP_STRING_ERROR 476
1435 #define DW_DLE_DEBUG_SUP_ERROR 477
1436 #define DW_DLE_LOCATION_ERROR 478
1437 #define DW_DLE_DEBUGLINK_PATH_SHORT 479
1438 #define DW_DLE_SIGNATURE_MISMATCH 480
1439 #define DW_DLE_MACRO_VERSION_ERROR 481
1440 #define DW_DLE_NEGATIVE_SIZE 482
1441 #define DW_DLE_UDATA_VALUE_NEGATIVE 483
1442 #define DW_DLE_DEBUG_NAMES_ERROR 484
1443 #define DW_DLE_CFA_INSTRUCTION_ERROR 485
1444 #define DW_DLE_MACHO_CORRUPT_HEADER 486
1445 #define DW_DLE_MACHO_CORRUPT_COMMAND 487
1446 #define DW_DLE_MACHO_CORRUPT_SECTIONDETAILS 488
1447 #define DW_DLE_RELOCATION_SECTION_SIZE_ERROR 489
1448 #define DW_DLE_SYMBOL_SECTION_SIZE_ERROR 490
1449 #define DW_DLE_PE_SECTION_SIZE_ERROR 491
1450 #define DW_DLE_DEBUG_ADDR_ERROR 492
1451 #define DW_DLE_NO_SECT_STRINGS 493
1452 #define DW_DLE_TOO_FEW_SECTIONS 494
1453 #define DW_DLE_BUILD_ID_DESCRIPTION_SIZE 495
1454 #define DW_DLE_BAD_SECTION_FLAGS 496
1455 #define DW_DLE_IMPROPER_SECTION_ZERO 497
1456 #define DW_DLE_INVALID_NULL_ARGUMENT 498
1457 #define DW_DLE_LINE_INDEX_WRONG 499
1458 #define DW_DLE_LINE_COUNT_WRONG 500
1459 #define DW_DLE_ARITHMETIC_OVERFLOW 501
1460 #define DW_DLE_UNIVERSAL_BINARY_ERROR 502
1461 #define DW_DLE_UNIV_BIN_OFFSET_SIZE_ERROR 503
1462 
1464 #define DW_DLE_LAST 503
1465 #define DW_DLE_LO_USER 0x10000
1530 DW_API int dwarf_init_path(const char * dw_path,
1531  char * dw_true_path_out_buffer,
1532  unsigned int dw_true_path_bufferlen,
1533  unsigned int dw_groupnumber,
1534  Dwarf_Handler dw_errhand,
1535  Dwarf_Ptr dw_errarg,
1536  Dwarf_Debug* dw_dbg,
1537  Dwarf_Error* dw_error);
1538 
1551 DW_API int dwarf_init_path_a(const char * dw_path,
1552  char * dw_true_path_out_buffer,
1553  unsigned int dw_true_path_bufferlen,
1554  unsigned int dw_groupnumber,
1555  unsigned int dw_universalnumber,
1556  Dwarf_Handler dw_errhand,
1557  Dwarf_Ptr dw_errarg,
1558  Dwarf_Debug* dw_dbg,
1559  Dwarf_Error* dw_error);
1560 
1617 DW_API int dwarf_init_path_dl(const char * dw_path,
1618  char * dw_true_path_out_buffer,
1619  unsigned int dw_true_path_bufferlen,
1620  unsigned int dw_groupnumber,
1621  Dwarf_Handler dw_errhand,
1622  Dwarf_Ptr dw_errarg,
1623  Dwarf_Debug* dw_dbg,
1624  char ** dw_dl_path_array,
1625  unsigned int dw_dl_path_array_size,
1626  unsigned char * dw_dl_path_source,
1627  Dwarf_Error* dw_error);
1628 
1645 DW_API int dwarf_init_path_dl_a(const char * dw_path,
1646  char * dw_true_path_out_buffer,
1647  unsigned int dw_true_path_bufferlen,
1648  unsigned int dw_groupnumber,
1649  unsigned int dw_universalnumber,
1650  Dwarf_Handler dw_errhand,
1651  Dwarf_Ptr dw_errarg,
1652  Dwarf_Debug* dw_dbg,
1653  char ** dw_dl_path_array,
1654  unsigned int dw_dl_path_array_size,
1655  unsigned char * dw_dl_path_source,
1656  Dwarf_Error* dw_error);
1657 
1691 DW_API int dwarf_init_b(int dw_fd,
1692  unsigned int dw_groupnumber,
1693  Dwarf_Handler dw_errhand,
1694  Dwarf_Ptr dw_errarg,
1695  Dwarf_Debug* dw_dbg,
1696  Dwarf_Error* dw_error);
1697 
1713 DW_API int dwarf_finish(Dwarf_Debug dw_dbg);
1714 
1749  Dwarf_Handler dw_errhand,
1750  Dwarf_Ptr dw_errarg,
1751  unsigned int dw_groupnumber,
1752  Dwarf_Debug* dw_dbg,
1753  Dwarf_Error* dw_error);
1754 
1770 
1801 DW_API int dwarf_set_tied_dbg(Dwarf_Debug dw_split_dbg,
1802  Dwarf_Debug dw_tied_dbg,
1803  Dwarf_Error* dw_error);
1804 
1814  Dwarf_Debug * dw_tieddbg_out,
1815  Dwarf_Error * dw_error);
1897  Dwarf_Bool dw_is_info,
1898  Dwarf_Die *dw_cu_die,
1899  Dwarf_Unsigned *dw_cu_header_length,
1900  Dwarf_Half *dw_version_stamp,
1901  Dwarf_Off *dw_abbrev_offset,
1902  Dwarf_Half *dw_address_size,
1903  Dwarf_Half *dw_length_size,
1904  Dwarf_Half *dw_extension_size,
1905  Dwarf_Sig8 *dw_type_signature,
1906  Dwarf_Unsigned *dw_typeoffset,
1907  Dwarf_Unsigned *dw_next_cu_header_offset,
1908  Dwarf_Half *dw_header_cu_type,
1909  Dwarf_Error *dw_error);
1910 
1942  Dwarf_Bool dw_is_info,
1943  Dwarf_Unsigned *dw_cu_header_length,
1944  Dwarf_Half *dw_version_stamp,
1945  Dwarf_Off *dw_abbrev_offset,
1946  Dwarf_Half *dw_address_size,
1947  Dwarf_Half *dw_length_size,
1948  Dwarf_Half *dw_extension_size,
1949  Dwarf_Sig8 *dw_type_signature,
1950  Dwarf_Unsigned *dw_typeoffset,
1951  Dwarf_Unsigned *dw_next_cu_header_offset,
1952  Dwarf_Half *dw_header_cu_type,
1953  Dwarf_Error *dw_error);
1954 
1970 DW_API int dwarf_siblingof_c(Dwarf_Die dw_die,
1971  Dwarf_Die *dw_return_siblingdie,
1972  Dwarf_Error *dw_error);
1973 
2008 DW_API int dwarf_siblingof_b(Dwarf_Debug dw_dbg,
2009  Dwarf_Die dw_die,
2010  Dwarf_Bool dw_is_info,
2011  Dwarf_Die *dw_return_siblingdie,
2012  Dwarf_Error *dw_error);
2013 
2055  Dwarf_Half *dw_version,
2056  Dwarf_Bool *dw_is_info,
2057  Dwarf_Bool *dw_is_dwo,
2058  Dwarf_Half *dw_offset_size,
2059  Dwarf_Half *dw_address_size,
2060  Dwarf_Half *dw_extension_size,
2061  Dwarf_Sig8 **dw_signature,
2062  Dwarf_Off *dw_offset_of_length,
2063  Dwarf_Unsigned *dw_total_byte_length,
2064  Dwarf_Error *dw_error);
2065 
2085 DW_API int dwarf_child(Dwarf_Die dw_die,
2086  Dwarf_Die* dw_return_childdie,
2087  Dwarf_Error* dw_error);
2088 
2096 DW_API void dwarf_dealloc_die( Dwarf_Die dw_die);
2097 
2116  Dwarf_Sig8 * dw_hash_sig,
2117  const char * dw_sig_type,
2118  Dwarf_Die* dw_returned_CU_die,
2119  Dwarf_Error* dw_error);
2120 
2151 DW_API int dwarf_offdie_b(Dwarf_Debug dw_dbg,
2152  Dwarf_Off dw_offset,
2153  Dwarf_Bool dw_is_info,
2154  Dwarf_Die* dw_return_die,
2155  Dwarf_Error* dw_error);
2156 
2179  Dwarf_Sig8 *dw_ref,
2180  Dwarf_Die *dw_die_out,
2181  Dwarf_Bool *dw_is_info,
2182  Dwarf_Error *dw_error);
2183 
2225  Dwarf_Off * dw_abbrev_offset,
2226  Dwarf_Unsigned * dw_abbrev_count,
2227  Dwarf_Error* dw_error);
2228 
2239 DW_API int dwarf_tag(Dwarf_Die dw_die,
2240  Dwarf_Half* dw_return_tag,
2241  Dwarf_Error* dw_error);
2242 
2255 DW_API int dwarf_dieoffset(Dwarf_Die dw_die,
2256  Dwarf_Off* dw_return_offset,
2257  Dwarf_Error* dw_error);
2258 
2278  Dwarf_Unsigned dw_index,
2279  Dwarf_Addr * dw_return_addr,
2280  Dwarf_Error * dw_error);
2281 
2291 
2316  Dwarf_Off* dw_return_offset,
2317  Dwarf_Error* dw_error);
2318 
2340  Dwarf_Debug dw_dbg,
2341  Dwarf_Off dw_in_cu_header_offset,
2342  Dwarf_Bool dw_is_info,
2343  Dwarf_Off * dw_out_cu_die_offset,
2344  Dwarf_Error *dw_error);
2345 
2363 DW_API int dwarf_die_CU_offset(Dwarf_Die dw_die,
2364  Dwarf_Off* dw_return_offset,
2365  Dwarf_Error* dw_error);
2366 
2388  Dwarf_Off* dw_return_CU_header_offset,
2389  Dwarf_Off* dw_return_CU_length_bytes,
2390  Dwarf_Error* dw_error);
2391 
2409 DW_API int dwarf_attr(Dwarf_Die dw_die,
2410  Dwarf_Half dw_attrnum,
2411  Dwarf_Attribute * dw_returned_attr,
2412  Dwarf_Error* dw_error);
2413 
2435 DW_API int dwarf_die_text(Dwarf_Die dw_die,
2436  Dwarf_Half dw_attrnum,
2437  char ** dw_ret_name,
2438  Dwarf_Error * dw_error);
2439 
2459 DW_API int dwarf_diename(Dwarf_Die dw_die,
2460  char ** dw_diename,
2461  Dwarf_Error* dw_error);
2462 
2481 
2496  Dwarf_Half * dw_ab_has_child);
2497 
2522  Dwarf_Off* dw_offset);
2523 
2524 /* convenience functions, alternative to using dwarf_attrlist */
2525 
2544 DW_API int dwarf_hasattr(Dwarf_Die dw_die,
2545  Dwarf_Half dw_attrnum,
2546  Dwarf_Bool * dw_returned_bool,
2547  Dwarf_Error* dw_error);
2548 
2584 DW_API int dwarf_offset_list(Dwarf_Debug dw_dbg,
2585  Dwarf_Off dw_offset,
2586  Dwarf_Bool dw_is_info,
2587  Dwarf_Off ** dw_offbuf,
2588  Dwarf_Unsigned * dw_offcount,
2589  Dwarf_Error * dw_error);
2590 
2604  Dwarf_Half * dw_addr_size,
2605  Dwarf_Error * dw_error);
2606 
2607 /* Get both offsets (local and global) */
2627 DW_API int dwarf_die_offsets(Dwarf_Die dw_die,
2628  Dwarf_Off* dw_global_offset,
2629  Dwarf_Off* dw_local_offset,
2630  Dwarf_Error* dw_error);
2631 
2649  Dwarf_Half * dw_version,
2650  Dwarf_Half * dw_offset_size);
2651 
2665 DW_API int dwarf_lowpc(Dwarf_Die dw_die,
2666  Dwarf_Addr * dw_returned_addr,
2667  Dwarf_Error* dw_error);
2668 
2700 DW_API int dwarf_highpc_b(Dwarf_Die dw_die,
2701  Dwarf_Addr * dw_return_addr,
2702  Dwarf_Half * dw_return_form,
2703  enum Dwarf_Form_Class * dw_return_class,
2704  Dwarf_Error * dw_error);
2705 
2732  Dwarf_Off * dw_return_offset,
2733  Dwarf_Bool * dw_is_info,
2734  Dwarf_Error * dw_error);
2735 
2747 DW_API int dwarf_bytesize(Dwarf_Die dw_die,
2748  Dwarf_Unsigned * dw_returned_size,
2749  Dwarf_Error* dw_error);
2750 
2762 DW_API int dwarf_bitsize(Dwarf_Die dw_die,
2763  Dwarf_Unsigned * dw_returned_size,
2764  Dwarf_Error* dw_error);
2765 
2786 DW_API int dwarf_bitoffset(Dwarf_Die dw_die,
2787  Dwarf_Half * dw_attrnum,
2788  Dwarf_Unsigned * dw_returned_offset,
2789  Dwarf_Error* dw_error);
2790 
2804 DW_API int dwarf_srclang(Dwarf_Die dw_die,
2805  Dwarf_Unsigned * dw_returned_lang,
2806  Dwarf_Error * dw_error);
2807 
2820 DW_API int dwarf_arrayorder(Dwarf_Die dw_die,
2821  Dwarf_Unsigned * dw_returned_order,
2822  Dwarf_Error* dw_error);
2852 DW_API int dwarf_attrlist(Dwarf_Die dw_die,
2853  Dwarf_Attribute** dw_attrbuf,
2854  Dwarf_Signed * dw_attrcount,
2855  Dwarf_Error* dw_error);
2856 
2875 DW_API int dwarf_hasform(Dwarf_Attribute dw_attr,
2876  Dwarf_Half dw_form,
2877  Dwarf_Bool * dw_returned_bool,
2878  Dwarf_Error* dw_error);
2879 
2898 DW_API int dwarf_whatform(Dwarf_Attribute dw_attr,
2899  Dwarf_Half * dw_returned_final_form,
2900  Dwarf_Error* dw_error);
2901 
2919  Dwarf_Half * dw_returned_initial_form,
2920  Dwarf_Error* dw_error);
2921 
2937 DW_API int dwarf_whatattr(Dwarf_Attribute dw_attr,
2938  Dwarf_Half * dw_returned_attrnum,
2939  Dwarf_Error* dw_error);
2940 
2965 DW_API int dwarf_formref(Dwarf_Attribute dw_attr,
2966  Dwarf_Off* dw_return_offset,
2967  Dwarf_Bool *dw_is_info,
2968  Dwarf_Error *dw_error);
2969 
3003  Dwarf_Off *dw_return_offset,
3004  Dwarf_Bool *dw_offset_is_info,
3005  Dwarf_Error *dw_error);
3006 
3018  Dwarf_Off* dw_return_offset,
3019  Dwarf_Error* dw_error);
3020 
3039 DW_API int dwarf_formsig8(Dwarf_Attribute dw_attr,
3040  Dwarf_Sig8 * dw_returned_sig_bytes,
3041  Dwarf_Error* dw_error);
3042 
3062  Dwarf_Sig8 * dw_returned_sig_bytes,
3063  Dwarf_Error* dw_error);
3064 
3084 DW_API int dwarf_formaddr(Dwarf_Attribute dw_attr,
3085  Dwarf_Addr * dw_returned_addr,
3086  Dwarf_Error* dw_error);
3087 
3108  Dwarf_Unsigned * dw_return_index,
3109  Dwarf_Error * dw_error);
3110 
3124 DW_API int dwarf_formflag(Dwarf_Attribute dw_attr,
3125  Dwarf_Bool * dw_returned_bool,
3126  Dwarf_Error* dw_error);
3127 
3144  Dwarf_Unsigned * dw_returned_val,
3145  Dwarf_Error* dw_error);
3146 
3162  Dwarf_Signed * dw_returned_val,
3163  Dwarf_Error* dw_error);
3164 
3183  Dwarf_Form_Data16 * dw_returned_val,
3184  Dwarf_Error* dw_error);
3185 
3205  Dwarf_Block ** dw_returned_block,
3206  Dwarf_Error* dw_error);
3207 
3221  char ** dw_returned_string,
3222  Dwarf_Error* dw_error);
3223 
3240  Dwarf_Unsigned * dw_return_index,
3241  Dwarf_Error * dw_error);
3242 
3262  Dwarf_Unsigned * dw_return_exprlen,
3263  Dwarf_Ptr * dw_block_ptr,
3264  Dwarf_Error * dw_error);
3265 
3286  Dwarf_Half dw_version,
3287  Dwarf_Half dw_attrnum,
3288  Dwarf_Half dw_offset_size,
3289  Dwarf_Half dw_form);
3290 
3306 DW_API int dwarf_attr_offset(Dwarf_Die dw_die,
3307  Dwarf_Attribute dw_attr,
3308  Dwarf_Off * dw_return_offset,
3309  Dwarf_Error * dw_error);
3310 
3319  Dwarf_Unsigned dw_input_length_in_bytes,
3320  void * dw_input_block,
3321  Dwarf_Unsigned * dw_value_count,
3322  Dwarf_Signed ** dw_value_array,
3323  Dwarf_Error * dw_error);
3324 
3333  void *dw_value_array);
3334 
3355  Dwarf_Off dw_offset,
3356  Dwarf_Off* dw_return_offset,
3357  Dwarf_Error* dw_error);
3358 
3365 
3392 DW_API int dwarf_discr_list(Dwarf_Debug dw_dbg,
3393  Dwarf_Small * dw_blockpointer,
3394  Dwarf_Unsigned dw_blocklen,
3395  Dwarf_Dsc_Head * dw_dsc_head_out,
3396  Dwarf_Unsigned * dw_dsc_array_length_out,
3397  Dwarf_Error * dw_error);
3398 
3425  Dwarf_Unsigned dw_entrynum,
3426  Dwarf_Half * dw_out_type,
3427  Dwarf_Unsigned * dw_out_discr_low,
3428  Dwarf_Unsigned * dw_out_discr_high,
3429  Dwarf_Error * dw_error);
3430 
3437  Dwarf_Unsigned dw_entrynum,
3438  Dwarf_Half * dw_out_type,
3439  Dwarf_Signed * dw_out_discr_low,
3440  Dwarf_Signed * dw_out_discr_high,
3441  Dwarf_Error * dw_error);
3442 
3520 DW_API int dwarf_srcfiles(Dwarf_Die dw_cu_die,
3521  char *** dw_srcfiles,
3522  Dwarf_Signed * dw_filecount,
3523  Dwarf_Error * dw_error);
3524 
3551 DW_API int dwarf_srclines_b(Dwarf_Die dw_cudie,
3552  Dwarf_Unsigned * dw_version_out,
3553  Dwarf_Small * dw_table_count,
3554  Dwarf_Line_Context * dw_linecontext,
3555  Dwarf_Error * dw_error);
3556 
3578  Dwarf_Line_Context dw_linecontext,
3579  Dwarf_Line ** dw_linebuf,
3580  Dwarf_Signed * dw_linecount,
3581  Dwarf_Error * dw_error);
3582 
3600  Dwarf_Line_Context dw_context,
3601  Dwarf_Line ** dw_linebuf ,
3602  Dwarf_Signed * dw_linecount,
3603  Dwarf_Line ** dw_linebuf_actuals,
3604  Dwarf_Signed * dw_linecount_actuals,
3605  Dwarf_Error * dw_error);
3606 
3617 
3634  Dwarf_Unsigned * dw_offset,
3635  Dwarf_Error * dw_error);
3636 
3653  const char ** dw_compilation_directory,
3654  Dwarf_Error * dw_error);
3655 
3672  Dwarf_Signed * dw_count,
3673  Dwarf_Error * dw_error);
3674 
3694  Dwarf_Signed dw_index,
3695  const char ** dw_name,
3696  Dwarf_Unsigned * dw_decl_file,
3697  Dwarf_Unsigned * dw_decl_line,
3698  Dwarf_Error * dw_error);
3699 
3725  Dwarf_Line_Context dw_context,
3726  Dwarf_Signed * dw_baseindex,
3727  Dwarf_Signed * dw_count,
3728  Dwarf_Signed * dw_endindex,
3729  Dwarf_Error * dw_error);
3730 
3783  Dwarf_Line_Context dw_context,
3784  Dwarf_Signed dw_index_in,
3785  const char ** dw_name,
3786  Dwarf_Unsigned * dw_directory_index,
3787  Dwarf_Unsigned * dw_last_mod_time,
3788  Dwarf_Unsigned * dw_file_length,
3789  Dwarf_Form_Data16 ** dw_md5ptr,
3790  Dwarf_Error * dw_error);
3791 
3807  Dwarf_Line_Context dw_line_context,
3808  Dwarf_Signed * dw_count,
3809  Dwarf_Error * dw_error);
3810 
3834  Dwarf_Line_Context dw_line_context,
3835  Dwarf_Signed dw_index,
3836  const char ** dw_name,
3837  Dwarf_Error * dw_error);
3838 
3867 DW_API int dwarf_srclines_version(Dwarf_Line_Context dw_line_context,
3868  Dwarf_Unsigned * dw_version,
3869  Dwarf_Small * dw_table_count,
3870  Dwarf_Error * dw_error);
3871 
3888  Dwarf_Bool * dw_returned_bool,
3889  Dwarf_Error * dw_error);
3890 
3907  Dwarf_Bool * dw_returned_bool,
3908  Dwarf_Error * dw_error);
3909 
3924 DW_API int dwarf_lineno(Dwarf_Line dw_line,
3925  Dwarf_Unsigned * dw_returned_linenum,
3926  Dwarf_Error * dw_error);
3927 
3943  Dwarf_Unsigned * dw_returned_filenum,
3944  Dwarf_Error * dw_error);
3945 
3960  Dwarf_Bool * dw_is_addr_set,
3961  Dwarf_Error * dw_error);
3962 
3977 DW_API int dwarf_lineaddr(Dwarf_Line dw_line,
3978  Dwarf_Addr * dw_returned_addr,
3979  Dwarf_Error* dw_error);
3980 
3995 DW_API int dwarf_lineoff_b(Dwarf_Line dw_line,
3996  Dwarf_Unsigned * dw_returned_lineoffset,
3997  Dwarf_Error* dw_error);
3998 
4016 DW_API int dwarf_linesrc(Dwarf_Line dw_line,
4017  char ** dw_returned_name,
4018  Dwarf_Error* dw_error);
4019 
4034 DW_API int dwarf_lineblock(Dwarf_Line dw_line,
4035  Dwarf_Bool * dw_returned_bool,
4036  Dwarf_Error* dw_error);
4037 
4038 /* We gather these into one call as it's likely one
4039  will want all or none of them. */
4064  Dwarf_Bool * dw_prologue_end,
4065  Dwarf_Bool * dw_epilogue_begin,
4066  Dwarf_Unsigned * dw_isa,
4067  Dwarf_Unsigned * dw_discriminator,
4068  Dwarf_Error * dw_error);
4069 /* End line table operations */
4070 
4076 DW_API int dwarf_linelogical(Dwarf_Line dw_line,
4077  Dwarf_Unsigned * dw_returned_logical,
4078  Dwarf_Error* dw_error);
4079 
4086 DW_API int dwarf_linecontext(Dwarf_Line dw_line,
4087  Dwarf_Unsigned * dw_returned_context,
4088  Dwarf_Error* dw_error);
4089 
4098 DW_API int dwarf_line_subprogno(Dwarf_Line /*line*/,
4099  Dwarf_Unsigned * /*ret_subprogno*/,
4100  Dwarf_Error * /*error*/);
4101 
4108 DW_API int dwarf_line_subprog(Dwarf_Line /*line*/,
4109  char ** /*returned_subprog_name*/,
4110  char ** /*returned_filename*/,
4111  Dwarf_Unsigned * /*returned_lineno*/,
4112  Dwarf_Error * /*error*/);
4113 
4135  int * dw_errcount_out,
4136  Dwarf_Error * dw_error);
4137 
4167 DW_API int dwarf_print_lines(Dwarf_Die dw_cu_die,
4168  Dwarf_Error * dw_error,
4169  int * dw_errorcount_out);
4170 
4191 DW_API struct Dwarf_Printf_Callback_Info_s
4193  struct Dwarf_Printf_Callback_Info_s * dw_callbackinfo);
4194 
4252  Dwarf_Off dw_rangesoffset,
4253  Dwarf_Die dw_die,
4254  Dwarf_Off * dw_return_realoffset,
4255  Dwarf_Ranges ** dw_rangesbuf,
4256  Dwarf_Signed * dw_rangecount,
4257  Dwarf_Unsigned * dw_bytecount,
4258  Dwarf_Error * dw_error);
4259 
4270  Dwarf_Ranges * dw_rangesbuf,
4271  Dwarf_Signed dw_rangecount);
4318  Dwarf_Half dw_theform,
4319  Dwarf_Unsigned dw_index_or_offset_value,
4320  Dwarf_Rnglists_Head * dw_head_out,
4321  Dwarf_Unsigned * dw_count_of_entries_in_head,
4322  Dwarf_Unsigned * dw_global_offset_of_rle_set,
4323  Dwarf_Error * dw_error);
4324 
4368  Dwarf_Rnglists_Head dw_head,
4369  Dwarf_Unsigned dw_entrynum,
4370  unsigned int * dw_entrylen,
4371  unsigned int * dw_rle_value_out,
4372  Dwarf_Unsigned * dw_raw1,
4373  Dwarf_Unsigned * dw_raw2,
4374  Dwarf_Bool * dw_debug_addr_unavailable,
4375  Dwarf_Unsigned * dw_cooked1,
4376  Dwarf_Unsigned * dw_cooked2,
4377  Dwarf_Error * dw_error);
4378 
4387 
4419  Dwarf_Unsigned * dw_rnglists_count,
4420  Dwarf_Error * dw_error);
4421 
4449  Dwarf_Unsigned dw_context_index,
4450  Dwarf_Unsigned dw_offsetentry_index,
4451  Dwarf_Unsigned * dw_offset_value_out,
4452  Dwarf_Unsigned * dw_global_offset_value_out,
4453  Dwarf_Error * dw_error);
4454 
4462  Dwarf_Unsigned * dw_rle_count,
4463  Dwarf_Unsigned * dw_rnglists_version,
4464  Dwarf_Unsigned * dw_rnglists_index_returned,
4465  Dwarf_Unsigned * dw_bytes_total_in_rle,
4466  Dwarf_Half * dw_offset_size,
4467  Dwarf_Half * dw_address_size,
4468  Dwarf_Half * dw_segment_selector_size,
4469  Dwarf_Unsigned * dw_overall_offset_of_this_context,
4470  Dwarf_Unsigned * dw_total_length_of_this_context,
4471  Dwarf_Unsigned * dw_offset_table_offset,
4472  Dwarf_Unsigned * dw_offset_table_entrycount,
4473  Dwarf_Bool * dw_rnglists_base_present,
4474  Dwarf_Unsigned * dw_rnglists_base,
4475  Dwarf_Bool * dw_rnglists_base_address_present,
4476  Dwarf_Unsigned * dw_rnglists_base_address,
4477  Dwarf_Bool * dw_rnglists_debug_addr_base_present,
4478  Dwarf_Unsigned * dw_rnglists_debug_addr_base,
4479  Dwarf_Error * dw_error);
4480 
4497  Dwarf_Unsigned dw_index,
4498  Dwarf_Unsigned * dw_header_offset,
4499  Dwarf_Small * dw_offset_size,
4500  Dwarf_Small * dw_extension_size,
4501  unsigned int * dw_version,
4502  Dwarf_Small * dw_address_size,
4503  Dwarf_Small * dw_segment_selector_size,
4504  Dwarf_Unsigned * dw_offset_entry_count,
4505  Dwarf_Unsigned * dw_offset_of_offset_array,
4506  Dwarf_Unsigned * dw_offset_of_first_rangeentry,
4507  Dwarf_Unsigned * dw_offset_past_last_rangeentry,
4508  Dwarf_Error * dw_error);
4509 
4520  Dwarf_Unsigned dw_contextnumber,
4521  Dwarf_Unsigned dw_entry_offset,
4522  Dwarf_Unsigned dw_endoffset,
4523  unsigned int * dw_entrylen,
4524  unsigned int * dw_entry_kind,
4525  Dwarf_Unsigned * dw_entry_operand1,
4526  Dwarf_Unsigned * dw_entry_operand2,
4527  Dwarf_Error * dw_error);
4554  Dwarf_Loc_Head_c * dw_loclist_head,
4555  Dwarf_Unsigned * dw_locentry_count,
4556  Dwarf_Error * dw_error);
4557 
4558 #define DW_LKIND_expression 0 /* DWARF2,3,4,5 */
4559 #define DW_LKIND_loclist 1 /* DWARF 2,3,4 */
4560 #define DW_LKIND_GNU_exp_list 2 /* GNU DWARF4 .dwo extension */
4561 #define DW_LKIND_loclists 5 /* DWARF5 loclists */
4562 #define DW_LKIND_unknown 99
4563 
4577  Dwarf_Loc_Head_c dw_loclist_head,
4578  unsigned int * dw_lkind,
4579  Dwarf_Error * dw_error);
4580 
4635 DW_API int dwarf_get_locdesc_entry_d(Dwarf_Loc_Head_c dw_loclist_head,
4636  Dwarf_Unsigned dw_index,
4637  Dwarf_Small * dw_lle_value_out,
4638  Dwarf_Unsigned * dw_rawlowpc,
4639  Dwarf_Unsigned * dw_rawhipc,
4640  Dwarf_Bool * dw_debug_addr_unavailable,
4641  Dwarf_Addr * dw_lowpc_cooked,
4642  Dwarf_Addr * dw_hipc_cooked,
4643  Dwarf_Unsigned * dw_locexpr_op_count_out,
4644  Dwarf_Locdesc_c * dw_locentry_out,
4645  Dwarf_Small * dw_loclist_source_out,
4646  Dwarf_Unsigned * dw_expression_offset_out,
4647  Dwarf_Unsigned * dw_locdesc_offset_out,
4648  Dwarf_Error * dw_error);
4649 
4676  Dwarf_Unsigned dw_index,
4677  Dwarf_Small * dw_operator_out,
4678  Dwarf_Unsigned * dw_operand1,
4679  Dwarf_Unsigned * dw_operand2,
4680  Dwarf_Unsigned * dw_operand3,
4681  Dwarf_Unsigned * dw_offset_for_branch,
4682  Dwarf_Error* dw_error);
4715  Dwarf_Ptr dw_expression_in,
4716  Dwarf_Unsigned dw_expression_length,
4717  Dwarf_Half dw_address_size,
4718  Dwarf_Half dw_offset_size,
4719  Dwarf_Half dw_dwarf_version,
4720  Dwarf_Loc_Head_c* dw_loc_head,
4721  Dwarf_Unsigned * dw_listlen,
4722  Dwarf_Error * dw_error);
4723 
4732 
4733 /* These interfaces allow reading the .debug_loclists
4734  section. Independently of DIEs.
4735  Normal use of .debug_loclists uses
4736  dwarf_get_loclist_c() to open access to any kind of location
4737  or loclist and uses dwarf_loc_head_c_dealloc() to
4738  deallocate that memory once one is finished with
4739  that data. So for most purposes you do not need
4740  to use these functions
4741  See dwarf_get_loclist_c() to open a Dwarf_Loc_Head_c
4742  on any type of location list or expression. */
4743 
4744 /* Loads all the loclists headers and
4745  returns DW_DLV_NO_ENTRY if the section
4746  is missing or empty.
4747  Intended to be done quite early and
4748  it is automatically
4749  done if .debug_info is loaded.
4750  Doing it more than once is never necessary
4751  or harmful. There is no deallocation call
4752  made visible, deallocation happens
4753  when dwarf_finish() is called.
4754  With DW_DLV_OK it returns the number of
4755  loclists headers in the section through
4756  loclists_count. */
4787  Dwarf_Unsigned * dw_loclists_count,
4788  Dwarf_Error * dw_error);
4789 
4816  Dwarf_Unsigned dw_context_index,
4817  Dwarf_Unsigned dw_offsetentry_index,
4818  Dwarf_Unsigned * dw_offset_value_out,
4819  Dwarf_Unsigned * dw_global_offset_value_out,
4820  Dwarf_Error * dw_error);
4821 
4837  Dwarf_Small * dw_lkind,
4838  Dwarf_Unsigned * dw_lle_count,
4839  Dwarf_Unsigned * dw_loclists_version,
4840  Dwarf_Unsigned * dw_loclists_index_returned,
4841  Dwarf_Unsigned * dw_bytes_total_in_rle,
4842  Dwarf_Half * dw_offset_size,
4843  Dwarf_Half * dw_address_size,
4844  Dwarf_Half * dw_segment_selector_size,
4845  Dwarf_Unsigned * dw_overall_offset_of_this_context,
4846  Dwarf_Unsigned * dw_total_length_of_this_context,
4847  Dwarf_Unsigned * dw_offset_table_offset,
4848  Dwarf_Unsigned * dw_offset_table_entrycount,
4849  Dwarf_Bool * dw_loclists_base_present,
4850  Dwarf_Unsigned * dw_loclists_base,
4851  Dwarf_Bool * dw_loclists_base_address_present,
4852  Dwarf_Unsigned * dw_loclists_base_address,
4853  Dwarf_Bool * dw_loclists_debug_addr_base_present,
4854  Dwarf_Unsigned * dw_loclists_debug_addr_base,
4855  Dwarf_Unsigned * dw_offset_this_lle_area,
4856  Dwarf_Error * dw_error);
4857 
4867  Dwarf_Unsigned dw_index,
4868  Dwarf_Unsigned * dw_header_offset,
4869  Dwarf_Small * dw_offset_size,
4870  Dwarf_Small * dw_extension_size,
4871  unsigned int * dw_version,
4872  Dwarf_Small * dw_address_size,
4873  Dwarf_Small * dw_segment_selector_size,
4874  Dwarf_Unsigned * dw_offset_entry_count,
4875  Dwarf_Unsigned * dw_offset_of_offset_array,
4876  Dwarf_Unsigned * dw_offset_of_first_locentry,
4877  Dwarf_Unsigned * dw_offset_past_last_locentry,
4878  Dwarf_Error * dw_error);
4879 
4885  Dwarf_Unsigned dw_contextnumber,
4886  Dwarf_Unsigned dw_entry_offset,
4887  Dwarf_Unsigned dw_endoffset,
4888  unsigned int * dw_entrylen,
4889  unsigned int * dw_entry_kind,
4890  Dwarf_Unsigned * dw_entry_operand1,
4891  Dwarf_Unsigned * dw_entry_operand2,
4892  Dwarf_Unsigned * dw_expr_ops_blocksize,
4893  Dwarf_Unsigned * dw_expr_ops_offset,
4894  Dwarf_Small ** dw_expr_opsdata,
4895  Dwarf_Error * dw_error);
4972  Dwarf_Unsigned dw_section_offset,
4973  Dwarf_Debug_Addr_Table *dw_table_header,
4974  Dwarf_Unsigned *dw_length,
4975  Dwarf_Half *dw_version,
4976  Dwarf_Small *dw_address_size,
4977  Dwarf_Unsigned *dw_at_addr_base,
4978  Dwarf_Unsigned *dw_entry_count,
4979  Dwarf_Unsigned *dw_next_table_offset,
4980  Dwarf_Error *dw_error);
4981 
5005  Dwarf_Unsigned dw_entry_index,
5006  Dwarf_Unsigned *dw_address,
5007  Dwarf_Error *dw_error);
5008 
5017  Dwarf_Debug_Addr_Table dw_dat);
5018 
5056  Dwarf_Unsigned * dw_version_out,
5057  Dwarf_Macro_Context * dw_macro_context,
5058  Dwarf_Unsigned * dw_macro_unit_offset_out,
5059  Dwarf_Unsigned * dw_macro_ops_count_out,
5060  Dwarf_Unsigned * dw_macro_ops_data_length_out,
5061  Dwarf_Error * dw_error);
5062 
5091  Dwarf_Unsigned dw_offset,
5092  Dwarf_Unsigned * dw_version_out,
5093  Dwarf_Macro_Context * dw_macro_context,
5094  Dwarf_Unsigned * dw_macro_ops_count_out,
5095  Dwarf_Unsigned * dw_macro_ops_data_length,
5096  Dwarf_Error * dw_error);
5097 
5098 /* New December 2020. libdwarf 0.1.0
5099  Sometimes its necessary to know
5100  a context total length including macro 5 header */
5114  Dwarf_Macro_Context dw_context,
5115  Dwarf_Unsigned * dw_mac_total_len,
5116  Dwarf_Error * dw_error);
5117 
5126 
5133  Dwarf_Half * dw_version,
5134  Dwarf_Unsigned * dw_mac_offset,
5135  Dwarf_Unsigned * dw_mac_len,
5136  Dwarf_Unsigned * dw_mac_header_len,
5137  unsigned int * dw_flags,
5138  Dwarf_Bool * dw_has_line_offset,
5139  Dwarf_Unsigned * dw_line_offset,
5140  Dwarf_Bool * dw_has_offset_size_64,
5141  Dwarf_Bool * dw_has_operands_table,
5142  Dwarf_Half * dw_opcode_count,
5143  Dwarf_Error * dw_error);
5144 
5168  Dwarf_Half dw_index, /* 0 to opcode_count -1 */
5169  Dwarf_Half * dw_opcode_number,
5170  Dwarf_Half * dw_operand_count,
5171  const Dwarf_Small ** dw_operand_array,
5172  Dwarf_Error * dw_error);
5173 
5198 DW_API int dwarf_get_macro_op(Dwarf_Macro_Context dw_macro_context,
5199  Dwarf_Unsigned dw_op_number,
5200  Dwarf_Unsigned * dw_op_start_section_offset,
5201  Dwarf_Half * dw_macro_operator,
5202  Dwarf_Half * dw_forms_count,
5203  const Dwarf_Small ** dw_formcode_array,
5204  Dwarf_Error * dw_error);
5205 
5244  Dwarf_Macro_Context dw_macro_context,
5245  Dwarf_Unsigned dw_op_number,
5246  Dwarf_Unsigned * dw_line_number,
5247  Dwarf_Unsigned * dw_index,
5248  Dwarf_Unsigned * dw_offset,
5249  Dwarf_Half * dw_forms_count,
5250  const char ** dw_macro_string,
5251  Dwarf_Error * dw_error);
5252 
5281  Dwarf_Macro_Context dw_macro_context,
5282  Dwarf_Unsigned dw_op_number,
5283  Dwarf_Unsigned * dw_line_number,
5284  Dwarf_Unsigned * dw_name_index_to_line_tab,
5285  const char ** dw_src_file_name,
5286  Dwarf_Error * dw_error);
5287 
5304  Dwarf_Macro_Context dw_macro_context,
5305  Dwarf_Unsigned dw_op_number,
5306  Dwarf_Unsigned * dw_target_offset,
5307  Dwarf_Error * dw_error);
5336 DW_API char* dwarf_find_macro_value_start(char * dw_macro_string);
5337 
5364  Dwarf_Off dw_macro_offset,
5365  Dwarf_Unsigned dw_maximum_count,
5366  Dwarf_Signed * dw_entry_count,
5367  Dwarf_Macro_Details ** dw_details,
5368  Dwarf_Error * dw_error);
5369 
5413  Dwarf_Cie** dw_cie_data,
5414  Dwarf_Signed* dw_cie_element_count,
5415  Dwarf_Fde** dw_fde_data,
5416  Dwarf_Signed* dw_fde_element_count,
5417  Dwarf_Error* dw_error);
5428  Dwarf_Cie** dw_cie_data,
5429  Dwarf_Signed* dw_cie_element_count,
5430  Dwarf_Fde** dw_fde_data,
5431  Dwarf_Signed* dw_fde_element_count,
5432  Dwarf_Error* dw_error);
5433 
5454  Dwarf_Cie * dw_cie_data,
5455  Dwarf_Signed dw_cie_element_count,
5456  Dwarf_Fde * dw_fde_data,
5457  Dwarf_Signed dw_fde_element_count);
5458 
5486 DW_API int dwarf_get_fde_range(Dwarf_Fde dw_fde,
5487  Dwarf_Addr* dw_low_pc,
5488  Dwarf_Unsigned* dw_func_length,
5489  Dwarf_Small **dw_fde_bytes,
5490  Dwarf_Unsigned* dw_fde_byte_length,
5491  Dwarf_Off* dw_cie_offset,
5492  Dwarf_Signed* dw_cie_index,
5493  Dwarf_Off* dw_fde_offset,
5494  Dwarf_Error* dw_error);
5495 
5502  Dwarf_Signed* dw_offset_into_exception_tables,
5503  Dwarf_Error* dw_error);
5504 
5517  Dwarf_Cie * dw_cie_returned,
5518  Dwarf_Error* dw_error);
5519 
5554  Dwarf_Unsigned * dw_bytes_in_cie,
5555  Dwarf_Small* dw_version,
5556  char ** dw_augmenter,
5557  Dwarf_Unsigned* dw_code_alignment_factor,
5558  Dwarf_Signed* dw_data_alignment_factor,
5559  Dwarf_Half* dw_return_address_register_rule,
5560  Dwarf_Small ** dw_initial_instructions,
5561  Dwarf_Unsigned* dw_initial_instructions_length,
5562  Dwarf_Half* dw_offset_size,
5563  Dwarf_Error* dw_error);
5564 
5577 DW_API int dwarf_get_cie_index(Dwarf_Cie dw_cie,
5578  Dwarf_Signed* dw_index,
5579  Dwarf_Error * dw_error);
5580 
5600  Dwarf_Small ** dw_outinstrs,
5601  Dwarf_Unsigned * dw_outlen,
5602  Dwarf_Error * dw_error);
5603 
5637  Dwarf_Addr dw_pc_requested,
5638  Dwarf_Regtable3* dw_reg_table,
5639  Dwarf_Addr* dw_row_pc,
5640  Dwarf_Bool* dw_has_more_rows,
5641  Dwarf_Addr* dw_subsequent_pc,
5642  Dwarf_Error* dw_error);
5643 
5654  Dwarf_Addr dw_pc_requested,
5655  Dwarf_Regtable3* dw_reg_table,
5656  Dwarf_Addr* dw_row_pc,
5657  Dwarf_Error* dw_error);
5658 
5659 /* See discussion of dw_value_type, libdwarf.h. */
5720  Dwarf_Half dw_table_column,
5721  Dwarf_Addr dw_pc_requested,
5722  Dwarf_Small * dw_value_type,
5723  Dwarf_Unsigned * dw_offset_relevant,
5724  Dwarf_Unsigned * dw_register,
5725  Dwarf_Signed * dw_offset,
5726  Dwarf_Block * dw_block_content,
5727  Dwarf_Addr * dw_row_pc_out,
5728  Dwarf_Bool * dw_has_more_rows,
5729  Dwarf_Addr * dw_subsequent_pc,
5730  Dwarf_Error * dw_error);
5731 
5742  Dwarf_Half dw_table_column,
5743  Dwarf_Addr dw_pc_requested,
5744  Dwarf_Small * dw_value_type,
5745  Dwarf_Unsigned * dw_offset_relevant,
5746  Dwarf_Unsigned * dw_register,
5747  Dwarf_Unsigned * dw_offset,
5748  Dwarf_Block * dw_block_content,
5749  Dwarf_Addr * dw_row_pc_out,
5750  Dwarf_Bool * dw_has_more_rows,
5751  Dwarf_Addr * dw_subsequent_pc,
5752  Dwarf_Error * dw_error);
5753 
5778  Dwarf_Addr dw_pc_requested,
5779  Dwarf_Small * dw_value_type,
5780  Dwarf_Unsigned* dw_offset_relevant,
5781  Dwarf_Unsigned* dw_register,
5782  Dwarf_Signed * dw_offset,
5783  Dwarf_Block * dw_block,
5784  Dwarf_Addr * dw_row_pc_out,
5785  Dwarf_Bool * dw_has_more_rows,
5786  Dwarf_Addr * dw_subsequent_pc,
5787  Dwarf_Error * dw_error);
5798  Dwarf_Addr dw_pc_requested,
5799  Dwarf_Small * dw_value_type,
5800  Dwarf_Unsigned* dw_offset_relevant,
5801  Dwarf_Unsigned* dw_register,
5802  Dwarf_Unsigned* dw_offset,
5803  Dwarf_Block * dw_block,
5804  Dwarf_Addr * dw_row_pc_out,
5805  Dwarf_Bool * dw_has_more_rows,
5806  Dwarf_Addr * dw_subsequent_pc,
5807  Dwarf_Error * dw_error);
5808 
5818  Dwarf_Die dw_subr_die,
5819  Dwarf_Fde * dw_returned_fde,
5820  Dwarf_Error* dw_error);
5821 
5829 DW_API int dwarf_get_fde_n(Dwarf_Fde* dw_fde_data,
5830  Dwarf_Unsigned dw_fde_index,
5831  Dwarf_Fde * dw_returned_fde,
5832  Dwarf_Error * dw_error);
5833 
5864 DW_API int dwarf_get_fde_at_pc(Dwarf_Fde* dw_fde_data,
5865  Dwarf_Addr dw_pc_of_interest,
5866  Dwarf_Fde * dw_returned_fde,
5867  Dwarf_Addr * dw_lopc,
5868  Dwarf_Addr * dw_hipc,
5869  Dwarf_Error* dw_error);
5870 
5891  Dwarf_Small ** dw_augdata,
5892  Dwarf_Unsigned * dw_augdata_len,
5893  Dwarf_Error* dw_error);
5894 
5915  Dwarf_Small ** dw_augdata,
5916  Dwarf_Unsigned * dw_augdata_len,
5917  Dwarf_Error* dw_error);
5918 
5953  Dwarf_Small * dw_instructionspointer,
5954  Dwarf_Unsigned dw_length_in_bytes,
5955  Dwarf_Frame_Instr_Head * dw_head,
5956  Dwarf_Unsigned * dw_instr_count,
5957  Dwarf_Error * dw_error);
5958 
6032  Dwarf_Frame_Instr_Head dw_head,
6033  Dwarf_Unsigned dw_instr_index,
6034  Dwarf_Unsigned * dw_instr_offset_in_instrs,
6035  Dwarf_Small * dw_cfa_operation,
6036  const char ** dw_fields_description,
6037  Dwarf_Unsigned * dw_u0,
6038  Dwarf_Unsigned * dw_u1,
6039  Dwarf_Signed * dw_s0,
6040  Dwarf_Signed * dw_s1,
6041  Dwarf_Unsigned * dw_code_alignment_factor,
6042  Dwarf_Signed * dw_data_alignment_factor,
6043  Dwarf_Block * dw_expression_block,
6044  Dwarf_Error * dw_error);
6045 
6068  Dwarf_Frame_Instr_Head dw_/* head*/,
6069  Dwarf_Unsigned dw_instr_index,
6070  Dwarf_Unsigned * dw_instr_offset_in_instrs,
6071  Dwarf_Small * dw_cfa_operation,
6072  const char ** dw_fields_description,
6073  Dwarf_Unsigned * dw_u0,
6074  Dwarf_Unsigned * dw_u1,
6075  Dwarf_Unsigned * dw_u2,
6076  Dwarf_Signed * dw_s0,
6077  Dwarf_Signed * dw_s1,
6078  Dwarf_Unsigned * dw_code_alignment_factor,
6079  Dwarf_Signed * dw_data_alignment_factor,
6080  Dwarf_Block * dw_expression_block,
6081  Dwarf_Error * dw_error);
6082 
6092  dw_head);
6093 
6111  Dwarf_Fde dw_in_fde,
6112  Dwarf_Off * dw_fde_off,
6113  Dwarf_Off * dw_cie_off,
6114  Dwarf_Error * dw_error);
6115 
6131  Dwarf_Cie dw_in_cie,
6132  Dwarf_Off * dw_cie_off,
6133  Dwarf_Error * dw_error);
6134 
6145  Dwarf_Debug dw_dbg,
6146  Dwarf_Half dw_value);
6159  Dwarf_Debug dw_dbg,
6160  Dwarf_Half dw_value);
6171  Dwarf_Debug dw_dbg,
6172  Dwarf_Half dw_value);
6173 
6184  Dwarf_Debug dw_dbg,
6185  Dwarf_Half dw_value);
6196  Dwarf_Debug dw_dbg,
6197  Dwarf_Half dw_value);
6251 DW_API int dwarf_get_abbrev(Dwarf_Debug dw_dbg,
6252  Dwarf_Unsigned dw_offset,
6253  Dwarf_Abbrev * dw_returned_abbrev,
6254  Dwarf_Unsigned* dw_length,
6255  Dwarf_Unsigned* dw_attr_count,
6256  Dwarf_Error* dw_error);
6257 
6269 DW_API int dwarf_get_abbrev_tag(Dwarf_Abbrev dw_abbrev,
6270  Dwarf_Half* dw_return_tag_number,
6271  Dwarf_Error* dw_error);
6272 
6287  Dwarf_Unsigned* dw_return_code_number,
6288  Dwarf_Error* dw_error);
6289 
6304  Dwarf_Signed* dw_return_flag,
6305  Dwarf_Error* dw_error);
6306 
6341  Dwarf_Unsigned dw_indx,
6342  Dwarf_Bool dw_filter_outliers,
6343  Dwarf_Unsigned * dw_returned_attr_num,
6344  Dwarf_Unsigned * dw_returned_form,
6345  Dwarf_Signed * dw_returned_implicit_const,
6346  Dwarf_Off * dw_offset,
6347  Dwarf_Error * dw_error);
6348 
6382 DW_API int dwarf_get_str(Dwarf_Debug dw_dbg,
6383  Dwarf_Off dw_offset,
6384  char** dw_string,
6385  Dwarf_Signed * dw_strlen_of_string,
6386  Dwarf_Error* dw_error);
6387 
6398 /* Allows applications to print the .debug_str_offsets
6399  section.
6400  Beginning at starting_offset zero,
6401  returns data about the first table found.
6402  The value *next_table_offset is the value
6403  of the next table (if any), one byte past
6404  the end of the table whose data is returned..
6405  Returns DW_DLV_NO_ENTRY if the starting offset
6406  is past the end of valid data.
6407 
6408  There is no guarantee that there are no non-0 nonsense
6409  bytes in the section outside of useful tables,
6410  so this can fail and return nonsense or
6411  DW_DLV_ERROR if such garbage exists.
6412 */
6413 
6431  Dwarf_Str_Offsets_Table * dw_table_data,
6432  Dwarf_Error * dw_error);
6433 
6452  Dwarf_Str_Offsets_Table dw_table_data,
6453  Dwarf_Error * dw_error);
6454 
6489  Dwarf_Str_Offsets_Table dw_table_data,
6490  Dwarf_Unsigned * dw_unit_length,
6491  Dwarf_Unsigned * dw_unit_length_offset,
6492  Dwarf_Unsigned * dw_table_start_offset,
6493  Dwarf_Half * dw_entry_size,
6494  Dwarf_Half * dw_version,
6495  Dwarf_Half * dw_padding,
6496  Dwarf_Unsigned * dw_table_value_count,
6497  Dwarf_Error * dw_error);
6498 
6519  Dwarf_Str_Offsets_Table dw_table_data,
6520  Dwarf_Unsigned dw_index_to_entry,
6521  Dwarf_Unsigned * dw_entry_value,
6522  Dwarf_Error * dw_error);
6523 
6542  Dwarf_Str_Offsets_Table dw_table_data,
6543  Dwarf_Unsigned * dw_wasted_byte_count,
6544  Dwarf_Unsigned * dw_table_count,
6545  Dwarf_Error * dw_error);
6546 
6565 DW_API char* dwarf_errmsg(Dwarf_Error dw_error);
6573 DW_API char* dwarf_errmsg_by_number(Dwarf_Unsigned dw_errornum);
6574 
6588 DW_API void dwarf_error_creation(Dwarf_Debug dw_dbg ,
6589  Dwarf_Error * dw_error, char * dw_errmsg);
6590 
6600  Dwarf_Error dw_error);
6642 DW_API void dwarf_dealloc(Dwarf_Debug dw_dbg,
6643  void* dw_space, Dwarf_Unsigned dw_type);
6664  Dwarf_Half * dw_version,
6665  Dwarf_Small * dw_is_supplementary,
6666  char ** dw_filename,
6667  Dwarf_Unsigned * dw_checksum_len,
6668  Dwarf_Small ** dw_checksum,
6669  Dwarf_Error * dw_error);
6706  Dwarf_Off dw_starting_offset,
6707  Dwarf_Dnames_Head * dw_dn,
6708  Dwarf_Off * dw_offset_of_next_table,
6709  Dwarf_Error * dw_error);
6710 
6719 
6765  Dwarf_Unsigned dw_index,
6766  Dwarf_Unsigned *dw_abbrev_offset,
6767  Dwarf_Unsigned *dw_abbrev_code,
6768  Dwarf_Unsigned *dw_abbrev_tag,
6769  Dwarf_Unsigned dw_array_size,
6770  Dwarf_Half *dw_idxattr_array,
6771  Dwarf_Half *dw_form_array,
6772  Dwarf_Unsigned *dw_idxattr_count);
6773 
6792  Dwarf_Unsigned * dw_comp_unit_count,
6793  Dwarf_Unsigned * dw_local_type_unit_count,
6794  Dwarf_Unsigned * dw_foreign_type_unit_count,
6795  Dwarf_Unsigned * dw_bucket_count,
6796  Dwarf_Unsigned * dw_name_count,
6797  /* The following are counted in bytes */
6798  Dwarf_Unsigned * dw_abbrev_table_size,
6799  Dwarf_Unsigned * dw_entry_pool_size,
6800  Dwarf_Unsigned * dw_augmentation_string_size,
6801  char ** dw_augmentation_string,
6802  Dwarf_Unsigned * dw_section_size,
6803  Dwarf_Half * dw_table_version,
6804  Dwarf_Half * dw_offset_size,
6805  Dwarf_Error * dw_error);
6806 
6818  Dwarf_Unsigned * dw_header_offset,
6819  Dwarf_Unsigned * dw_cu_table_offset,
6820  Dwarf_Unsigned * dw_tu_local_offset,
6821  Dwarf_Unsigned * dw_foreign_tu_offset,
6822  Dwarf_Unsigned * dw_bucket_offset,
6823  Dwarf_Unsigned * dw_hashes_offset,
6824  Dwarf_Unsigned * dw_stringoffsets_offset,
6825  Dwarf_Unsigned * dw_entryoffsets_offset,
6826  Dwarf_Unsigned * dw_abbrev_table_offset,
6827  Dwarf_Unsigned * dw_entry_pool_offset,
6828  Dwarf_Error * dw_error);
6829 
6859  const char * dw_type,
6860  Dwarf_Unsigned dw_index_number,
6861  Dwarf_Unsigned * dw_offset,
6862  Dwarf_Sig8 * dw_sig,
6863  Dwarf_Error * dw_error);
6864 
6887  Dwarf_Unsigned dw_bucket_number,
6888  Dwarf_Unsigned * dw_index,
6889  Dwarf_Unsigned * dw_indexcount,
6890  Dwarf_Error * dw_error);
6891 
6942  Dwarf_Unsigned dw_name_index,
6943  Dwarf_Unsigned * dw_bucket_number,
6944  Dwarf_Unsigned * dw_hash_value,
6945  Dwarf_Unsigned * dw_offset_to_debug_str,
6946  char * * dw_ptrtostr,
6947  Dwarf_Unsigned * dw_offset_in_entrypool,
6948  Dwarf_Unsigned * dw_abbrev_number,
6949  Dwarf_Half * dw_abbrev_tag,
6950  Dwarf_Unsigned dw_array_size,
6951  Dwarf_Half * dw_idxattr_array,
6952  Dwarf_Half * dw_form_array,
6953  Dwarf_Unsigned * dw_idxattr_count,
6954  Dwarf_Error * dw_error);
6955 
6998  Dwarf_Unsigned dw_offset_in_entrypool,
6999  Dwarf_Unsigned * dw_abbrev_code,
7000  Dwarf_Half * dw_tag,
7001  Dwarf_Unsigned * dw_value_count,
7002  Dwarf_Unsigned * dw_index_of_abbrev,
7003  Dwarf_Unsigned * dw_offset_of_initial_value,
7004  Dwarf_Error * dw_error);
7005 
7066  Dwarf_Unsigned dw_index_of_abbrev,
7067  Dwarf_Unsigned dw_offset_in_entrypool_of_values,
7068  Dwarf_Unsigned dw_arrays_length,
7069  Dwarf_Half *dw_array_idx_number,
7070  Dwarf_Half *dw_array_form,
7071  Dwarf_Unsigned *dw_array_of_offsets,
7072  Dwarf_Sig8 *dw_array_of_signatures,
7073  Dwarf_Bool *dw_single_cu,
7074  Dwarf_Unsigned *dw_cu_offset,
7075  Dwarf_Unsigned *dw_offset_of_next_entrypool,
7076  Dwarf_Error *dw_error);
7077 
7104 DW_API int dwarf_get_aranges(Dwarf_Debug dw_dbg,
7105  Dwarf_Arange** dw_aranges,
7106  Dwarf_Signed * dw_arange_count,
7107  Dwarf_Error* dw_error);
7108 
7128 DW_API int dwarf_get_arange(Dwarf_Arange* dw_aranges,
7129  Dwarf_Unsigned dw_arange_count,
7130  Dwarf_Addr dw_address,
7131  Dwarf_Arange * dw_returned_arange,
7132  Dwarf_Error* dw_error);
7133 
7147  Dwarf_Off * dw_return_offset,
7148  Dwarf_Error* dw_error);
7149 
7163  Dwarf_Off * dw_return_cu_header_offset,
7164  Dwarf_Error* dw_error);
7165 
7192  Dwarf_Unsigned* dw_segment,
7193  Dwarf_Unsigned* dw_segment_entry_size,
7194  Dwarf_Addr * dw_start,
7195  Dwarf_Unsigned* dw_length,
7196  Dwarf_Off * dw_cu_die_offset,
7197  Dwarf_Error * dw_error );
7247 DW_API int dwarf_get_globals(Dwarf_Debug dw_dbg,
7248  Dwarf_Global** dw_globals,
7249  Dwarf_Signed * dw_number_of_globals,
7250  Dwarf_Error * dw_error);
7251 
7252 #define DW_GL_GLOBALS 0 /* .debug_pubnames and .debug_names */
7253 #define DW_GL_PUBTYPES 1 /* .debug_pubtypes */
7254 /* the following are IRIX ONLY */
7255 #define DW_GL_FUNCS 2 /* .debug_funcnames */
7256 #define DW_GL_TYPES 3 /* .debug_typenames */
7257 #define DW_GL_VARS 4 /* .debug_varnames */
7258 #define DW_GL_WEAKS 5 /* .debug_weaknames */
7282  Dwarf_Global** dw_pubtypes,
7283  Dwarf_Signed * dw_number_of_pubtypes,
7284  Dwarf_Error * dw_error);
7285 
7312  int dw_requested_section,
7313  Dwarf_Global **dw_contents,
7314  Dwarf_Signed *dw_count,
7315  Dwarf_Error *dw_error);
7316 
7328  Dwarf_Global* dw_global_like,
7329  Dwarf_Signed dw_count);
7330 
7343 DW_API int dwarf_globname(Dwarf_Global dw_global,
7344  char ** dw_returned_name,
7345  Dwarf_Error* dw_error);
7346 
7360  Dwarf_Off * dw_die_offset,
7361  Dwarf_Error * dw_error);
7362 
7378  Dwarf_Off* dw_cu_header_offset,
7379  Dwarf_Error* dw_error);
7380 
7400  char ** dw_returned_name,
7401  Dwarf_Off* dw_die_offset,
7402  Dwarf_Off* dw_cu_die_offset,
7403  Dwarf_Error* dw_error);
7404 
7418 
7430  int * dw_category, /* DW_GL_GLOBAL for example */
7431  Dwarf_Off * dw_offset_pub_header,
7432  Dwarf_Unsigned * dw_length_size,
7433  Dwarf_Unsigned * dw_length_pub,
7434  Dwarf_Unsigned * dw_version,
7435  Dwarf_Unsigned * dw_header_info_offset,
7436  Dwarf_Unsigned * dw_info_length,
7437  Dwarf_Error * dw_error);
7438 
7462  int dw_flag);
7463 
7498  Dwarf_Bool dw_which_section,
7499  Dwarf_Gnu_Index_Head *dw_head,
7500  Dwarf_Unsigned *dw_index_block_count_out,
7501  Dwarf_Error *dw_error);
7549  Dwarf_Unsigned dw_number,
7550  Dwarf_Unsigned *dw_block_length,
7551  Dwarf_Half *dw_version,
7552  Dwarf_Unsigned *dw_offset_into_debug_info,
7553  Dwarf_Unsigned *dw_size_of_debug_info_area,
7554  Dwarf_Unsigned *dw_count_of_index_entries,
7555  Dwarf_Error *dw_error);
7556 
7589  Dwarf_Gnu_Index_Head dw_head,
7590  Dwarf_Unsigned dw_blocknumber,
7591  Dwarf_Unsigned dw_entrynumber,
7592  Dwarf_Unsigned *dw_offset_in_debug_info,
7593  const char **dw_name_string,
7594  unsigned char *dw_flagbyte,
7595  unsigned char *dw_staticorglobal,
7596  unsigned char *dw_typeofentry,
7597  Dwarf_Error *dw_error);
7598 
7660  Dwarf_Gdbindex * dw_gdbindexptr,
7661  Dwarf_Unsigned * dw_version,
7662  Dwarf_Unsigned * dw_cu_list_offset,
7663  Dwarf_Unsigned * dw_types_cu_list_offset,
7664  Dwarf_Unsigned * dw_address_area_offset,
7665  Dwarf_Unsigned * dw_symbol_table_offset,
7666  Dwarf_Unsigned * dw_constant_pool_offset,
7667  Dwarf_Unsigned * dw_section_size,
7668  const char ** dw_section_name,
7669  Dwarf_Error * dw_error);
7670 
7678 DW_API void dwarf_dealloc_gdbindex(Dwarf_Gdbindex dw_gdbindexptr);
7679 
7691  Dwarf_Gdbindex dw_gdbindexptr,
7692  Dwarf_Unsigned * dw_list_length,
7693  Dwarf_Error * dw_error);
7694 
7713  Dwarf_Gdbindex dw_gdbindexptr,
7714  Dwarf_Unsigned dw_entryindex,
7715  Dwarf_Unsigned * dw_cu_offset,
7716  Dwarf_Unsigned * dw_cu_length,
7717  Dwarf_Error * dw_error);
7718 
7731  Dwarf_Gdbindex dw_gdbindexptr,
7732  Dwarf_Unsigned * dw_types_list_length,
7733  Dwarf_Error * dw_error);
7734 
7735 /* entryindex: 0 to types_list_length -1 */
7758  Dwarf_Gdbindex dw_gdbindexptr,
7759  Dwarf_Unsigned dw_types_entryindex,
7760  Dwarf_Unsigned * dw_cu_offset,
7761  Dwarf_Unsigned * dw_tu_offset,
7762  Dwarf_Unsigned * dw_type_signature,
7763  Dwarf_Error * dw_error);
7764 
7780  Dwarf_Gdbindex dw_gdbindexptr,
7781  Dwarf_Unsigned * dw_addressarea_list_length,
7782  Dwarf_Error * dw_error);
7783 
7803  Dwarf_Gdbindex dw_gdbindexptr,
7804  Dwarf_Unsigned dw_entryindex,
7805  Dwarf_Unsigned * dw_low_address,
7806  Dwarf_Unsigned * dw_high_address,
7807  Dwarf_Unsigned * dw_cu_index,
7808  Dwarf_Error * dw_error);
7809 
7823  Dwarf_Gdbindex dw_gdbindexptr,
7824  Dwarf_Unsigned * dw_symtab_list_length,
7825  Dwarf_Error * dw_error);
7826 
7847  Dwarf_Gdbindex dw_gdbindexptr,
7848  Dwarf_Unsigned dw_entryindex,
7849  Dwarf_Unsigned * dw_string_offset,
7850  Dwarf_Unsigned * dw_cu_vector_offset,
7851  Dwarf_Error * dw_error);
7852 
7871  Dwarf_Gdbindex dw_gdbindexptr,
7872  Dwarf_Unsigned dw_cuvector_offset,
7873  Dwarf_Unsigned * dw_innercount,
7874  Dwarf_Error * dw_error);
7875 
7893  Dwarf_Gdbindex dw_gdbindexptr,
7894  Dwarf_Unsigned dw_cuvector_offset_in,
7895  Dwarf_Unsigned dw_innerindex,
7896  Dwarf_Unsigned * dw_field_value,
7897  Dwarf_Error * dw_error);
7898 
7922  Dwarf_Gdbindex dw_gdbindexptr,
7923  Dwarf_Unsigned dw_field_value,
7924  Dwarf_Unsigned * dw_cu_index,
7925  Dwarf_Unsigned * dw_symbol_kind,
7926  Dwarf_Unsigned * dw_is_static,
7927  Dwarf_Error * dw_error);
7928 
7945  Dwarf_Gdbindex dw_gdbindexptr,
7946  Dwarf_Unsigned dw_stringoffset,
7947  const char ** dw_string_ptr,
7948  Dwarf_Error * dw_error);
7990  const char * dw_section_type, /* "tu" or "cu" */
7991  Dwarf_Xu_Index_Header * dw_xuhdr,
7992  Dwarf_Unsigned * dw_version_number,
7993  Dwarf_Unsigned * dw_section_count,
7994  Dwarf_Unsigned * dw_units_count,
7995  Dwarf_Unsigned * dw_hash_slots_count,
7996  const char ** dw_sect_name,
7997  Dwarf_Error * dw_error);
7998 
8008 
8024  Dwarf_Xu_Index_Header dw_xuhdr,
8025  const char ** dw_typename,
8026  const char ** dw_sectionname,
8027  Dwarf_Error * dw_error);
8028 
8061  Dwarf_Unsigned dw_index,
8062  Dwarf_Sig8 * dw_hash_value,
8063  Dwarf_Unsigned * dw_index_to_sections,
8064  Dwarf_Error * dw_error);
8065 
8066 /* Columns 0 to L-1, valid. */
8090  Dwarf_Unsigned dw_column_index,
8091  Dwarf_Unsigned* dw_SECT_number,
8092  const char ** dw_SECT_name,
8093  Dwarf_Error * dw_error);
8094 
8117  Dwarf_Xu_Index_Header dw_xuhdr,
8118  Dwarf_Unsigned dw_row_index,
8119  Dwarf_Unsigned dw_column_index,
8120  Dwarf_Unsigned* dw_sec_offset,
8121  Dwarf_Unsigned* dw_sec_size,
8122  Dwarf_Error * dw_error);
8123 
8146  Dwarf_Debug_Fission_Per_CU * dw_percu_out,
8147  Dwarf_Error * dw_error);
8148 
8167  Dwarf_Sig8 * dw_hash_sig,
8168  const char * dw_cu_type,
8169  Dwarf_Debug_Fission_Per_CU * dw_percu_out,
8170  Dwarf_Error * dw_error);
8171 
8172 /* END debugfission dwp .debug_cu_index
8173  and .debug_tu_index meaningful operations. */
8174 
8269  char ** dw_debuglink_path_returned,
8270  unsigned char ** dw_crc_returned,
8271  char ** dw_debuglink_fullpath_returned,
8272  unsigned int * dw_debuglink_path_length_returned,
8273  unsigned int * dw_buildid_type_returned,
8274  char ** dw_buildid_owner_name_returned,
8275  unsigned char ** dw_buildid_returned,
8276  unsigned int * dw_buildid_length_returned,
8277  char *** dw_paths_returned,
8278  unsigned int * dw_paths_length_returned,
8279  Dwarf_Error* dw_error);
8280 
8313 DW_API int dwarf_suppress_debuglink_crc(int dw_suppress);
8314 
8334  const char * dw_pathname,
8335  Dwarf_Error* dw_error);
8336 
8364 DW_API int dwarf_crc32(Dwarf_Debug dw_dbg,
8365  unsigned char * dw_crcbuf,
8366  Dwarf_Error * dw_error);
8367 
8391 DW_API unsigned int dwarf_basic_crc32(const unsigned char * dw_buf,
8392  unsigned long dw_len,
8393  unsigned int dw_init);
8412 #define DW_HARMLESS_ERROR_CIRCULAR_LIST_DEFAULT_SIZE 4
8413 
8457  unsigned int dw_count,
8458  const char ** dw_errmsg_ptrs_array,
8459  unsigned int * dw_newerr_count);
8460 
8482  Dwarf_Debug dw_dbg,
8483  unsigned int dw_maxcount);
8484 
8497  char * dw_newerror);
8533 DW_API int dwarf_get_ACCESS_name(unsigned int dw_val_in,
8534  const char ** dw_s_out);
8537 DW_API int dwarf_get_ADDR_name(unsigned int dw_val_in,
8538  const char ** dw_s_out);
8541 DW_API int dwarf_get_AT_name(unsigned int dw_val_in,
8542  const char ** dw_s_out);
8545 DW_API int dwarf_get_ATCF_name(unsigned int dw_val_in,
8546  const char ** dw_s_out);
8549 DW_API int dwarf_get_ATE_name(unsigned int dw_val_in,
8550  const char ** dw_s_out);
8553 DW_API int dwarf_get_CC_name(unsigned int dw_val_in,
8554  const char ** dw_s_out);
8557 DW_API int dwarf_get_CFA_name(unsigned int dw_val_in,
8558  const char ** dw_s_out);
8561 DW_API int dwarf_get_children_name(unsigned int dw_val_in,
8562  const char ** dw_s_out);
8565 DW_API int dwarf_get_CHILDREN_name(unsigned int dw_val_in,
8566  const char ** dw_s_out);
8569 DW_API int dwarf_get_DEFAULTED_name(unsigned int dw_val_in,
8570  const char ** dw_s_out);
8573 DW_API int dwarf_get_DS_name(unsigned int dw_val_in,
8574  const char ** dw_s_out);
8577 DW_API int dwarf_get_DSC_name(unsigned int dw_val_in,
8578  const char ** dw_s_out);
8583 DW_API int dwarf_get_GNUIKIND_name(unsigned int dw_val_in,
8584  const char ** dw_s_out);
8589 DW_API int dwarf_get_EH_name(unsigned int dw_val_in,
8590  const char ** dw_s_out);
8593 DW_API int dwarf_get_END_name(unsigned int dw_val_in,
8594  const char ** dw_s_out);
8597 DW_API int dwarf_get_FORM_name(unsigned int dw_val_in,
8598  const char ** dw_s_out);
8605 DW_API int dwarf_get_FRAME_name(unsigned int dw_val_in,
8606  const char ** dw_s_out);
8611 DW_API int dwarf_get_GNUIVIS_name(unsigned int dw_val_in,
8612  const char ** dw_s_out);
8613 
8616 DW_API int dwarf_get_ID_name(unsigned int dw_val_in,
8617  const char ** dw_s_out);
8620 DW_API int dwarf_get_IDX_name(unsigned int dw_val_in,
8621  const char ** dw_s_out);
8624 DW_API int dwarf_get_INL_name(unsigned int dw_val_in,
8625  const char ** dw_s_out);
8628 DW_API int dwarf_get_ISA_name(unsigned int dw_val_in,
8629  const char ** dw_s_out);
8632 DW_API int dwarf_get_LANG_name(unsigned int dw_val_in,
8633  const char ** dw_s_out);
8636 DW_API int dwarf_get_LLE_name(unsigned int dw_val_in,
8637  const char ** dw_s_out);
8643 DW_API int dwarf_get_LLEX_name(unsigned int dw_val_in,
8644  const char ** dw_s_out );
8645 
8648 DW_API int dwarf_get_LNCT_name(unsigned int dw_val_in,
8649  const char ** dw_s_out);
8652 DW_API int dwarf_get_LNE_name(unsigned int dw_val_in,
8653  const char ** dw_s_out);
8656 DW_API int dwarf_get_LNS_name(unsigned int dw_val_in,
8657  const char ** dw_s_out);
8662 DW_API int dwarf_get_MACINFO_name(unsigned int dw_val_in,
8663  const char ** dw_s_out);
8668 DW_API int dwarf_get_MACRO_name(unsigned int dw_val_in,
8669  const char ** dw_s_out);
8672 DW_API int dwarf_get_OP_name(unsigned int dw_val_in,
8673  const char ** dw_s_out);
8676 DW_API int dwarf_get_ORD_name(unsigned int dw_val_in,
8677  const char ** dw_s_out);
8680 DW_API int dwarf_get_RLE_name(unsigned int dw_val_in,
8681  const char ** dw_s_out);
8684 DW_API int dwarf_get_SECT_name(unsigned int dw_val_in,
8685  const char ** dw_s_out);
8688 DW_API int dwarf_get_TAG_name(unsigned int dw_val_in,
8689  const char ** dw_s_out);
8692 DW_API int dwarf_get_UT_name(unsigned int dw_val_in,
8693  const char ** dw_s_out);
8696 DW_API int dwarf_get_VIRTUALITY_name(unsigned int dw_val_in,
8697  const char ** dw_s_out);
8700 DW_API int dwarf_get_VIS_name(unsigned int dw_val_in,
8701  const char ** dw_s_out);
8702 
8714  const char ** dw_s_out);
8769  Dwarf_Bool dw_is_info,
8770  const char **dw_sec_name,
8771  Dwarf_Error *dw_error);
8772 
8780  const char ** dw_sec_name,
8781  Dwarf_Error * dw_error);
8782 
8786  const char ** dw_sec_name_out,
8787  Dwarf_Error * dw_err);
8788 
8832  const char * dw_std_section_name,
8833  const char ** dw_actual_sec_name_out,
8834  Dwarf_Small * dw_marked_zcompressed,
8835  Dwarf_Small * dw_marked_zlib_compressed,
8836  Dwarf_Small * dw_marked_shf_compressed,
8837  Dwarf_Unsigned * dw_compressed_length,
8838  Dwarf_Unsigned * dw_uncompressed_length,
8839  Dwarf_Error * dw_error);
8840 
8846  const char ** dw_section_name_out,
8847  Dwarf_Error * dw_error);
8848 
8855  const char ** dw_section_name_out,
8856  Dwarf_Error * dw_error);
8857 
8862  const char ** dw_section_name_out,
8863  Dwarf_Error * dw_error);
8864 
8869  const char ** dw_section_name_out,
8870  Dwarf_Error * dw_error);
8871 
8872 /* These two get the offset or address size as defined
8873  by the object format (not by DWARF). */
8880  Dwarf_Half * dw_offset_size,
8881  Dwarf_Error * dw_error);
8882 
8889  Dwarf_Half * dw_addr_size,
8890  Dwarf_Error * dw_error);
8891 
8896  const char ** dw_section_name_out,
8897  Dwarf_Error * dw_error);
8898 
8903  const char ** dw_section_name_out,
8904  Dwarf_Error * dw_error);
8905 
8920  const char ** dw_section_name_out,
8921  Dwarf_Error * dw_error);
8922 
8970  const char * dw_section_name,
8971  Dwarf_Addr * dw_section_addr,
8972  Dwarf_Unsigned* dw_section_size,
8973  Dwarf_Unsigned* dw_section_flags,
8974  Dwarf_Unsigned* dw_section_offset,
8975  Dwarf_Error * dw_error);
8976 
8990  const char * dw_section_name,
8991  Dwarf_Addr * dw_section_addr,
8992  Dwarf_Unsigned* dw_section_size,
8993  Dwarf_Error * dw_error);
8994 
9041  int dw_section_index,
9042  const char ** dw_section_name,
9043  Dwarf_Addr* dw_section_addr,
9044  Dwarf_Unsigned* dw_section_size,
9045  Dwarf_Unsigned* dw_section_flags,
9046  Dwarf_Unsigned* dw_section_offset,
9047  Dwarf_Error* dw_error);
9048 
9062  int dw_section_index,
9063  const char ** dw_section_name,
9064  Dwarf_Addr* dw_section_addr,
9065  Dwarf_Unsigned* dw_section_size,
9066  Dwarf_Error* dw_error);
9067 
9146  Dwarf_Small *dw_ftype,
9147  Dwarf_Small *dw_obj_pointersize,
9148  Dwarf_Bool *dw_obj_is_big_endian,
9149  Dwarf_Unsigned *dw_obj_machine, /*architecture*/
9150  Dwarf_Unsigned *dw_obj_flags,
9151  Dwarf_Small *dw_path_source,
9152  Dwarf_Unsigned *dw_ub_offset,
9153  Dwarf_Unsigned *dw_ub_count,
9154  Dwarf_Unsigned *dw_ub_index,
9155  Dwarf_Unsigned *dw_comdat_groupnumber);
9156 
9169 
9189  Dwarf_Unsigned * dw_debug_info_size,
9190  Dwarf_Unsigned * dw_debug_abbrev_size,
9191  Dwarf_Unsigned * dw_debug_line_size,
9192  Dwarf_Unsigned * dw_debug_loc_size,
9193  Dwarf_Unsigned * dw_debug_aranges_size,
9194 
9195  Dwarf_Unsigned * dw_debug_macinfo_size,
9196  Dwarf_Unsigned * dw_debug_pubnames_size,
9197  Dwarf_Unsigned * dw_debug_str_size,
9198  Dwarf_Unsigned * dw_debug_frame_size,
9199  Dwarf_Unsigned * dw_debug_ranges_size,
9200 
9201  Dwarf_Unsigned * dw_debug_pubtypes_size,
9202  Dwarf_Unsigned * dw_debug_types_size,
9203  Dwarf_Unsigned * dw_debug_macro_size,
9204  Dwarf_Unsigned * dw_debug_str_offsets_size,
9205  Dwarf_Unsigned * dw_debug_sup_size,
9206 
9207  Dwarf_Unsigned * dw_debug_cu_index_size,
9208  Dwarf_Unsigned * dw_debug_tu_index_size,
9209  Dwarf_Unsigned * dw_debug_names_size,
9210  Dwarf_Unsigned * dw_debug_loclists_size,
9211  Dwarf_Unsigned * dw_debug_rnglists_size);
9261  Dwarf_Unsigned *dw_section_count_out,
9262  Dwarf_Unsigned *dw_group_count_out,
9263  Dwarf_Unsigned *dw_selected_group_out,
9264  Dwarf_Unsigned *dw_map_entry_count_out,
9265  Dwarf_Error *dw_error);
9266 
9298  Dwarf_Unsigned dw_map_entry_count,
9299  Dwarf_Unsigned *dw_group_numbers_array,
9300  Dwarf_Unsigned *dw_sec_numbers_array,
9301  const char **dw_sec_names_array,
9302  Dwarf_Error *dw_error);
9317 DW_API int dwarf_encode_leb128(Dwarf_Unsigned dw_val,
9318  int *dw_nbytes,
9319  char *dw_space,
9320  int dw_splen);
9321 DW_API int dwarf_encode_signed_leb128(Dwarf_Signed dw_val,
9322  int *dw_nbytes,
9323  char *dw_space,
9324  int dw_splen);
9325 /* Same for LEB decoding routines.
9326  caller sets endptr to an address one past the last valid
9327  address the library should be allowed to
9328  access. */
9329 DW_API int dwarf_decode_leb128(char *dw_leb,
9330  Dwarf_Unsigned *dw_leblen,
9331  Dwarf_Unsigned *dw_outval,
9332  char *dw_endptr);
9333 DW_API int dwarf_decode_signed_leb128(char *dw_leb,
9334  Dwarf_Unsigned *dw_leblen,
9335  Dwarf_Signed *dw_outval,
9336  char *dw_endptr);
9353 DW_API const char * dwarf_package_version(void);
9354 
9370 DW_API int dwarf_set_stringcheck(int dw_stringcheck);
9371 
9393 DW_API int dwarf_set_reloc_application(int dw_apply);
9394 
9420  (void *, const void *, unsigned long);
9421 
9422 /* A global flag in libdwarf. Applies to all Dwarf_Debug */
9423 DW_API extern Dwarf_Cmdline_Options dwarf_cmdline_options;
9424 
9440  Dwarf_Cmdline_Options dw_dd_options);
9441 
9460 DW_API int dwarf_set_de_alloc_flag(int dw_v);
9461 
9484  Dwarf_Debug dw_dbg,
9485  Dwarf_Small dw_value);
9486 
9513  Dwarf_Debug dw_dbg,
9514  Dwarf_Unsigned *dw_current_index,
9515  Dwarf_Unsigned *dw_available_count);
9516 
9535 DW_API int dwarf_object_detector_path_b(const char * dw_path,
9536  char *dw_outpath_buffer,
9537  unsigned long dw_outpathlen,
9538  char ** dw_gl_pathnames,
9539  unsigned int dw_gl_pathcount,
9540  unsigned int *dw_ftype,
9541  unsigned int *dw_endian,
9542  unsigned int *dw_offsetsize,
9543  Dwarf_Unsigned *dw_filesize,
9544  unsigned char *dw_pathsource,
9545  int * dw_errcode);
9546 
9547 /* Solely looks for dSYM */
9548 DW_API int dwarf_object_detector_path_dSYM(const char * dw_path,
9549  char * dw_outpath,
9550  unsigned long dw_outpath_len,
9551  char ** dw_gl_pathnames,
9552  unsigned int dw_gl_pathcount,
9553  unsigned int *dw_ftype,
9554  unsigned int *dw_endian,
9555  unsigned int *dw_offsetsize,
9556  Dwarf_Unsigned *dw_filesize,
9557  unsigned char *dw_pathsource,
9558  int * dw_errcode);
9559 
9560 DW_API int dwarf_object_detector_fd(int dw_fd,
9561  unsigned int *dw_ftype,
9562  unsigned int *dw_endian,
9563  unsigned int *dw_offsetsize,
9564  Dwarf_Unsigned *dw_filesize,
9565  int *dw_errcode);
9566 
9570 #ifdef __cplusplus
9571 }
9572 #endif /* __cplusplus */
9573 #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:676
struct Dwarf_Fde_s * Dwarf_Fde
Definition: libdwarf.h:654
struct Dwarf_Weak_s * Dwarf_Weak
Definition: libdwarf.h:636
struct Dwarf_Regtable3_s Dwarf_Regtable3
struct Dwarf_Debug_Addr_Table_s * Dwarf_Debug_Addr_Table
Definition: libdwarf.h:596
struct Dwarf_Debug_s * Dwarf_Debug
Definition: libdwarf.h:586
struct Dwarf_Regtable_Entry3_s Dwarf_Regtable_Entry3
struct Dwarf_Die_s * Dwarf_Die
Definition: libdwarf.h:591
struct Dwarf_Dnames_Head_s * Dwarf_Dnames_Head
Definition: libdwarf.h:692
void(* dwarf_printf_callback_function_type)(void *dw_user_pointer, const char *dw_linecontent)
Definition: libdwarf.h:384
struct Dwarf_Str_Offsets_Table_s * Dwarf_Str_Offsets_Table
Definition: libdwarf.h:445
struct Dwarf_Gdbindex_s * Dwarf_Gdbindex
Definition: libdwarf.h:670
struct Dwarf_Line_s * Dwarf_Line
Definition: libdwarf.h:602
struct Dwarf_Abbrev_s * Dwarf_Abbrev
Definition: libdwarf.h:648
struct Dwarf_Func_s * Dwarf_Func
Definition: libdwarf.h:624
struct Dwarf_Block_s Dwarf_Block
struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head
Definition: libdwarf.h:835
struct Dwarf_Global_s * Dwarf_Global
Definition: libdwarf.h:608
struct Dwarf_Frame_Instr_Head_s * Dwarf_Frame_Instr_Head
Definition: libdwarf.h:360
struct Dwarf_Error_s * Dwarf_Error
Definition: libdwarf.h:580
struct Dwarf_Gnu_Index_Head_s * Dwarf_Gnu_Index_Head
Definition: libdwarf.h:347
struct Dwarf_Macro_Context_s * Dwarf_Macro_Context
Definition: libdwarf.h:685
struct Dwarf_Line_Context_s * Dwarf_Line_Context
Definition: libdwarf.h:680
struct Dwarf_Sig8_s Dwarf_Sig8
struct Dwarf_Locdesc_c_s * Dwarf_Locdesc_c
Definition: libdwarf.h:331
struct Dwarf_Dsc_Head_s * Dwarf_Dsc_Head
Definition: libdwarf.h:353
struct Dwarf_Form_Data16_s Dwarf_Form_Data16
struct Dwarf_Type_s * Dwarf_Type
Definition: libdwarf.h:617
struct Dwarf_Ranges_s Dwarf_Ranges
struct Dwarf_Loc_Head_c_s * Dwarf_Loc_Head_c
Definition: libdwarf.h:337
struct Dwarf_Cie_s * Dwarf_Cie
Definition: libdwarf.h:659
struct Dwarf_Var_s * Dwarf_Var
Definition: libdwarf.h:630
void(* Dwarf_Handler)(Dwarf_Error dw_error, Dwarf_Ptr dw_errarg)
Definition: libdwarf.h:701
struct Dwarf_Arange_s * Dwarf_Arange
Definition: libdwarf.h:665
struct Dwarf_Attribute_s * Dwarf_Attribute
Definition: libdwarf.h:641
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:224
Dwarf_Form_Class
Definition: libdwarf.h:259
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_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 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:9419
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_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:320
Definition: libdwarf.h:431
Definition: libdwarf.h:807
Definition: libdwarf.h:292
Definition: libdwarf.h:711
Definition: libdwarf.h:798
Definition: libdwarf.h:779
Definition: libdwarf.h:761
Definition: libdwarf.h:403
Definition: libdwarf.h:452
Definition: libdwarf.h:564
Definition: libdwarf.h:536
Definition: libdwarf.h:303