libdwarf
Loading...
Searching...
No Matches
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-2024 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
77extern "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 "2.3.2"
103#define DW_LIBDWARF_VERSION_MAJOR 2
104#define DW_LIBDWARF_VERSION_MINOR 3
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
196typedef unsigned long long Dwarf_Unsigned;
197typedef signed long long Dwarf_Signed;
198typedef unsigned long long Dwarf_Off;
199typedef unsigned long long Dwarf_Addr;
200 /* Dwarf_Bool as int is wasteful, but for compatibility
201 it must stay as int, not unsigned char. */
202typedef int Dwarf_Bool; /* boolean type */
203typedef unsigned short Dwarf_Half; /* 2 byte unsigned value */
204typedef 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
208typedef void* Dwarf_Ptr; /* host machine pointer */
234enum Dwarf_Ranges_Entry_Type { DW_RANGES_ENTRY,
235 DW_RANGES_ADDRESS_SELECTION,
236 DW_RANGES_END
237};
238
270 DW_FORM_CLASS_UNKNOWN = 0,
271 DW_FORM_CLASS_ADDRESS = 1,
272 DW_FORM_CLASS_BLOCK = 2,
273 DW_FORM_CLASS_CONSTANT =3,
274 DW_FORM_CLASS_EXPRLOC = 4,
275 DW_FORM_CLASS_FLAG = 5,
276 DW_FORM_CLASS_LINEPTR = 6,
277 DW_FORM_CLASS_LOCLISTPTR=7, /* DWARF2,3,4 only */
278 DW_FORM_CLASS_MACPTR = 8, /* DWARF2,3,4 only */
279 DW_FORM_CLASS_RANGELISTPTR=9, /* DWARF2,3,4 only */
280 DW_FORM_CLASS_REFERENCE=10,
281 DW_FORM_CLASS_STRING = 11,
282 DW_FORM_CLASS_FRAMEPTR= 12, /* MIPS/IRIX DWARF2 only */
283 DW_FORM_CLASS_MACROPTR= 13, /* DWARF5 */
284 DW_FORM_CLASS_ADDRPTR = 14, /* DWARF5 */
285 DW_FORM_CLASS_LOCLIST = 15, /* DWARF5 */
286 DW_FORM_CLASS_LOCLISTSPTR=16, /* DWARF5 */
287 DW_FORM_CLASS_RNGLIST =17, /* DWARF5 */
288 DW_FORM_CLASS_RNGLISTSPTR=18, /* DWARF5 */
289 DW_FORM_CLASS_STROFFSETSPTR=19 /* DWARF5 */
290};
302typedef struct Dwarf_Form_Data16_s {
303 unsigned char fd_data[16];
305
313typedef struct Dwarf_Sig8_s {
314 char signature[8];
316
330typedef struct Dwarf_Block_s {
331 Dwarf_Unsigned bl_len;
332 Dwarf_Ptr bl_data;
333 Dwarf_Small bl_from_loclist;
334 Dwarf_Unsigned bl_section_offset;
336
342typedef struct Dwarf_Locdesc_c_s * Dwarf_Locdesc_c;
347typedef struct Dwarf_Loc_Head_c_s * Dwarf_Loc_Head_c;
348
357typedef struct Dwarf_Gnu_Index_Head_s * Dwarf_Gnu_Index_Head;
358
363typedef struct Dwarf_Dsc_Head_s * Dwarf_Dsc_Head;
364
370typedef struct Dwarf_Frame_Instr_Head_s * Dwarf_Frame_Instr_Head;
371
394 (void * dw_user_pointer, const char * dw_linecontent);
395
414 void * dp_user_pointer;
416 char * dp_buffer;
417 unsigned int dp_buffer_len;
418 int dp_buffer_user_provided;
419 void * dp_reserved;
420};
421
442 Dwarf_Bool check_verbose_mode;
443};
448
455typedef struct Dwarf_Str_Offsets_Table_s * Dwarf_Str_Offsets_Table;
456
469typedef struct Dwarf_Ranges_s {
470 Dwarf_Addr dwr_addr1;
471 Dwarf_Addr dwr_addr2;
472 enum Dwarf_Ranges_Entry_Type dwr_type;
474
562 Dwarf_Small dw_offset_relevant;
563 Dwarf_Small dw_value_type;
564 Dwarf_Half dw_regnum;
565 Dwarf_Unsigned dw_offset; /* Should be Dwarf_Signed */
566 Dwarf_Unsigned dw_args_size; /* Always zero. */
567 Dwarf_Block dw_block;
569
589typedef struct Dwarf_Regtable3_s {
590 struct Dwarf_Regtable_Entry3_s rt3_cfa_rule;
591 /* Required Condition:
592 rt3_rules points to array rt3_reg_table_size
593 of struct Dwarf_Regtable_Entry3_s and the
594 array entries should be all zero bits
595 on calling dwarf_get_fde_info_for_all_regs3_b().
596 */
597 Dwarf_Half rt3_reg_table_size;
598 struct Dwarf_Regtable_Entry3_s * rt3_rules;
600
601/* Opaque types for Consumer Library. */
611typedef struct Dwarf_Error_s* Dwarf_Error;
612
617typedef struct Dwarf_Debug_s* Dwarf_Debug;
622typedef struct Dwarf_Section_s* Dwarf_Section;
623
627typedef struct Dwarf_Die_s* Dwarf_Die;
628
632typedef struct Dwarf_Debug_Addr_Table_s* Dwarf_Debug_Addr_Table;
633
638typedef struct Dwarf_Line_s* Dwarf_Line;
639
644typedef struct Dwarf_Global_s* Dwarf_Global;
645
653typedef struct Dwarf_Type_s* Dwarf_Type;
654
660typedef struct Dwarf_Func_s* Dwarf_Func;
666typedef struct Dwarf_Var_s* Dwarf_Var;
672typedef struct Dwarf_Weak_s* Dwarf_Weak;
673
677typedef struct Dwarf_Attribute_s* Dwarf_Attribute;
678
684typedef struct Dwarf_Abbrev_s* Dwarf_Abbrev;
685
690typedef struct Dwarf_Fde_s* Dwarf_Fde;
695typedef struct Dwarf_Cie_s* Dwarf_Cie;
696
701typedef struct Dwarf_Arange_s* Dwarf_Arange;
706typedef struct Dwarf_Gdbindex_s* Dwarf_Gdbindex;
712typedef struct Dwarf_Xu_Index_Header_s *Dwarf_Xu_Index_Header;
716typedef struct Dwarf_Line_Context_s *Dwarf_Line_Context;
717
721typedef struct Dwarf_Macro_Context_s *Dwarf_Macro_Context;
722
728typedef struct Dwarf_Dnames_Head_s *Dwarf_Dnames_Head;
729
737typedef void (*Dwarf_Handler)(Dwarf_Error dw_error,
738 Dwarf_Ptr dw_errarg);
739
748 Dwarf_Off dmd_offset; /* offset, in the section,
749 of this macro info */
750 Dwarf_Small dmd_type; /* the type, DW_MACINFO_define etc*/
751 Dwarf_Signed dmd_lineno; /* the source line number where
752 applicable and vend_def number if
753 vendor_extension op */
754 Dwarf_Signed dmd_fileindex;/* the source file index */
755 char * dmd_macro; /* macro name string */
756};
762
767typedef struct Dwarf_Debug_Fission_Per_CU_s
769
770/* ===== BEGIN Obj_Access data ===== */
778
784typedef struct Dwarf_Obj_Access_Methods_a_s
786
795typedef struct Dwarf_Obj_Access_Section_a_s
798 const char* as_name;
799 Dwarf_Unsigned as_type;
800 Dwarf_Unsigned as_flags;
801 Dwarf_Addr as_addr;
802 Dwarf_Unsigned as_offset;
803 Dwarf_Unsigned as_size;
804 Dwarf_Unsigned as_link;
805 Dwarf_Unsigned as_info;
806 Dwarf_Unsigned as_addralign;
807 Dwarf_Unsigned as_entrysize;
808};
809
823 /* No dynamic allocation */
824 Dwarf_Alloc_None=0,
825 /* alternative allocations */
826 Dwarf_Alloc_Malloc=1,
827 Dwarf_Alloc_Mmap=2};
828
851 int (*om_get_section_info)(void* obj,
852 Dwarf_Unsigned section_index,
853 Dwarf_Obj_Access_Section_a* return_section,
854 int * error);
855 Dwarf_Small (*om_get_byte_order)(void* obj);
856 Dwarf_Small (*om_get_length_size)(void* obj);
857 Dwarf_Small (*om_get_pointer_size)(void* obj);
858 Dwarf_Unsigned (*om_get_filesize)(void* obj);
859 Dwarf_Unsigned (*om_get_section_count)(void* obj);
860 /* Always uses malloc/read */
861 int (*om_load_section)(void* obj,
862 Dwarf_Unsigned dw_section_index,
863 Dwarf_Small **dw_return_data,
864 int *dw_error);
865 int (*om_relocate_a_section)(void* obj,
866 Dwarf_Unsigned section_index,
867 Dwarf_Debug dbg,
868 int * error);
869 /* Added in 0.12.0 to allow mmap in section loading.
870 If you are just using malloc for section loading
871 and referring to this struct in your code
872 you should leave this function pointer NULL (zero). */
873 int (*om_load_section_a)(void* obj,
874 Dwarf_Unsigned dw_section_index,
875 /* dw_alloc_pref is input preference and also
876 output with the actual alloced type */
877 enum Dwarf_Sec_Alloc_Pref *dw_alloc_pref,
878 Dwarf_Small **dw_return_data_ptr,
879 Dwarf_Unsigned *dw_return_data_len,
880 Dwarf_Small **dw_return_mmap_base_ptr,
881 Dwarf_Unsigned *dw_return_mmap_offset,
882 Dwarf_Unsigned *dw_return_mmap_len,
883 int *dw_error);
884 void (*om_finish)(void * obj);
885};
887 void* ai_object;
888 const Dwarf_Obj_Access_Methods_a *ai_methods;
889};
890/* ===== END Obj_Access data ===== */
891
892/* User code must allocate this struct, zero it,
893 and pass a pointer to it
894 into dwarf_get_debugfission_for_cu . */
896 /* Do not free the string. It contains "cu" or "tu". */
897 /* If this is not set (ie, not a CU/TU in DWP Package File)
898 then pcu_type will be NULL. */
899 const char * pcu_type;
900 /* pcu_index is the index (range 1 to N )
901 into the tu/cu table of offsets and the table
902 of sizes. 1 to N as the zero index is reserved
903 for special purposes. Not a value one
904 actually needs. */
905 Dwarf_Unsigned pcu_index;
906 Dwarf_Sig8 pcu_hash; /* 8 byte */
907 /* [0] has offset and size 0.
908 [1]-[8] are DW_SECT_* indexes and the
909 values are the offset and size
910 of the respective section contribution
911 of a single .dwo object. When pcu_size[n] is
912 zero the corresponding section is not present. */
913 Dwarf_Unsigned pcu_offset[DW_FISSION_SECT_COUNT];
914 Dwarf_Unsigned pcu_size[DW_FISSION_SECT_COUNT];
915 Dwarf_Unsigned unused1;
916 Dwarf_Unsigned unused2;
917};
918
923typedef struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head;
924
930/* Special values for offset_into_exception_table field
931 of dwarf fde's
932 The following value indicates that there is no
933 Exception table offset
934 associated with a dwarf frame.
935*/
936#define DW_DLX_NO_EH_OFFSET (-1LL)
937/* The following value indicates that the producer
938 was unable to analyze the
939 source file to generate Exception tables for this function.
940*/
941#define DW_DLX_EH_OFFSET_UNAVAILABLE (-2LL)
942
943/* The augmenter string for CIE */
944#define DW_CIE_AUGMENTER_STRING_V0 "z"
945
946/* ***IMPORTANT NOTE, TARGET DEPENDENCY ****
947 DW_REG_TABLE_SIZE must be at least as large as
948 the number of registers
949 DW_FRAME_LAST_REG_NUM as defined in dwarf.h
950*/
951#ifndef DW_REG_TABLE_SIZE
952#define DW_REG_TABLE_SIZE DW_FRAME_LAST_REG_NUM
953#endif
954
955/* For MIPS, DW_FRAME_SAME_VAL is the correct default value
956 for a frame register value. For other CPUS another value
957 may be better, such as DW_FRAME_UNDEFINED_VAL.
958 See dwarf_set_frame_rule_table_size
959*/
960#ifndef DW_FRAME_REG_INITIAL_VALUE
961#define DW_FRAME_REG_INITIAL_VALUE DW_FRAME_SAME_VAL
962#endif
963
964/* The following are all needed to evaluate DWARF3 register rules.
965 These have nothing to do simply printing
966 frame instructions.
967*/
968#define DW_EXPR_OFFSET 0 /* offset is from CFA reg */
969#define DW_EXPR_VAL_OFFSET 1
970#define DW_EXPR_EXPRESSION 2
971#define DW_EXPR_VAL_EXPRESSION 3
982#define DW_DLA_STRING 0x01 /* char* */
983#define DW_DLA_LOC 0x02 /* Dwarf_Loc */
984#define DW_DLA_LOCDESC 0x03 /* Dwarf_Locdesc */
985#define DW_DLA_ELLIST 0x04 /* Dwarf_Ellist (not used)*/
986#define DW_DLA_BOUNDS 0x05 /* Dwarf_Bounds (not used) */
987#define DW_DLA_BLOCK 0x06 /* Dwarf_Block */
988#define DW_DLA_DEBUG 0x07 /* Dwarf_Debug */
989#define DW_DLA_DIE 0x08 /* Dwarf_Die */
990#define DW_DLA_LINE 0x09 /* Dwarf_Line */
991#define DW_DLA_ATTR 0x0a /* Dwarf_Attribute */
992#define DW_DLA_TYPE 0x0b /* Dwarf_Type (not used) */
993#define DW_DLA_SUBSCR 0x0c /* Dwarf_Subscr (not used) */
994#define DW_DLA_GLOBAL 0x0d /* Dwarf_Global */
995#define DW_DLA_ERROR 0x0e /* Dwarf_Error */
996#define DW_DLA_LIST 0x0f /* a list */
997#define DW_DLA_LINEBUF 0x10 /* Dwarf_Line* (not used) */
998#define DW_DLA_ARANGE 0x11 /* Dwarf_Arange */
999#define DW_DLA_ABBREV 0x12 /* Dwarf_Abbrev */
1000#define DW_DLA_FRAME_INSTR_HEAD 0x13 /* Dwarf_Frame_Instr_Head */
1001#define DW_DLA_CIE 0x14 /* Dwarf_Cie */
1002#define DW_DLA_FDE 0x15 /* Dwarf_Fde */
1003#define DW_DLA_LOC_BLOCK 0x16 /* Dwarf_Loc */
1004
1005#define DW_DLA_FRAME_OP 0x17 /* Dwarf_Frame_Op (not used) */
1006#define DW_DLA_FUNC 0x18 /* Dwarf_Func */
1007#define DW_DLA_UARRAY 0x19 /* Array of Dwarf_Off:Jan2023 */
1008#define DW_DLA_VAR 0x1a /* Dwarf_Var */
1009#define DW_DLA_WEAK 0x1b /* Dwarf_Weak */
1010#define DW_DLA_ADDR 0x1c /* Dwarf_Addr sized entries */
1011#define DW_DLA_RANGES 0x1d /* Dwarf_Ranges */
1012/* 0x1e (30) to 0x34 (52) reserved for internal to libdwarf types. */
1013/* .debug_gnu_typenames/pubnames, 2020 */
1014#define DW_DLA_GNU_INDEX_HEAD 0x35
1015
1016#define DW_DLA_RNGLISTS_HEAD 0x36 /* .debug_rnglists DW5 */
1017#define DW_DLA_GDBINDEX 0x37 /* Dwarf_Gdbindex */
1018#define DW_DLA_XU_INDEX 0x38 /* Dwarf_Xu_Index_Header */
1019#define DW_DLA_LOC_BLOCK_C 0x39 /* Dwarf_Loc_c*/
1020#define DW_DLA_LOCDESC_C 0x3a /* Dwarf_Locdesc_c */
1021#define DW_DLA_LOC_HEAD_C 0x3b /* Dwarf_Loc_Head_c */
1022#define DW_DLA_MACRO_CONTEXT 0x3c /* Dwarf_Macro_Context */
1023/* 0x3d (61) is for libdwarf internal use. */
1024#define DW_DLA_DSC_HEAD 0x3e /* Dwarf_Dsc_Head */
1025#define DW_DLA_DNAMES_HEAD 0x3f /* Dwarf_Dnames_Head */
1026
1027/* struct Dwarf_Str_Offsets_Table_s */
1028#define DW_DLA_STR_OFFSETS 0x40
1029/* struct Dwarf_Debug_Addr_Table_s */
1030#define DW_DLA_DEBUG_ADDR 0x41
1042/* libdwarf error numbers */
1043#define DW_DLE_NE 0 /* no error */
1044#define DW_DLE_VMM 1 /* dwarf format/library version mismatch */
1045#define DW_DLE_MAP 2 /* memory map failure */
1046#define DW_DLE_LEE 3 /* libelf error */
1047#define DW_DLE_NDS 4 /* no debug section */
1048#define DW_DLE_NLS 5 /* no line section */
1049#define DW_DLE_ID 6 /* invalid descriptor for query */
1050#define DW_DLE_IOF 7 /* I/O failure */
1051#define DW_DLE_MAF 8 /* memory allocation failure */
1052#define DW_DLE_IA 9 /* invalid argument */
1053#define DW_DLE_MDE 10 /* mangled debugging entry */
1054#define DW_DLE_MLE 11 /* mangled line number entry */
1055#define DW_DLE_FNO 12 /* file not open */
1056#define DW_DLE_FNR 13 /* file not a regular file */
1057#define DW_DLE_FWA 14 /* file open with wrong access */
1058#define DW_DLE_NOB 15 /* not an object file */
1059#define DW_DLE_MOF 16 /* mangled object file header */
1060#define DW_DLE_EOLL 17 /* end of location list entries */
1061#define DW_DLE_NOLL 18 /* no location list section */
1062#define DW_DLE_BADOFF 19 /* Invalid offset */
1063#define DW_DLE_EOS 20 /* end of section */
1064#define DW_DLE_ATRUNC 21 /* abbreviations section appears truncated*/
1065#define DW_DLE_BADBITC 22 /* Address size passed to dwarf bad,*/
1066 /* It is not an allowed size (64 or 32) */
1067 /* Error codes defined by the current Libdwarf Implementation. */
1068#define DW_DLE_DBG_ALLOC 23
1069#define DW_DLE_FSTAT_ERROR 24
1070#define DW_DLE_FSTAT_MODE_ERROR 25
1071#define DW_DLE_INIT_ACCESS_WRONG 26
1072#define DW_DLE_ELF_BEGIN_ERROR 27
1073#define DW_DLE_ELF_GETEHDR_ERROR 28
1074#define DW_DLE_ELF_GETSHDR_ERROR 29
1075#define DW_DLE_ELF_STRPTR_ERROR 30
1076#define DW_DLE_DEBUG_INFO_DUPLICATE 31
1077#define DW_DLE_DEBUG_INFO_NULL 32
1078#define DW_DLE_DEBUG_ABBREV_DUPLICATE 33
1079#define DW_DLE_DEBUG_ABBREV_NULL 34
1080#define DW_DLE_DEBUG_ARANGES_DUPLICATE 35
1081#define DW_DLE_DEBUG_ARANGES_NULL 36
1082#define DW_DLE_DEBUG_LINE_DUPLICATE 37
1083#define DW_DLE_DEBUG_LINE_NULL 38
1084#define DW_DLE_DEBUG_LOC_DUPLICATE 39
1085#define DW_DLE_DEBUG_LOC_NULL 40
1086#define DW_DLE_DEBUG_MACINFO_DUPLICATE 41
1087#define DW_DLE_DEBUG_MACINFO_NULL 42
1088#define DW_DLE_DEBUG_PUBNAMES_DUPLICATE 43
1089#define DW_DLE_DEBUG_PUBNAMES_NULL 44
1090#define DW_DLE_DEBUG_STR_DUPLICATE 45
1091#define DW_DLE_DEBUG_STR_NULL 46
1092#define DW_DLE_CU_LENGTH_ERROR 47
1093#define DW_DLE_VERSION_STAMP_ERROR 48
1094#define DW_DLE_ABBREV_OFFSET_ERROR 49
1095#define DW_DLE_ADDRESS_SIZE_ERROR 50
1096#define DW_DLE_DEBUG_INFO_PTR_NULL 51
1097#define DW_DLE_DIE_NULL 52
1098#define DW_DLE_STRING_OFFSET_BAD 53
1099#define DW_DLE_DEBUG_LINE_LENGTH_BAD 54
1100#define DW_DLE_LINE_PROLOG_LENGTH_BAD 55
1101#define DW_DLE_LINE_NUM_OPERANDS_BAD 56
1102#define DW_DLE_LINE_SET_ADDR_ERROR 57
1103#define DW_DLE_LINE_EXT_OPCODE_BAD 58
1104#define DW_DLE_DWARF_LINE_NULL 59
1105#define DW_DLE_INCL_DIR_NUM_BAD 60
1106#define DW_DLE_LINE_FILE_NUM_BAD 61
1107#define DW_DLE_ALLOC_FAIL 62
1108#define DW_DLE_NO_CALLBACK_FUNC 63
1109#define DW_DLE_SECT_ALLOC 64
1110#define DW_DLE_FILE_ENTRY_ALLOC 65
1111#define DW_DLE_LINE_ALLOC 66
1112#define DW_DLE_FPGM_ALLOC 67
1113#define DW_DLE_INCDIR_ALLOC 68
1114#define DW_DLE_STRING_ALLOC 69
1115#define DW_DLE_CHUNK_ALLOC 70
1116#define DW_DLE_BYTEOFF_ERR 71
1117#define DW_DLE_CIE_ALLOC 72
1118#define DW_DLE_FDE_ALLOC 73
1119#define DW_DLE_REGNO_OVFL 74
1120#define DW_DLE_CIE_OFFS_ALLOC 75
1121#define DW_DLE_WRONG_ADDRESS 76
1122#define DW_DLE_EXTRA_NEIGHBORS 77
1123#define DW_DLE_WRONG_TAG 78
1124#define DW_DLE_DIE_ALLOC 79
1125#define DW_DLE_PARENT_EXISTS 80
1126#define DW_DLE_DBG_NULL 81
1127#define DW_DLE_DEBUGLINE_ERROR 82
1128#define DW_DLE_DEBUGFRAME_ERROR 83
1129#define DW_DLE_DEBUGINFO_ERROR 84
1130#define DW_DLE_ATTR_ALLOC 85
1131#define DW_DLE_ABBREV_ALLOC 86
1132#define DW_DLE_OFFSET_UFLW 87
1133#define DW_DLE_ELF_SECT_ERR 88
1134#define DW_DLE_DEBUG_FRAME_LENGTH_BAD 89
1135#define DW_DLE_FRAME_VERSION_BAD 90
1136#define DW_DLE_CIE_RET_ADDR_REG_ERROR 91
1137#define DW_DLE_FDE_NULL 92
1138#define DW_DLE_FDE_DBG_NULL 93
1139#define DW_DLE_CIE_NULL 94
1140#define DW_DLE_CIE_DBG_NULL 95
1141#define DW_DLE_FRAME_TABLE_COL_BAD 96
1142#define DW_DLE_PC_NOT_IN_FDE_RANGE 97
1143#define DW_DLE_CIE_INSTR_EXEC_ERROR 98
1144#define DW_DLE_FRAME_INSTR_EXEC_ERROR 99
1145#define DW_DLE_FDE_PTR_NULL 100
1146#define DW_DLE_RET_OP_LIST_NULL 101
1147#define DW_DLE_LINE_CONTEXT_NULL 102
1148#define DW_DLE_DBG_NO_CU_CONTEXT 103
1149#define DW_DLE_DIE_NO_CU_CONTEXT 104
1150#define DW_DLE_FIRST_DIE_NOT_CU 105
1151#define DW_DLE_NEXT_DIE_PTR_NULL 106
1152#define DW_DLE_DEBUG_FRAME_DUPLICATE 107
1153#define DW_DLE_DEBUG_FRAME_NULL 108
1154#define DW_DLE_ABBREV_DECODE_ERROR 109
1155#define DW_DLE_DWARF_ABBREV_NULL 110
1156#define DW_DLE_ATTR_NULL 111
1157#define DW_DLE_DIE_BAD 112
1158#define DW_DLE_DIE_ABBREV_BAD 113
1159#define DW_DLE_ATTR_FORM_BAD 114
1160#define DW_DLE_ATTR_NO_CU_CONTEXT 115
1161#define DW_DLE_ATTR_FORM_SIZE_BAD 116
1162#define DW_DLE_ATTR_DBG_NULL 117
1163#define DW_DLE_BAD_REF_FORM 118
1164#define DW_DLE_ATTR_FORM_OFFSET_BAD 119
1165#define DW_DLE_LINE_OFFSET_BAD 120
1166#define DW_DLE_DEBUG_STR_OFFSET_BAD 121
1167#define DW_DLE_STRING_PTR_NULL 122
1168#define DW_DLE_PUBNAMES_VERSION_ERROR 123
1169#define DW_DLE_PUBNAMES_LENGTH_BAD 124
1170#define DW_DLE_GLOBAL_NULL 125
1171#define DW_DLE_GLOBAL_CONTEXT_NULL 126
1172#define DW_DLE_DIR_INDEX_BAD 127
1173#define DW_DLE_LOC_EXPR_BAD 128
1174#define DW_DLE_DIE_LOC_EXPR_BAD 129
1175#define DW_DLE_ADDR_ALLOC 130
1176#define DW_DLE_OFFSET_BAD 131
1177#define DW_DLE_MAKE_CU_CONTEXT_FAIL 132
1178#define DW_DLE_REL_ALLOC 133
1179#define DW_DLE_ARANGE_OFFSET_BAD 134
1180#define DW_DLE_SEGMENT_SIZE_BAD 135
1181#define DW_DLE_ARANGE_LENGTH_BAD 136
1182#define DW_DLE_ARANGE_DECODE_ERROR 137
1183#define DW_DLE_ARANGES_NULL 138
1184#define DW_DLE_ARANGE_NULL 139
1185#define DW_DLE_NO_FILE_NAME 140
1186#define DW_DLE_NO_COMP_DIR 141
1187#define DW_DLE_CU_ADDRESS_SIZE_BAD 142
1188#define DW_DLE_INPUT_ATTR_BAD 143
1189#define DW_DLE_EXPR_NULL 144
1190#define DW_DLE_BAD_EXPR_OPCODE 145
1191#define DW_DLE_EXPR_LENGTH_BAD 146
1192#define DW_DLE_MULTIPLE_RELOC_IN_EXPR 147
1193#define DW_DLE_ELF_GETIDENT_ERROR 148
1194#define DW_DLE_NO_AT_MIPS_FDE 149
1195#define DW_DLE_NO_CIE_FOR_FDE 150
1196#define DW_DLE_DIE_ABBREV_LIST_NULL 151
1197#define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE 152
1198#define DW_DLE_DEBUG_FUNCNAMES_NULL 153
1199#define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR 154
1200#define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD 155
1201#define DW_DLE_FUNC_NULL 156
1202#define DW_DLE_FUNC_CONTEXT_NULL 157
1203#define DW_DLE_DEBUG_TYPENAMES_DUPLICATE 158
1204#define DW_DLE_DEBUG_TYPENAMES_NULL 159
1205#define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR 160
1206#define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD 161
1207#define DW_DLE_TYPE_NULL 162
1208#define DW_DLE_TYPE_CONTEXT_NULL 163
1209#define DW_DLE_DEBUG_VARNAMES_DUPLICATE 164
1210#define DW_DLE_DEBUG_VARNAMES_NULL 165
1211#define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR 166
1212#define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD 167
1213#define DW_DLE_VAR_NULL 168
1214#define DW_DLE_VAR_CONTEXT_NULL 169
1215#define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE 170
1216#define DW_DLE_DEBUG_WEAKNAMES_NULL 171
1217#define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR 172
1218#define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD 173
1219#define DW_DLE_WEAK_NULL 174
1220#define DW_DLE_WEAK_CONTEXT_NULL 175
1221#define DW_DLE_LOCDESC_COUNT_WRONG 176
1222#define DW_DLE_MACINFO_STRING_NULL 177
1223#define DW_DLE_MACINFO_STRING_EMPTY 178
1224#define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE 179
1225#define DW_DLE_MACINFO_MALLOC_FAIL 180
1226#define DW_DLE_DEBUGMACINFO_ERROR 181
1227#define DW_DLE_DEBUG_MACRO_LENGTH_BAD 182
1228#define DW_DLE_DEBUG_MACRO_MAX_BAD 183
1229#define DW_DLE_DEBUG_MACRO_INTERNAL_ERR 184
1230#define DW_DLE_DEBUG_MACRO_MALLOC_SPACE 185
1231#define DW_DLE_DEBUG_MACRO_INCONSISTENT 186
1232#define DW_DLE_DF_NO_CIE_AUGMENTATION 187
1233#define DW_DLE_DF_REG_NUM_TOO_HIGH 188
1234#define DW_DLE_DF_MAKE_INSTR_NO_INIT 189
1235#define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC 190
1236#define DW_DLE_DF_POP_EMPTY_STACK 191
1237#define DW_DLE_DF_ALLOC_FAIL 192
1238#define DW_DLE_DF_FRAME_DECODING_ERROR 193
1239#define DW_DLE_DEBUG_LOC_SECTION_SHORT 194
1240#define DW_DLE_FRAME_AUGMENTATION_UNKNOWN 195
1241#define DW_DLE_PUBTYPE_CONTEXT 196 /* Unused. */
1242#define DW_DLE_DEBUG_PUBTYPES_LENGTH_BAD 197
1243#define DW_DLE_DEBUG_PUBTYPES_VERSION_ERROR 198
1244#define DW_DLE_DEBUG_PUBTYPES_DUPLICATE 199
1245#define DW_DLE_FRAME_CIE_DECODE_ERROR 200
1246#define DW_DLE_FRAME_REGISTER_UNREPRESENTABLE 201
1247#define DW_DLE_FRAME_REGISTER_COUNT_MISMATCH 202
1248#define DW_DLE_LINK_LOOP 203
1249#define DW_DLE_STRP_OFFSET_BAD 204
1250#define DW_DLE_DEBUG_RANGES_DUPLICATE 205
1251#define DW_DLE_DEBUG_RANGES_OFFSET_BAD 206
1252#define DW_DLE_DEBUG_RANGES_MISSING_END 207
1253#define DW_DLE_DEBUG_RANGES_OUT_OF_MEM 208
1254#define DW_DLE_DEBUG_SYMTAB_ERR 209
1255#define DW_DLE_DEBUG_STRTAB_ERR 210
1256#define DW_DLE_RELOC_MISMATCH_INDEX 211
1257#define DW_DLE_RELOC_MISMATCH_RELOC_INDEX 212
1258#define DW_DLE_RELOC_MISMATCH_STRTAB_INDEX 213
1259#define DW_DLE_RELOC_SECTION_MISMATCH 214
1260#define DW_DLE_RELOC_SECTION_MISSING_INDEX 215
1261#define DW_DLE_RELOC_SECTION_LENGTH_ODD 216
1262#define DW_DLE_RELOC_SECTION_PTR_NULL 217
1263#define DW_DLE_RELOC_SECTION_MALLOC_FAIL 218
1264#define DW_DLE_NO_ELF64_SUPPORT 219
1265#define DW_DLE_MISSING_ELF64_SUPPORT 220
1266#define DW_DLE_ORPHAN_FDE 221
1267#define DW_DLE_DUPLICATE_INST_BLOCK 222
1268#define DW_DLE_BAD_REF_SIG8_FORM 223
1269#define DW_DLE_ATTR_EXPRLOC_FORM_BAD 224
1270#define DW_DLE_FORM_SEC_OFFSET_LENGTH_BAD 225
1271#define DW_DLE_NOT_REF_FORM 226
1272#define DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE 227
1273#define DW_DLE_REF_SIG8_NOT_HANDLED 228
1274#define DW_DLE_DEBUG_FRAME_POSSIBLE_ADDRESS_BOTCH 229
1275#define DW_DLE_LOC_BAD_TERMINATION 230
1276#define DW_DLE_SYMTAB_SECTION_LENGTH_ODD 231
1277#define DW_DLE_RELOC_SECTION_SYMBOL_INDEX_BAD 232
1278#define DW_DLE_RELOC_SECTION_RELOC_TARGET_SIZE_UNKNOWN 233
1279#define DW_DLE_SYMTAB_SECTION_ENTRYSIZE_ZERO 234
1280#define DW_DLE_LINE_NUMBER_HEADER_ERROR 235
1281#define DW_DLE_DEBUG_TYPES_NULL 236
1282#define DW_DLE_DEBUG_TYPES_DUPLICATE 237
1283#define DW_DLE_DEBUG_TYPES_ONLY_DWARF4 238
1284#define DW_DLE_DEBUG_TYPEOFFSET_BAD 239
1285#define DW_DLE_GNU_OPCODE_ERROR 240
1286#define DW_DLE_DEBUGPUBTYPES_ERROR 241
1287#define DW_DLE_AT_FIXUP_NULL 242
1288#define DW_DLE_AT_FIXUP_DUP 243
1289#define DW_DLE_BAD_ABINAME 244
1290#define DW_DLE_TOO_MANY_DEBUG 245
1291#define DW_DLE_DEBUG_STR_OFFSETS_DUPLICATE 246
1292#define DW_DLE_SECTION_DUPLICATION 247
1293#define DW_DLE_SECTION_ERROR 248
1294#define DW_DLE_DEBUG_ADDR_DUPLICATE 249
1295#define DW_DLE_DEBUG_CU_UNAVAILABLE_FOR_FORM 250
1296#define DW_DLE_DEBUG_FORM_HANDLING_INCOMPLETE 251
1297#define DW_DLE_NEXT_DIE_PAST_END 252
1298#define DW_DLE_NEXT_DIE_WRONG_FORM 253
1299#define DW_DLE_NEXT_DIE_NO_ABBREV_LIST 254
1300#define DW_DLE_NESTED_FORM_INDIRECT_ERROR 255
1301#define DW_DLE_CU_DIE_NO_ABBREV_LIST 256
1302#define DW_DLE_MISSING_NEEDED_DEBUG_ADDR_SECTION 257
1303#define DW_DLE_ATTR_FORM_NOT_ADDR_INDEX 258
1304#define DW_DLE_ATTR_FORM_NOT_STR_INDEX 259
1305#define DW_DLE_DUPLICATE_GDB_INDEX 260
1306#define DW_DLE_ERRONEOUS_GDB_INDEX_SECTION 261
1307#define DW_DLE_GDB_INDEX_COUNT_ERROR 262
1308#define DW_DLE_GDB_INDEX_COUNT_ADDR_ERROR 263
1309#define DW_DLE_GDB_INDEX_INDEX_ERROR 264
1310#define DW_DLE_GDB_INDEX_CUVEC_ERROR 265
1311#define DW_DLE_DUPLICATE_CU_INDEX 266
1312#define DW_DLE_DUPLICATE_TU_INDEX 267
1313#define DW_DLE_XU_TYPE_ARG_ERROR 268
1314#define DW_DLE_XU_IMPOSSIBLE_ERROR 269
1315#define DW_DLE_XU_NAME_COL_ERROR 270
1316#define DW_DLE_XU_HASH_ROW_ERROR 271
1317#define DW_DLE_XU_HASH_INDEX_ERROR 272
1318/* ..._FAILSAFE_ERRVAL is an aid when out of memory. */
1319#define DW_DLE_FAILSAFE_ERRVAL 273
1320#define DW_DLE_ARANGE_ERROR 274
1321#define DW_DLE_PUBNAMES_ERROR 275
1322#define DW_DLE_FUNCNAMES_ERROR 276
1323#define DW_DLE_TYPENAMES_ERROR 277
1324#define DW_DLE_VARNAMES_ERROR 278
1325#define DW_DLE_WEAKNAMES_ERROR 279
1326#define DW_DLE_RELOCS_ERROR 280
1327#define DW_DLE_ATTR_OUTSIDE_SECTION 281
1328#define DW_DLE_FISSION_INDEX_WRONG 282
1329#define DW_DLE_FISSION_VERSION_ERROR 283
1330#define DW_DLE_NEXT_DIE_LOW_ERROR 284
1331#define DW_DLE_CU_UT_TYPE_ERROR 285
1332#define DW_DLE_NO_SUCH_SIGNATURE_FOUND 286
1333#define DW_DLE_SIGNATURE_SECTION_NUMBER_WRONG 287
1334#define DW_DLE_ATTR_FORM_NOT_DATA8 288
1335#define DW_DLE_SIG_TYPE_WRONG_STRING 289
1336#define DW_DLE_MISSING_REQUIRED_TU_OFFSET_HASH 290
1337#define DW_DLE_MISSING_REQUIRED_CU_OFFSET_HASH 291
1338#define DW_DLE_DWP_MISSING_DWO_ID 292
1339#define DW_DLE_DWP_SIBLING_ERROR 293
1340#define DW_DLE_DEBUG_FISSION_INCOMPLETE 294
1341#define DW_DLE_FISSION_SECNUM_ERR 295
1342#define DW_DLE_DEBUG_MACRO_DUPLICATE 296
1343#define DW_DLE_DEBUG_NAMES_DUPLICATE 297
1344#define DW_DLE_DEBUG_LINE_STR_DUPLICATE 298
1345#define DW_DLE_DEBUG_SUP_DUPLICATE 299
1346#define DW_DLE_NO_SIGNATURE_TO_LOOKUP 300
1347#define DW_DLE_NO_TIED_ADDR_AVAILABLE 301
1348#define DW_DLE_NO_TIED_SIG_AVAILABLE 302
1349#define DW_DLE_STRING_NOT_TERMINATED 303
1350#define DW_DLE_BAD_LINE_TABLE_OPERATION 304
1351#define DW_DLE_LINE_CONTEXT_BOTCH 305
1352#define DW_DLE_LINE_CONTEXT_INDEX_WRONG 306
1353#define DW_DLE_NO_TIED_STRING_AVAILABLE 307
1354#define DW_DLE_NO_TIED_FILE_AVAILABLE 308
1355#define DW_DLE_CU_TYPE_MISSING 309
1356#define DW_DLE_LLE_CODE_UNKNOWN 310
1357#define DW_DLE_LOCLIST_INTERFACE_ERROR 311
1358#define DW_DLE_LOCLIST_INDEX_ERROR 312
1359#define DW_DLE_INTERFACE_NOT_SUPPORTED 313
1360#define DW_DLE_ZDEBUG_REQUIRES_ZLIB 314
1361#define DW_DLE_ZDEBUG_INPUT_FORMAT_ODD 315
1362#define DW_DLE_ZLIB_BUF_ERROR 316
1363#define DW_DLE_ZLIB_DATA_ERROR 317
1364#define DW_DLE_MACRO_OFFSET_BAD 318
1365#define DW_DLE_MACRO_OPCODE_BAD 319
1366#define DW_DLE_MACRO_OPCODE_FORM_BAD 320
1367#define DW_DLE_UNKNOWN_FORM 321
1368#define DW_DLE_BAD_MACRO_HEADER_POINTER 322
1369#define DW_DLE_BAD_MACRO_INDEX 323
1370#define DW_DLE_MACRO_OP_UNHANDLED 324
1371#define DW_DLE_MACRO_PAST_END 325
1372#define DW_DLE_LINE_STRP_OFFSET_BAD 326
1373#define DW_DLE_STRING_FORM_IMPROPER 327
1374#define DW_DLE_ELF_FLAGS_NOT_AVAILABLE 328
1375#define DW_DLE_LEB_IMPROPER 329
1376#define DW_DLE_DEBUG_LINE_RANGE_ZERO 330
1377#define DW_DLE_READ_LITTLEENDIAN_ERROR 331
1378#define DW_DLE_READ_BIGENDIAN_ERROR 332
1379#define DW_DLE_RELOC_INVALID 333
1380#define DW_DLE_INFO_HEADER_ERROR 334
1381#define DW_DLE_ARANGES_HEADER_ERROR 335
1382#define DW_DLE_LINE_OFFSET_WRONG_FORM 336
1383#define DW_DLE_FORM_BLOCK_LENGTH_ERROR 337
1384#define DW_DLE_ZLIB_SECTION_SHORT 338
1385#define DW_DLE_CIE_INSTR_PTR_ERROR 339
1386#define DW_DLE_FDE_INSTR_PTR_ERROR 340
1387#define DW_DLE_FISSION_ADDITION_ERROR 341
1388#define DW_DLE_HEADER_LEN_BIGGER_THAN_SECSIZE 342
1389#define DW_DLE_LOCEXPR_OFF_SECTION_END 343
1390#define DW_DLE_POINTER_SECTION_UNKNOWN 344
1391#define DW_DLE_ERRONEOUS_XU_INDEX_SECTION 345
1392#define DW_DLE_DIRECTORY_FORMAT_COUNT_VS_DIRECTORIES_MISMATCH 346
1393#define DW_DLE_COMPRESSED_EMPTY_SECTION 347
1394#define DW_DLE_SIZE_WRAPAROUND 348
1395#define DW_DLE_ILLOGICAL_TSEARCH 349
1396#define DW_DLE_BAD_STRING_FORM 350
1397#define DW_DLE_DEBUGSTR_ERROR 351
1398#define DW_DLE_DEBUGSTR_UNEXPECTED_REL 352
1399#define DW_DLE_DISCR_ARRAY_ERROR 353
1400#define DW_DLE_LEB_OUT_ERROR 354
1401#define DW_DLE_SIBLING_LIST_IMPROPER 355
1402#define DW_DLE_LOCLIST_OFFSET_BAD 356
1403#define DW_DLE_LINE_TABLE_BAD 357
1404#define DW_DLE_DEBUG_LOClISTS_DUPLICATE 358
1405#define DW_DLE_DEBUG_RNGLISTS_DUPLICATE 359
1406#define DW_DLE_ABBREV_OFF_END 360
1407#define DW_DLE_FORM_STRING_BAD_STRING 361
1408#define DW_DLE_AUGMENTATION_STRING_OFF_END 362
1409#define DW_DLE_STRING_OFF_END_PUBNAMES_LIKE 363
1410#define DW_DLE_LINE_STRING_BAD 364
1411#define DW_DLE_DEFINE_FILE_STRING_BAD 365
1412#define DW_DLE_MACRO_STRING_BAD 366
1413#define DW_DLE_MACINFO_STRING_BAD 367
1414#define DW_DLE_ZLIB_UNCOMPRESS_ERROR 368
1415#define DW_DLE_IMPROPER_DWO_ID 369
1416#define DW_DLE_GROUPNUMBER_ERROR 370
1417#define DW_DLE_ADDRESS_SIZE_ZERO 371
1418#define DW_DLE_DEBUG_NAMES_HEADER_ERROR 372
1419#define DW_DLE_DEBUG_NAMES_AUG_STRING_ERROR 373
1420#define DW_DLE_DEBUG_NAMES_PAD_NON_ZERO 374
1421#define DW_DLE_DEBUG_NAMES_OFF_END 375
1422#define DW_DLE_DEBUG_NAMES_ABBREV_OVERFLOW 376
1423#define DW_DLE_DEBUG_NAMES_ABBREV_CORRUPTION 377
1424#define DW_DLE_DEBUG_NAMES_NULL_POINTER 378
1425#define DW_DLE_DEBUG_NAMES_BAD_INDEX_ARG 379
1426#define DW_DLE_DEBUG_NAMES_ENTRYPOOL_OFFSET 380
1427#define DW_DLE_DEBUG_NAMES_UNHANDLED_FORM 381
1428#define DW_DLE_LNCT_CODE_UNKNOWN 382
1429#define DW_DLE_LNCT_FORM_CODE_NOT_HANDLED 383
1430#define DW_DLE_LINE_HEADER_LENGTH_BOTCH 384
1431#define DW_DLE_STRING_HASHTAB_IDENTITY_ERROR 385
1432#define DW_DLE_UNIT_TYPE_NOT_HANDLED 386
1433#define DW_DLE_GROUP_MAP_ALLOC 387
1434#define DW_DLE_GROUP_MAP_DUPLICATE 388
1435#define DW_DLE_GROUP_COUNT_ERROR 389
1436#define DW_DLE_GROUP_INTERNAL_ERROR 390
1437#define DW_DLE_GROUP_LOAD_ERROR 391
1438#define DW_DLE_GROUP_LOAD_READ_ERROR 392
1439#define DW_DLE_AUG_DATA_LENGTH_BAD 393
1440#define DW_DLE_ABBREV_MISSING 394
1441#define DW_DLE_NO_TAG_FOR_DIE 395
1442#define DW_DLE_LOWPC_WRONG_CLASS 396
1443#define DW_DLE_HIGHPC_WRONG_FORM 397
1444#define DW_DLE_STR_OFFSETS_BASE_WRONG_FORM 398
1445#define DW_DLE_DATA16_OUTSIDE_SECTION 399
1446#define DW_DLE_LNCT_MD5_WRONG_FORM 400
1447#define DW_DLE_LINE_HEADER_CORRUPT 401
1448#define DW_DLE_STR_OFFSETS_NULLARGUMENT 402
1449#define DW_DLE_STR_OFFSETS_NULL_DBG 403
1450#define DW_DLE_STR_OFFSETS_NO_MAGIC 404
1451#define DW_DLE_STR_OFFSETS_ARRAY_SIZE 405
1452#define DW_DLE_STR_OFFSETS_VERSION_WRONG 406
1453#define DW_DLE_STR_OFFSETS_ARRAY_INDEX_WRONG 407
1454#define DW_DLE_STR_OFFSETS_EXTRA_BYTES 408
1455#define DW_DLE_DUP_ATTR_ON_DIE 409
1456#define DW_DLE_SECTION_NAME_BIG 410
1457#define DW_DLE_FILE_UNAVAILABLE 411
1458#define DW_DLE_FILE_WRONG_TYPE 412
1459#define DW_DLE_SIBLING_OFFSET_WRONG 413
1460#define DW_DLE_OPEN_FAIL 414
1461#define DW_DLE_OFFSET_SIZE 415
1462#define DW_DLE_MACH_O_SEGOFFSET_BAD 416
1463#define DW_DLE_FILE_OFFSET_BAD 417
1464#define DW_DLE_SEEK_ERROR 418
1465#define DW_DLE_READ_ERROR 419
1466#define DW_DLE_ELF_CLASS_BAD 420
1467#define DW_DLE_ELF_ENDIAN_BAD 421
1468#define DW_DLE_ELF_VERSION_BAD 422
1469#define DW_DLE_FILE_TOO_SMALL 423
1470#define DW_DLE_PATH_SIZE_TOO_SMALL 424
1471#define DW_DLE_BAD_TYPE_SIZE 425
1472#define DW_DLE_PE_SIZE_SMALL 426
1473#define DW_DLE_PE_OFFSET_BAD 427
1474#define DW_DLE_PE_STRING_TOO_LONG 428
1475#define DW_DLE_IMAGE_FILE_UNKNOWN_TYPE 429
1476#define DW_DLE_LINE_TABLE_LINENO_ERROR 430
1477#define DW_DLE_PRODUCER_CODE_NOT_AVAILABLE 431
1478#define DW_DLE_NO_ELF_SUPPORT 432
1479#define DW_DLE_NO_STREAM_RELOC_SUPPORT 433
1480#define DW_DLE_RETURN_EMPTY_PUBNAMES_ERROR 434
1481#define DW_DLE_SECTION_SIZE_ERROR 435
1482#define DW_DLE_INTERNAL_NULL_POINTER 436
1483#define DW_DLE_SECTION_STRING_OFFSET_BAD 437
1484#define DW_DLE_SECTION_INDEX_BAD 438
1485#define DW_DLE_INTEGER_TOO_SMALL 439
1486#define DW_DLE_ELF_SECTION_LINK_ERROR 440
1487#define DW_DLE_ELF_SECTION_GROUP_ERROR 441
1488#define DW_DLE_ELF_SECTION_COUNT_MISMATCH 442
1489#define DW_DLE_ELF_STRING_SECTION_MISSING 443
1490#define DW_DLE_SEEK_OFF_END 444
1491#define DW_DLE_READ_OFF_END 445
1492#define DW_DLE_ELF_SECTION_ERROR 446
1493#define DW_DLE_ELF_STRING_SECTION_ERROR 447
1494#define DW_DLE_MIXING_SPLIT_DWARF_VERSIONS 448
1495#define DW_DLE_TAG_CORRUPT 449
1496#define DW_DLE_FORM_CORRUPT 450
1497#define DW_DLE_ATTR_CORRUPT 451
1498#define DW_DLE_ABBREV_ATTR_DUPLICATION 452
1499#define DW_DLE_DWP_SIGNATURE_MISMATCH 453
1500#define DW_DLE_CU_UT_TYPE_VALUE 454
1501#define DW_DLE_DUPLICATE_GNU_DEBUGLINK 455
1502#define DW_DLE_CORRUPT_GNU_DEBUGLINK 456
1503#define DW_DLE_CORRUPT_NOTE_GNU_DEBUGID 457
1504#define DW_DLE_CORRUPT_GNU_DEBUGID_SIZE 458
1505#define DW_DLE_CORRUPT_GNU_DEBUGID_STRING 459
1506#define DW_DLE_HEX_STRING_ERROR 460
1507#define DW_DLE_DECIMAL_STRING_ERROR 461
1508#define DW_DLE_PRO_INIT_EXTRAS_UNKNOWN 462
1509#define DW_DLE_PRO_INIT_EXTRAS_ERR 463
1510#define DW_DLE_NULL_ARGS_DWARF_ADD_PATH 464
1511#define DW_DLE_DWARF_INIT_DBG_NULL 465
1512#define DW_DLE_ELF_RELOC_SECTION_ERROR 466
1513#define DW_DLE_USER_DECLARED_ERROR 467
1514#define DW_DLE_RNGLISTS_ERROR 468
1515#define DW_DLE_LOCLISTS_ERROR 469
1516#define DW_DLE_SECTION_SIZE_OR_OFFSET_LARGE 470
1517#define DW_DLE_GDBINDEX_STRING_ERROR 471
1518#define DW_DLE_GNU_PUBNAMES_ERROR 472
1519#define DW_DLE_GNU_PUBTYPES_ERROR 473
1520#define DW_DLE_DUPLICATE_GNU_DEBUG_PUBNAMES 474
1521#define DW_DLE_DUPLICATE_GNU_DEBUG_PUBTYPES 475
1522#define DW_DLE_DEBUG_SUP_STRING_ERROR 476
1523#define DW_DLE_DEBUG_SUP_ERROR 477
1524#define DW_DLE_LOCATION_ERROR 478
1525#define DW_DLE_DEBUGLINK_PATH_SHORT 479
1526#define DW_DLE_SIGNATURE_MISMATCH 480
1527#define DW_DLE_MACRO_VERSION_ERROR 481
1528#define DW_DLE_NEGATIVE_SIZE 482
1529#define DW_DLE_UDATA_VALUE_NEGATIVE 483
1530#define DW_DLE_DEBUG_NAMES_ERROR 484
1531#define DW_DLE_CFA_INSTRUCTION_ERROR 485
1532#define DW_DLE_MACHO_CORRUPT_HEADER 486
1533#define DW_DLE_MACHO_CORRUPT_COMMAND 487
1534#define DW_DLE_MACHO_CORRUPT_SECTIONDETAILS 488
1535#define DW_DLE_RELOCATION_SECTION_SIZE_ERROR 489
1536#define DW_DLE_SYMBOL_SECTION_SIZE_ERROR 490
1537#define DW_DLE_PE_SECTION_SIZE_ERROR 491
1538#define DW_DLE_DEBUG_ADDR_ERROR 492
1539#define DW_DLE_NO_SECT_STRINGS 493
1540#define DW_DLE_TOO_FEW_SECTIONS 494
1541#define DW_DLE_BUILD_ID_DESCRIPTION_SIZE 495
1542#define DW_DLE_BAD_SECTION_FLAGS 496
1543#define DW_DLE_IMPROPER_SECTION_ZERO 497
1544#define DW_DLE_INVALID_NULL_ARGUMENT 498
1545#define DW_DLE_LINE_INDEX_WRONG 499
1546#define DW_DLE_LINE_COUNT_WRONG 500
1547#define DW_DLE_ARITHMETIC_OVERFLOW 501
1548#define DW_DLE_UNIVERSAL_BINARY_ERROR 502
1549#define DW_DLE_UNIV_BIN_OFFSET_SIZE_ERROR 503
1550#define DW_DLE_PE_SECTION_SIZE_HEURISTIC_FAIL 504
1551#define DW_DLE_LLE_ERROR 505
1552#define DW_DLE_RLE_ERROR 506
1553#define DW_DLE_MACHO_SEGMENT_COUNT_HEURISTIC_FAIL 507
1554#define DW_DLE_DUPLICATE_NOTE_GNU_BUILD_ID 508
1555#define DW_DLE_SYSCONF_VALUE_UNUSABLE 509
1556#define DW_DLE_FRAME_ITERATOR_ERR 510
1557#define DW_DLE_FRAME_FDE_TABLE_ERR 511
1558#define DW_DLE_COMPRESSED_FORMAT_ODD 512
1559#define DW_DLE_COMPRESSED_FORMAT_UNKNOWN 513
1560#define DW_DLE_ALLOC_DECOMPRESS_FAIL 514
1561#define DW_DLE_ZSTD_DATA_ERROR 515
1562#define DW_DLE_ZLIB_ZSTD_MISSING 516
1563#define DW_DLE_ELF_GRPSTRING_SECTION_ERROR 517
1564
1566#define DW_DLE_LAST 517
1567#define DW_DLE_LO_USER 0x10000
1632DW_API int dwarf_init_path(const char * dw_path,
1633 char * dw_true_path_out_buffer,
1634 unsigned int dw_true_path_bufferlen,
1635 unsigned int dw_groupnumber,
1636 Dwarf_Handler dw_errhand,
1637 Dwarf_Ptr dw_errarg,
1638 Dwarf_Debug* dw_dbg,
1639 Dwarf_Error* dw_error);
1640
1653DW_API int dwarf_init_path_a(const char * dw_path,
1654 char * dw_true_path_out_buffer,
1655 unsigned int dw_true_path_bufferlen,
1656 unsigned int dw_groupnumber,
1657 unsigned int dw_universalnumber,
1658 Dwarf_Handler dw_errhand,
1659 Dwarf_Ptr dw_errarg,
1660 Dwarf_Debug* dw_dbg,
1661 Dwarf_Error* dw_error);
1662
1719DW_API int dwarf_init_path_dl(const char * dw_path,
1720 char * dw_true_path_out_buffer,
1721 unsigned int dw_true_path_bufferlen,
1722 unsigned int dw_groupnumber,
1723 Dwarf_Handler dw_errhand,
1724 Dwarf_Ptr dw_errarg,
1725 Dwarf_Debug* dw_dbg,
1726 char ** dw_dl_path_array,
1727 unsigned int dw_dl_path_array_size,
1728 unsigned char * dw_dl_path_source,
1729 Dwarf_Error* dw_error);
1730
1747DW_API int dwarf_init_path_dl_a(const char * dw_path,
1748 char * dw_true_path_out_buffer,
1749 unsigned int dw_true_path_bufferlen,
1750 unsigned int dw_groupnumber,
1751 unsigned int dw_universalnumber,
1752 Dwarf_Handler dw_errhand,
1753 Dwarf_Ptr dw_errarg,
1754 Dwarf_Debug* dw_dbg,
1755 char ** dw_dl_path_array,
1756 unsigned int dw_dl_path_array_size,
1757 unsigned char * dw_dl_path_source,
1758 Dwarf_Error* dw_error);
1759
1793DW_API int dwarf_init_b(int dw_fd,
1794 unsigned int dw_groupnumber,
1795 Dwarf_Handler dw_errhand,
1796 Dwarf_Ptr dw_errarg,
1797 Dwarf_Debug* dw_dbg,
1798 Dwarf_Error* dw_error);
1799
1815DW_API int dwarf_finish(Dwarf_Debug dw_dbg);
1816
1854 Dwarf_Handler dw_errhand,
1855 Dwarf_Ptr dw_errarg,
1856 unsigned int dw_groupnumber,
1857 Dwarf_Debug* dw_dbg,
1858 Dwarf_Error* dw_error);
1859
1875
1906DW_API int dwarf_set_tied_dbg(Dwarf_Debug dw_split_dbg,
1907 Dwarf_Debug dw_tied_dbg,
1908 Dwarf_Error* dw_error);
1909
1944 Dwarf_Debug * dw_tieddbg_out,
1945 Dwarf_Error * dw_error);
2022 Dwarf_Bool dw_is_info,
2023 Dwarf_Die *dw_cu_die,
2024 Dwarf_Unsigned *dw_cu_header_length,
2025 Dwarf_Half *dw_version_stamp,
2026 Dwarf_Off *dw_abbrev_offset,
2027 Dwarf_Half *dw_address_size,
2028 Dwarf_Half *dw_length_size,
2029 Dwarf_Half *dw_extension_size,
2030 Dwarf_Sig8 *dw_type_signature,
2031 Dwarf_Unsigned *dw_typeoffset,
2032 Dwarf_Unsigned *dw_next_cu_header_offset,
2033 Dwarf_Half *dw_header_cu_type,
2034 Dwarf_Error *dw_error);
2035
2074 Dwarf_Bool dw_is_info,
2075 Dwarf_Unsigned *dw_cu_header_length,
2076 Dwarf_Half *dw_version_stamp,
2077 Dwarf_Off *dw_abbrev_offset,
2078 Dwarf_Half *dw_address_size,
2079 Dwarf_Half *dw_length_size,
2080 Dwarf_Half *dw_extension_size,
2081 Dwarf_Sig8 *dw_type_signature,
2082 Dwarf_Unsigned *dw_typeoffset,
2083 Dwarf_Unsigned *dw_next_cu_header_offset,
2084 Dwarf_Half *dw_header_cu_type,
2085 Dwarf_Error *dw_error);
2086
2103 Dwarf_Die *dw_return_siblingdie,
2104 Dwarf_Error *dw_error);
2105
2141 Dwarf_Die dw_die,
2142 Dwarf_Bool dw_is_info,
2143 Dwarf_Die *dw_return_siblingdie,
2144 Dwarf_Error *dw_error);
2145
2187 Dwarf_Half *dw_version,
2188 Dwarf_Bool *dw_is_info,
2189 Dwarf_Bool *dw_is_dwo,
2190 Dwarf_Half *dw_offset_size,
2191 Dwarf_Half *dw_address_size,
2192 Dwarf_Half *dw_extension_size,
2193 Dwarf_Sig8 **dw_signature,
2194 Dwarf_Off *dw_offset_of_length,
2195 Dwarf_Unsigned *dw_total_byte_length,
2196 Dwarf_Error *dw_error);
2197
2217DW_API int dwarf_child(Dwarf_Die dw_die,
2218 Dwarf_Die* dw_return_childdie,
2219 Dwarf_Error* dw_error);
2220
2228DW_API void dwarf_dealloc_die( Dwarf_Die dw_die);
2229
2248 Dwarf_Sig8 * dw_hash_sig,
2249 const char * dw_sig_type,
2250 Dwarf_Die* dw_returned_CU_die,
2251 Dwarf_Error* dw_error);
2252
2283DW_API int dwarf_offdie_b(Dwarf_Debug dw_dbg,
2284 Dwarf_Off dw_offset,
2285 Dwarf_Bool dw_is_info,
2286 Dwarf_Die* dw_return_die,
2287 Dwarf_Error* dw_error);
2288
2311 Dwarf_Sig8 *dw_ref,
2312 Dwarf_Die *dw_die_out,
2313 Dwarf_Bool *dw_is_info,
2314 Dwarf_Error *dw_error);
2315
2357 Dwarf_Off * dw_abbrev_offset,
2358 Dwarf_Unsigned * dw_abbrev_count,
2359 Dwarf_Error* dw_error);
2360
2371DW_API int dwarf_tag(Dwarf_Die dw_die,
2372 Dwarf_Half* dw_return_tag,
2373 Dwarf_Error* dw_error);
2374
2387DW_API int dwarf_dieoffset(Dwarf_Die dw_die,
2388 Dwarf_Off* dw_return_offset,
2389 Dwarf_Error* dw_error);
2390
2410 Dwarf_Unsigned dw_index,
2411 Dwarf_Addr * dw_return_addr,
2412 Dwarf_Error * dw_error);
2413
2423
2448 Dwarf_Off* dw_return_offset,
2449 Dwarf_Error* dw_error);
2450
2472 Dwarf_Debug dw_dbg,
2473 Dwarf_Off dw_in_cu_header_offset,
2474 Dwarf_Bool dw_is_info,
2475 Dwarf_Off * dw_out_cu_die_offset,
2476 Dwarf_Error *dw_error);
2477
2496 Dwarf_Off* dw_return_offset,
2497 Dwarf_Error* dw_error);
2498
2520 Dwarf_Off* dw_return_CU_header_offset,
2521 Dwarf_Off* dw_return_CU_length_bytes,
2522 Dwarf_Error* dw_error);
2523
2541DW_API int dwarf_attr(Dwarf_Die dw_die,
2542 Dwarf_Half dw_attrnum,
2543 Dwarf_Attribute * dw_returned_attr,
2544 Dwarf_Error* dw_error);
2545
2567DW_API int dwarf_die_text(Dwarf_Die dw_die,
2568 Dwarf_Half dw_attrnum,
2569 char ** dw_ret_name,
2570 Dwarf_Error * dw_error);
2571
2591DW_API int dwarf_diename(Dwarf_Die dw_die,
2592 char ** dw_diename,
2593 Dwarf_Error* dw_error);
2594
2613
2628 Dwarf_Half * dw_ab_has_child);
2629
2654 Dwarf_Off* dw_offset);
2655
2656/* convenience functions, alternative to using dwarf_attrlist */
2657
2676DW_API int dwarf_hasattr(Dwarf_Die dw_die,
2677 Dwarf_Half dw_attrnum,
2678 Dwarf_Bool * dw_returned_bool,
2679 Dwarf_Error* dw_error);
2680
2717 Dwarf_Off dw_offset,
2718 Dwarf_Bool dw_is_info,
2719 Dwarf_Off ** dw_offbuf,
2720 Dwarf_Unsigned * dw_offcount,
2721 Dwarf_Error * dw_error);
2722
2736 Dwarf_Half * dw_addr_size,
2737 Dwarf_Error * dw_error);
2738
2739/* Get both offsets (local and global) */
2760 Dwarf_Off* dw_global_offset,
2761 Dwarf_Off* dw_local_offset,
2762 Dwarf_Error* dw_error);
2763
2787 Dwarf_Half * dw_version,
2788 Dwarf_Half * dw_offset_size);
2789
2803DW_API int dwarf_lowpc(Dwarf_Die dw_die,
2804 Dwarf_Addr * dw_returned_addr,
2805 Dwarf_Error* dw_error);
2806
2838DW_API int dwarf_highpc_b(Dwarf_Die dw_die,
2839 Dwarf_Addr * dw_return_addr,
2840 Dwarf_Half * dw_return_form,
2841 enum Dwarf_Form_Class * dw_return_class,
2842 Dwarf_Error * dw_error);
2843
2870 Dwarf_Off * dw_return_offset,
2871 Dwarf_Bool * dw_is_info,
2872 Dwarf_Error * dw_error);
2873
2885DW_API int dwarf_bytesize(Dwarf_Die dw_die,
2886 Dwarf_Unsigned * dw_returned_size,
2887 Dwarf_Error* dw_error);
2888
2900DW_API int dwarf_bitsize(Dwarf_Die dw_die,
2901 Dwarf_Unsigned * dw_returned_size,
2902 Dwarf_Error* dw_error);
2903
2924DW_API int dwarf_bitoffset(Dwarf_Die dw_die,
2925 Dwarf_Half * dw_attrnum,
2926 Dwarf_Unsigned * dw_returned_offset,
2927 Dwarf_Error* dw_error);
2928
2954DW_API int dwarf_srclang(Dwarf_Die dw_die,
2955 Dwarf_Unsigned * dw_returned_lang,
2956 Dwarf_Error * dw_error);
2957
2983 Dwarf_Unsigned *dw_returned_lname,
2984 Dwarf_Error *dw_error);
2985
3011 const char *dw_returned_verstring,
3012 Dwarf_Error *dw_error);
3013
3043 Dwarf_Unsigned dw_lname_name,
3044 int *dw_default_lower_bound,
3045 const char **dw_version_string);
3046
3053 Dwarf_Unsigned dw_lname_name,
3054 int *dw_default_lower_bound,
3055 const char **dw_version_string);
3056
3089 Dwarf_Unsigned dw_lv_ver,
3090 const char **dw_ret_version_name,
3091 const char **dw_ret_version_scheme);
3092
3125DW_API int dwarf_lvn_name(Dwarf_Die dw_die,
3126 const char **dw_ret_version_name,
3127 const char **dw_ret_version_scheme);
3128
3167 Dwarf_Unsigned *dw_lvn_language_name,
3168 Dwarf_Unsigned *dw_lvn_language_version,
3169 const char **dw_lvn_language_version_scheme,
3170 const char **dw_lvn_language_version_name);
3171
3184DW_API int dwarf_arrayorder(Dwarf_Die dw_die,
3185 Dwarf_Unsigned * dw_returned_order,
3186 Dwarf_Error* dw_error);
3216DW_API int dwarf_attrlist(Dwarf_Die dw_die,
3217 Dwarf_Attribute** dw_attrbuf,
3218 Dwarf_Signed * dw_attrcount,
3219 Dwarf_Error* dw_error);
3220
3240 Dwarf_Half dw_form,
3241 Dwarf_Bool * dw_returned_bool,
3242 Dwarf_Error* dw_error);
3243
3263 Dwarf_Half * dw_returned_final_form,
3264 Dwarf_Error* dw_error);
3265
3283 Dwarf_Half * dw_returned_initial_form,
3284 Dwarf_Error* dw_error);
3285
3302 Dwarf_Half * dw_returned_attrnum,
3303 Dwarf_Error* dw_error);
3304
3330 Dwarf_Off* dw_return_offset,
3331 Dwarf_Bool *dw_is_info,
3332 Dwarf_Error *dw_error);
3333
3367 Dwarf_Off *dw_return_offset,
3368 Dwarf_Bool *dw_offset_is_info,
3369 Dwarf_Error *dw_error);
3370
3382 Dwarf_Off* dw_return_offset,
3383 Dwarf_Error* dw_error);
3384
3404 Dwarf_Sig8 * dw_returned_sig_bytes,
3405 Dwarf_Error* dw_error);
3406
3426 Dwarf_Sig8 * dw_returned_sig_bytes,
3427 Dwarf_Error* dw_error);
3428
3449 Dwarf_Addr * dw_returned_addr,
3450 Dwarf_Error* dw_error);
3451
3472 Dwarf_Unsigned * dw_return_index,
3473 Dwarf_Error * dw_error);
3474
3489 Dwarf_Bool * dw_returned_bool,
3490 Dwarf_Error* dw_error);
3491
3508 Dwarf_Unsigned * dw_returned_val,
3509 Dwarf_Error* dw_error);
3510
3526 Dwarf_Signed * dw_returned_val,
3527 Dwarf_Error* dw_error);
3528
3547 Dwarf_Form_Data16 * dw_returned_val,
3548 Dwarf_Error* dw_error);
3549
3569 Dwarf_Block ** dw_returned_block,
3570 Dwarf_Error* dw_error);
3571
3587 char ** dw_returned_string,
3588 Dwarf_Error* dw_error);
3589
3606 Dwarf_Unsigned * dw_return_index,
3607 Dwarf_Error * dw_error);
3608
3628 Dwarf_Unsigned * dw_return_exprlen,
3629 Dwarf_Ptr * dw_block_ptr,
3630 Dwarf_Error * dw_error);
3631
3652 Dwarf_Half dw_version,
3653 Dwarf_Half dw_attrnum,
3654 Dwarf_Half dw_offset_size,
3655 Dwarf_Half dw_form);
3656
3673 Dwarf_Attribute dw_attr,
3674 Dwarf_Off * dw_return_offset,
3675 Dwarf_Error * dw_error);
3676
3685 Dwarf_Unsigned dw_input_length_in_bytes,
3686 void * dw_input_block,
3687 Dwarf_Unsigned * dw_value_count,
3688 Dwarf_Signed ** dw_value_array,
3689 Dwarf_Error * dw_error);
3690
3699 void *dw_value_array);
3700
3721 Dwarf_Off dw_offset,
3722 Dwarf_Off* dw_return_offset,
3723 Dwarf_Error* dw_error);
3724
3731
3759 Dwarf_Small * dw_blockpointer,
3760 Dwarf_Unsigned dw_blocklen,
3761 Dwarf_Dsc_Head * dw_dsc_head_out,
3762 Dwarf_Unsigned * dw_dsc_array_length_out,
3763 Dwarf_Error * dw_error);
3764
3791 Dwarf_Unsigned dw_entrynum,
3792 Dwarf_Half * dw_out_type,
3793 Dwarf_Unsigned * dw_out_discr_low,
3794 Dwarf_Unsigned * dw_out_discr_high,
3795 Dwarf_Error * dw_error);
3796
3803 Dwarf_Unsigned dw_entrynum,
3804 Dwarf_Half * dw_out_type,
3805 Dwarf_Signed * dw_out_discr_low,
3806 Dwarf_Signed * dw_out_discr_high,
3807 Dwarf_Error * dw_error);
3808
3886DW_API int dwarf_srcfiles(Dwarf_Die dw_cu_die,
3887 char *** dw_srcfiles,
3888 Dwarf_Signed * dw_filecount,
3889 Dwarf_Error * dw_error);
3890
3917DW_API int dwarf_srclines_b(Dwarf_Die dw_cudie,
3918 Dwarf_Unsigned * dw_version_out,
3919 Dwarf_Small * dw_table_count,
3920 Dwarf_Line_Context * dw_linecontext,
3921 Dwarf_Error * dw_error);
3922
3944 Dwarf_Line_Context dw_linecontext,
3945 Dwarf_Line ** dw_linebuf,
3946 Dwarf_Signed * dw_linecount,
3947 Dwarf_Error * dw_error);
3948
3966 Dwarf_Line_Context dw_context,
3967 Dwarf_Line ** dw_linebuf ,
3968 Dwarf_Signed * dw_linecount,
3969 Dwarf_Line ** dw_linebuf_actuals,
3970 Dwarf_Signed * dw_linecount_actuals,
3971 Dwarf_Error * dw_error);
3972
3983
4000 Dwarf_Unsigned * dw_offset,
4001 Dwarf_Error * dw_error);
4002
4019 const char ** dw_compilation_directory,
4020 Dwarf_Error * dw_error);
4021
4038 Dwarf_Signed * dw_count,
4039 Dwarf_Error * dw_error);
4040
4060 Dwarf_Signed dw_index,
4061 const char ** dw_name,
4062 Dwarf_Unsigned * dw_decl_file,
4063 Dwarf_Unsigned * dw_decl_line,
4064 Dwarf_Error * dw_error);
4065
4091 Dwarf_Line_Context dw_context,
4092 Dwarf_Signed * dw_baseindex,
4093 Dwarf_Signed * dw_count,
4094 Dwarf_Signed * dw_endindex,
4095 Dwarf_Error * dw_error);
4096
4149 Dwarf_Line_Context dw_context,
4150 Dwarf_Signed dw_index_in,
4151 const char ** dw_name,
4152 Dwarf_Unsigned * dw_directory_index,
4153 Dwarf_Unsigned * dw_last_mod_time,
4154 Dwarf_Unsigned * dw_file_length,
4155 Dwarf_Form_Data16 ** dw_md5ptr,
4156 Dwarf_Error * dw_error);
4157
4173 Dwarf_Line_Context dw_line_context,
4174 Dwarf_Signed * dw_count,
4175 Dwarf_Error * dw_error);
4176
4200 Dwarf_Line_Context dw_line_context,
4201 Dwarf_Signed dw_index,
4202 const char ** dw_name,
4203 Dwarf_Error * dw_error);
4204
4234 Dwarf_Unsigned * dw_version,
4235 Dwarf_Small * dw_table_count,
4236 Dwarf_Error * dw_error);
4237
4254 Dwarf_Bool * dw_returned_bool,
4255 Dwarf_Error * dw_error);
4256
4273 Dwarf_Bool * dw_returned_bool,
4274 Dwarf_Error * dw_error);
4275
4290DW_API int dwarf_lineno(Dwarf_Line dw_line,
4291 Dwarf_Unsigned * dw_returned_linenum,
4292 Dwarf_Error * dw_error);
4293
4309 Dwarf_Unsigned * dw_returned_filenum,
4310 Dwarf_Error * dw_error);
4311
4326 Dwarf_Bool * dw_is_addr_set,
4327 Dwarf_Error * dw_error);
4328
4343DW_API int dwarf_lineaddr(Dwarf_Line dw_line,
4344 Dwarf_Addr * dw_returned_addr,
4345 Dwarf_Error* dw_error);
4346
4361DW_API int dwarf_lineoff_b(Dwarf_Line dw_line,
4362 Dwarf_Unsigned * dw_returned_lineoffset,
4363 Dwarf_Error* dw_error);
4364
4389DW_API int dwarf_linesrc(Dwarf_Line dw_line,
4390 char ** dw_returned_name,
4391 Dwarf_Error* dw_error);
4392
4407DW_API int dwarf_lineblock(Dwarf_Line dw_line,
4408 Dwarf_Bool * dw_returned_bool,
4409 Dwarf_Error* dw_error);
4410
4411/* We gather these into one call as it's likely one
4412 will want all or none of them. */
4437 Dwarf_Bool * dw_prologue_end,
4438 Dwarf_Bool * dw_epilogue_begin,
4439 Dwarf_Unsigned * dw_isa,
4440 Dwarf_Unsigned * dw_discriminator,
4441 Dwarf_Error * dw_error);
4442/* End line table operations */
4443
4450 Dwarf_Unsigned * dw_returned_logical,
4451 Dwarf_Error* dw_error);
4452
4460 Dwarf_Unsigned * dw_returned_context,
4461 Dwarf_Error* dw_error);
4462
4472 Dwarf_Unsigned * /*ret_subprogno*/,
4473 Dwarf_Error * /*error*/);
4474
4481DW_API int dwarf_line_subprog(Dwarf_Line /*line*/,
4482 char ** /*returned_subprog_name*/,
4483 char ** /*returned_filename*/,
4484 Dwarf_Unsigned * /*returned_lineno*/,
4485 Dwarf_Error * /*error*/);
4486
4508 int * dw_errcount_out,
4509 Dwarf_Error * dw_error);
4510
4540DW_API int dwarf_print_lines(Dwarf_Die dw_cu_die,
4541 Dwarf_Error * dw_error,
4542 int * dw_errorcount_out);
4543
4564DW_API struct Dwarf_Printf_Callback_Info_s
4566 struct Dwarf_Printf_Callback_Info_s * dw_callbackinfo);
4567
4628 Dwarf_Off dw_rangesoffset,
4629 Dwarf_Die dw_die,
4630 Dwarf_Off * dw_return_realoffset,
4631 Dwarf_Ranges ** dw_rangesbuf,
4632 Dwarf_Signed * dw_rangecount,
4633 Dwarf_Unsigned * dw_bytecount,
4634 Dwarf_Error * dw_error);
4635
4646 Dwarf_Ranges * dw_rangesbuf,
4647 Dwarf_Signed dw_rangecount);
4648
4690 Dwarf_Die dw_die,
4691 Dwarf_Bool *dw_known_base,
4692 Dwarf_Unsigned *dw_baseaddress,
4693 Dwarf_Bool *dw_at_ranges_offset_present,
4694 Dwarf_Unsigned *dw_at_ranges_offset,
4695 Dwarf_Error *dw_error);
4696
4743 Dwarf_Half dw_theform,
4744 Dwarf_Unsigned dw_index_or_offset_value,
4745 Dwarf_Rnglists_Head * dw_head_out,
4746 Dwarf_Unsigned * dw_count_of_entries_in_head,
4747 Dwarf_Unsigned * dw_global_offset_of_rle_set,
4748 Dwarf_Error * dw_error);
4749
4793 Dwarf_Rnglists_Head dw_head,
4794 Dwarf_Unsigned dw_entrynum,
4795 unsigned int * dw_entrylen,
4796 unsigned int * dw_rle_value_out,
4797 Dwarf_Unsigned * dw_raw1,
4798 Dwarf_Unsigned * dw_raw2,
4799 Dwarf_Bool * dw_debug_addr_unavailable,
4800 Dwarf_Unsigned * dw_cooked1,
4801 Dwarf_Unsigned * dw_cooked2,
4802 Dwarf_Error * dw_error);
4803
4812
4844 Dwarf_Unsigned * dw_rnglists_count,
4845 Dwarf_Error * dw_error);
4846
4874 Dwarf_Unsigned dw_context_index,
4875 Dwarf_Unsigned dw_offsetentry_index,
4876 Dwarf_Unsigned * dw_offset_value_out,
4877 Dwarf_Unsigned * dw_global_offset_value_out,
4878 Dwarf_Error * dw_error);
4879
4887 Dwarf_Unsigned * dw_rle_count,
4888 Dwarf_Unsigned * dw_rnglists_version,
4889 Dwarf_Unsigned * dw_rnglists_index_returned,
4890 Dwarf_Unsigned * dw_bytes_total_in_rle,
4891 Dwarf_Half * dw_offset_size,
4892 Dwarf_Half * dw_address_size,
4893 Dwarf_Half * dw_segment_selector_size,
4894 Dwarf_Unsigned * dw_overall_offset_of_this_context,
4895 Dwarf_Unsigned * dw_total_length_of_this_context,
4896 Dwarf_Unsigned * dw_offset_table_offset,
4897 Dwarf_Unsigned * dw_offset_table_entrycount,
4898 Dwarf_Bool * dw_rnglists_base_present,
4899 Dwarf_Unsigned * dw_rnglists_base,
4900 Dwarf_Bool * dw_rnglists_base_address_present,
4901 Dwarf_Unsigned * dw_rnglists_base_address,
4902 Dwarf_Bool * dw_rnglists_debug_addr_base_present,
4903 Dwarf_Unsigned * dw_rnglists_debug_addr_base,
4904 Dwarf_Error * dw_error);
4905
4922 Dwarf_Unsigned dw_index,
4923 Dwarf_Unsigned * dw_header_offset,
4924 Dwarf_Small * dw_offset_size,
4925 Dwarf_Small * dw_extension_size,
4926 unsigned int * dw_version,
4927 Dwarf_Small * dw_address_size,
4928 Dwarf_Small * dw_segment_selector_size,
4929 Dwarf_Unsigned * dw_offset_entry_count,
4930 Dwarf_Unsigned * dw_offset_of_offset_array,
4931 Dwarf_Unsigned * dw_offset_of_first_rangeentry,
4932 Dwarf_Unsigned * dw_offset_past_last_rangeentry,
4933 Dwarf_Error * dw_error);
4934
4945 Dwarf_Unsigned dw_contextnumber,
4946 Dwarf_Unsigned dw_entry_offset,
4947 Dwarf_Unsigned dw_endoffset,
4948 unsigned int * dw_entrylen,
4949 unsigned int * dw_entry_kind,
4950 Dwarf_Unsigned * dw_entry_operand1,
4951 Dwarf_Unsigned * dw_entry_operand2,
4952 Dwarf_Error * dw_error);
4980 Dwarf_Loc_Head_c * dw_loclist_head,
4981 Dwarf_Unsigned * dw_locentry_count,
4982 Dwarf_Error * dw_error);
4983
4984#define DW_LKIND_expression 0 /* DWARF2,3,4,5 */
4985#define DW_LKIND_loclist 1 /* DWARF 2,3,4 */
4986#define DW_LKIND_GNU_exp_list 2 /* GNU DWARF4 .dwo extension */
4987#define DW_LKIND_loclists 5 /* DWARF5 loclists */
4988#define DW_LKIND_unknown 99
4989
5003 Dwarf_Loc_Head_c dw_loclist_head,
5004 unsigned int * dw_lkind,
5005 Dwarf_Error * dw_error);
5006
5062 Dwarf_Unsigned dw_index,
5063 Dwarf_Small * dw_lle_value_out,
5064 Dwarf_Unsigned * dw_rawlowpc,
5065 Dwarf_Unsigned * dw_rawhipc,
5066 Dwarf_Bool * dw_debug_addr_unavailable,
5067 Dwarf_Addr * dw_lowpc_cooked,
5068 Dwarf_Addr * dw_hipc_cooked,
5069 Dwarf_Unsigned * dw_locexpr_op_count_out,
5070 Dwarf_Locdesc_c * dw_locentry_out,
5071 Dwarf_Small * dw_loclist_source_out,
5072 Dwarf_Unsigned * dw_expression_offset_out,
5073 Dwarf_Unsigned * dw_locdesc_offset_out,
5074 Dwarf_Error * dw_error);
5075
5096 Dwarf_Unsigned dw_index,
5097 Dwarf_Small * dw_lle_value_out,
5098 Dwarf_Unsigned * dw_rawlowpc,
5099 Dwarf_Unsigned * dw_rawhipc,
5100 Dwarf_Bool * dw_debug_addr_unavailable,
5101 Dwarf_Addr * dw_lowpc_cooked,
5102 Dwarf_Addr * dw_hipc_cooked,
5103 Dwarf_Unsigned * dw_locexpr_op_count_out,
5104 Dwarf_Unsigned * dw_lle_bytecount,
5105 Dwarf_Locdesc_c * dw_locentry_out,
5106 Dwarf_Small * dw_loclist_source_out,
5107 Dwarf_Unsigned * dw_expression_offset_out,
5108 Dwarf_Unsigned * dw_locdesc_offset_out,
5109 Dwarf_Error * dw_error);
5110
5137 Dwarf_Unsigned dw_index,
5138 Dwarf_Small * dw_operator_out,
5139 Dwarf_Unsigned * dw_operand1,
5140 Dwarf_Unsigned * dw_operand2,
5141 Dwarf_Unsigned * dw_operand3,
5142 Dwarf_Unsigned * dw_offset_for_branch,
5143 Dwarf_Error* dw_error);
5176 Dwarf_Ptr dw_expression_in,
5177 Dwarf_Unsigned dw_expression_length,
5178 Dwarf_Half dw_address_size,
5179 Dwarf_Half dw_offset_size,
5180 Dwarf_Half dw_dwarf_version,
5181 Dwarf_Loc_Head_c* dw_loc_head,
5182 Dwarf_Unsigned * dw_listlen,
5183 Dwarf_Error * dw_error);
5184
5193
5194/* These interfaces allow reading the .debug_loclists
5195 section. Independently of DIEs.
5196 Normal use of .debug_loclists uses
5197 dwarf_get_loclist_c() to open access to any kind of location
5198 or loclist and uses dwarf_loc_head_c_dealloc() to
5199 deallocate that memory once one is finished with
5200 that data. So for most purposes you do not need
5201 to use these functions
5202 See dwarf_get_loclist_c() to open a Dwarf_Loc_Head_c
5203 on any type of location list or expression. */
5204
5205/* Loads all the loclists headers and
5206 returns DW_DLV_NO_ENTRY if the section
5207 is missing or empty.
5208 Intended to be done quite early and
5209 it is automatically
5210 done if .debug_info is loaded.
5211 Doing it more than once is never necessary
5212 or harmful. There is no deallocation call
5213 made visible, deallocation happens
5214 when dwarf_finish() is called.
5215 With DW_DLV_OK it returns the number of
5216 loclists headers in the section through
5217 loclists_count. */
5248 Dwarf_Unsigned * dw_loclists_count,
5249 Dwarf_Error * dw_error);
5250
5277 Dwarf_Unsigned dw_context_index,
5278 Dwarf_Unsigned dw_offsetentry_index,
5279 Dwarf_Unsigned * dw_offset_value_out,
5280 Dwarf_Unsigned * dw_global_offset_value_out,
5281 Dwarf_Error * dw_error);
5282
5298 Dwarf_Small * dw_lkind,
5299 Dwarf_Unsigned * dw_lle_count,
5300 Dwarf_Unsigned * dw_loclists_version,
5301 Dwarf_Unsigned * dw_loclists_index_returned,
5302 Dwarf_Unsigned * dw_bytes_total_in_rle,
5303 Dwarf_Half * dw_offset_size,
5304 Dwarf_Half * dw_address_size,
5305 Dwarf_Half * dw_segment_selector_size,
5306 Dwarf_Unsigned * dw_overall_offset_of_this_context,
5307 Dwarf_Unsigned * dw_total_length_of_this_context,
5308 Dwarf_Unsigned * dw_offset_table_offset,
5309 Dwarf_Unsigned * dw_offset_table_entrycount,
5310 Dwarf_Bool * dw_loclists_base_present,
5311 Dwarf_Unsigned * dw_loclists_base,
5312 Dwarf_Bool * dw_loclists_base_address_present,
5313 Dwarf_Unsigned * dw_loclists_base_address,
5314 Dwarf_Bool * dw_loclists_debug_addr_base_present,
5315 Dwarf_Unsigned * dw_loclists_debug_addr_base,
5316 Dwarf_Unsigned * dw_offset_this_lle_area,
5317 Dwarf_Error * dw_error);
5318
5328 Dwarf_Unsigned dw_index,
5329 Dwarf_Unsigned * dw_header_offset,
5330 Dwarf_Small * dw_offset_size,
5331 Dwarf_Small * dw_extension_size,
5332 unsigned int * dw_version,
5333 Dwarf_Small * dw_address_size,
5334 Dwarf_Small * dw_segment_selector_size,
5335 Dwarf_Unsigned * dw_offset_entry_count,
5336 Dwarf_Unsigned * dw_offset_of_offset_array,
5337 Dwarf_Unsigned * dw_offset_of_first_locentry,
5338 Dwarf_Unsigned * dw_offset_past_last_locentry,
5339 Dwarf_Error * dw_error);
5340
5346 Dwarf_Unsigned dw_contextnumber,
5347 Dwarf_Unsigned dw_entry_offset,
5348 Dwarf_Unsigned dw_endoffset,
5349 unsigned int * dw_entrylen,
5350 unsigned int * dw_entry_kind,
5351 Dwarf_Unsigned * dw_entry_operand1,
5352 Dwarf_Unsigned * dw_entry_operand2,
5353 Dwarf_Unsigned * dw_expr_ops_blocksize,
5354 Dwarf_Unsigned * dw_expr_ops_offset,
5355 Dwarf_Small ** dw_expr_opsdata,
5356 Dwarf_Error * dw_error);
5437 Dwarf_Unsigned dw_section_offset,
5438 Dwarf_Debug_Addr_Table *dw_table_header,
5439 Dwarf_Unsigned *dw_length,
5440 Dwarf_Half *dw_version,
5441 Dwarf_Small *dw_address_size,
5442 Dwarf_Unsigned *dw_at_addr_base,
5443 Dwarf_Unsigned *dw_entry_count,
5444 Dwarf_Unsigned *dw_next_table_offset,
5445 Dwarf_Error *dw_error);
5446
5470 Dwarf_Unsigned dw_entry_index,
5471 Dwarf_Unsigned *dw_address,
5472 Dwarf_Error *dw_error);
5473
5482 Dwarf_Debug_Addr_Table dw_dat);
5483
5521 Dwarf_Unsigned * dw_version_out,
5522 Dwarf_Macro_Context * dw_macro_context,
5523 Dwarf_Unsigned * dw_macro_unit_offset_out,
5524 Dwarf_Unsigned * dw_macro_ops_count_out,
5525 Dwarf_Unsigned * dw_macro_ops_data_length_out,
5526 Dwarf_Error * dw_error);
5527
5556 Dwarf_Unsigned dw_offset,
5557 Dwarf_Unsigned * dw_version_out,
5558 Dwarf_Macro_Context * dw_macro_context,
5559 Dwarf_Unsigned * dw_macro_ops_count_out,
5560 Dwarf_Unsigned * dw_macro_ops_data_length,
5561 Dwarf_Error * dw_error);
5562
5563/* New December 2020. libdwarf 0.1.0
5564 Sometimes its necessary to know
5565 a context total length including macro 5 header */
5579 Dwarf_Macro_Context dw_context,
5580 Dwarf_Unsigned * dw_mac_total_len,
5581 Dwarf_Error * dw_error);
5582
5591
5598 Dwarf_Half * dw_version,
5599 Dwarf_Unsigned * dw_mac_offset,
5600 Dwarf_Unsigned * dw_mac_len,
5601 Dwarf_Unsigned * dw_mac_header_len,
5602 unsigned int * dw_flags,
5603 Dwarf_Bool * dw_has_line_offset,
5604 Dwarf_Unsigned * dw_line_offset,
5605 Dwarf_Bool * dw_has_offset_size_64,
5606 Dwarf_Bool * dw_has_operands_table,
5607 Dwarf_Half * dw_opcode_count,
5608 Dwarf_Error * dw_error);
5609
5633 Dwarf_Half dw_index, /* 0 to opcode_count -1 */
5634 Dwarf_Half * dw_opcode_number,
5635 Dwarf_Half * dw_operand_count,
5636 const Dwarf_Small ** dw_operand_array,
5637 Dwarf_Error * dw_error);
5638
5663DW_API int dwarf_get_macro_op(Dwarf_Macro_Context dw_macro_context,
5664 Dwarf_Unsigned dw_op_number,
5665 Dwarf_Unsigned * dw_op_start_section_offset,
5666 Dwarf_Half * dw_macro_operator,
5667 Dwarf_Half * dw_forms_count,
5668 const Dwarf_Small ** dw_formcode_array,
5669 Dwarf_Error * dw_error);
5670
5709 Dwarf_Macro_Context dw_macro_context,
5710 Dwarf_Unsigned dw_op_number,
5711 Dwarf_Unsigned * dw_line_number,
5712 Dwarf_Unsigned * dw_index,
5713 Dwarf_Unsigned * dw_offset,
5714 Dwarf_Half * dw_forms_count,
5715 const char ** dw_macro_string,
5716 Dwarf_Error * dw_error);
5717
5746 Dwarf_Macro_Context dw_macro_context,
5747 Dwarf_Unsigned dw_op_number,
5748 Dwarf_Unsigned * dw_line_number,
5749 Dwarf_Unsigned * dw_name_index_to_line_tab,
5750 const char ** dw_src_file_name,
5751 Dwarf_Error * dw_error);
5752
5769 Dwarf_Macro_Context dw_macro_context,
5770 Dwarf_Unsigned dw_op_number,
5771 Dwarf_Unsigned * dw_target_offset,
5772 Dwarf_Error * dw_error);
5801DW_API char* dwarf_find_macro_value_start(char * dw_macro_string);
5802
5829 Dwarf_Off dw_macro_offset,
5830 Dwarf_Unsigned dw_maximum_count,
5831 Dwarf_Signed * dw_entry_count,
5832 Dwarf_Macro_Details ** dw_details,
5833 Dwarf_Error * dw_error);
5834
5879 Dwarf_Cie** dw_cie_data,
5880 Dwarf_Signed* dw_cie_element_count,
5881 Dwarf_Fde** dw_fde_data,
5882 Dwarf_Signed* dw_fde_element_count,
5883 Dwarf_Error* dw_error);
5894 Dwarf_Cie** dw_cie_data,
5895 Dwarf_Signed* dw_cie_element_count,
5896 Dwarf_Fde** dw_fde_data,
5897 Dwarf_Signed* dw_fde_element_count,
5898 Dwarf_Error* dw_error);
5899
5920 Dwarf_Cie * dw_cie_data,
5921 Dwarf_Signed dw_cie_element_count,
5922 Dwarf_Fde * dw_fde_data,
5923 Dwarf_Signed dw_fde_element_count);
5924
5953 Dwarf_Addr* dw_low_pc,
5954 Dwarf_Unsigned* dw_func_length,
5955 Dwarf_Small **dw_fde_bytes,
5956 Dwarf_Unsigned* dw_fde_byte_length,
5957 Dwarf_Off* dw_cie_offset,
5958 Dwarf_Signed* dw_cie_index,
5959 Dwarf_Off* dw_fde_offset,
5960 Dwarf_Error* dw_error);
5961
5968 Dwarf_Signed* dw_offset_into_exception_tables,
5969 Dwarf_Error* dw_error);
5970
5983 Dwarf_Cie * dw_cie_returned,
5984 Dwarf_Error* dw_error);
5985
6020 Dwarf_Unsigned * dw_bytes_in_cie,
6021 Dwarf_Small* dw_version,
6022 char ** dw_augmenter,
6023 Dwarf_Unsigned* dw_code_alignment_factor,
6024 Dwarf_Signed* dw_data_alignment_factor,
6025 Dwarf_Half* dw_return_address_register_rule,
6026 Dwarf_Small ** dw_initial_instructions,
6027 Dwarf_Unsigned* dw_initial_instructions_length,
6028 Dwarf_Half* dw_offset_size,
6029 Dwarf_Error* dw_error);
6030
6044 Dwarf_Signed* dw_index,
6045 Dwarf_Error * dw_error);
6046
6066 Dwarf_Small ** dw_outinstrs,
6067 Dwarf_Unsigned * dw_outlen,
6068 Dwarf_Error * dw_error);
6069
6091 Dwarf_Regtable3* dw_reg_table,
6092 Dwarf_Addr dw_row_pc,
6093 Dwarf_Bool dw_has_more_rows,
6094 Dwarf_Addr dw_subsequent_pc,
6095 void * dw_user_data);
6096
6129 Dwarf_Fde dw_fde,
6130 Dwarf_Regtable3 *dw_reg_table,
6132 void *dw_callback_user_data,
6133 Dwarf_Error *dw_error);
6134
6173 Dwarf_Fde dw_fde,
6174 Dwarf_Addr dw_pc_requested,
6175 Dwarf_Regtable3* dw_reg_table,
6176 Dwarf_Addr* dw_row_pc,
6177 Dwarf_Bool* dw_has_more_rows,
6178 Dwarf_Addr* dw_subsequent_pc,
6179 Dwarf_Error* dw_error);
6180
6194 Dwarf_Addr dw_pc_requested,
6195 Dwarf_Regtable3* dw_reg_table,
6196 Dwarf_Addr* dw_row_pc,
6197 Dwarf_Error* dw_error);
6198
6199/* See discussion of dw_value_type, libdwarf.h. */
6271 Dwarf_Half dw_table_column,
6272 Dwarf_Addr dw_pc_requested,
6273 Dwarf_Small * dw_value_type,
6274 Dwarf_Unsigned * dw_offset_relevant,
6275 Dwarf_Unsigned * dw_register,
6276 Dwarf_Signed * dw_offset,
6277 Dwarf_Block * dw_block_content,
6278 Dwarf_Addr * dw_row_pc_out,
6279 Dwarf_Bool * dw_has_more_rows,
6280 Dwarf_Addr * dw_subsequent_pc,
6281 Dwarf_Error * dw_error);
6282
6293 Dwarf_Half dw_table_column,
6294 Dwarf_Addr dw_pc_requested,
6295 Dwarf_Small * dw_value_type,
6296 Dwarf_Unsigned * dw_offset_relevant,
6297 Dwarf_Unsigned * dw_register,
6298 Dwarf_Unsigned * dw_offset,
6299 Dwarf_Block * dw_block_content,
6300 Dwarf_Addr * dw_row_pc_out,
6301 Dwarf_Bool * dw_has_more_rows,
6302 Dwarf_Addr * dw_subsequent_pc,
6303 Dwarf_Error * dw_error);
6304
6329 Dwarf_Addr dw_pc_requested,
6330 Dwarf_Small * dw_value_type,
6331 Dwarf_Unsigned* dw_offset_relevant,
6332 Dwarf_Unsigned* dw_register,
6333 Dwarf_Signed * dw_offset,
6334 Dwarf_Block * dw_block,
6335 Dwarf_Addr * dw_row_pc_out,
6336 Dwarf_Bool * dw_has_more_rows,
6337 Dwarf_Addr * dw_subsequent_pc,
6338 Dwarf_Error * dw_error);
6349 Dwarf_Addr dw_pc_requested,
6350 Dwarf_Small * dw_value_type,
6351 Dwarf_Unsigned* dw_offset_relevant,
6352 Dwarf_Unsigned* dw_register,
6353 Dwarf_Unsigned* dw_offset,
6354 Dwarf_Block * dw_block,
6355 Dwarf_Addr * dw_row_pc_out,
6356 Dwarf_Bool * dw_has_more_rows,
6357 Dwarf_Addr * dw_subsequent_pc,
6358 Dwarf_Error * dw_error);
6359
6369 Dwarf_Die dw_subr_die,
6370 Dwarf_Fde * dw_returned_fde,
6371 Dwarf_Error* dw_error);
6372
6380DW_API int dwarf_get_fde_n(Dwarf_Fde* dw_fde_data,
6381 Dwarf_Unsigned dw_fde_index,
6382 Dwarf_Fde * dw_returned_fde,
6383 Dwarf_Error * dw_error);
6384
6415DW_API int dwarf_get_fde_at_pc(Dwarf_Fde* dw_fde_data,
6416 Dwarf_Addr dw_pc_of_interest,
6417 Dwarf_Fde * dw_returned_fde,
6418 Dwarf_Addr * dw_lopc,
6419 Dwarf_Addr * dw_hipc,
6420 Dwarf_Error* dw_error);
6421
6442 Dwarf_Small ** dw_augdata,
6443 Dwarf_Unsigned * dw_augdata_len,
6444 Dwarf_Error* dw_error);
6445
6466 Dwarf_Small ** dw_augdata,
6467 Dwarf_Unsigned * dw_augdata_len,
6468 Dwarf_Error* dw_error);
6469
6504 Dwarf_Small * dw_instructionspointer,
6505 Dwarf_Unsigned dw_length_in_bytes,
6506 Dwarf_Frame_Instr_Head * dw_head,
6507 Dwarf_Unsigned * dw_instr_count,
6508 Dwarf_Error * dw_error);
6509
6583 Dwarf_Frame_Instr_Head dw_head,
6584 Dwarf_Unsigned dw_instr_index,
6585 Dwarf_Unsigned * dw_instr_offset_in_instrs,
6586 Dwarf_Small * dw_cfa_operation,
6587 const char ** dw_fields_description,
6588 Dwarf_Unsigned * dw_u0,
6589 Dwarf_Unsigned * dw_u1,
6590 Dwarf_Signed * dw_s0,
6591 Dwarf_Signed * dw_s1,
6592 Dwarf_Unsigned * dw_code_alignment_factor,
6593 Dwarf_Signed * dw_data_alignment_factor,
6594 Dwarf_Block * dw_expression_block,
6595 Dwarf_Error * dw_error);
6596
6619 Dwarf_Frame_Instr_Head dw_/* head*/,
6620 Dwarf_Unsigned dw_instr_index,
6621 Dwarf_Unsigned * dw_instr_offset_in_instrs,
6622 Dwarf_Small * dw_cfa_operation,
6623 const char ** dw_fields_description,
6624 Dwarf_Unsigned * dw_u0,
6625 Dwarf_Unsigned * dw_u1,
6626 Dwarf_Unsigned * dw_u2,
6627 Dwarf_Signed * dw_s0,
6628 Dwarf_Signed * dw_s1,
6629 Dwarf_Unsigned * dw_code_alignment_factor,
6630 Dwarf_Signed * dw_data_alignment_factor,
6631 Dwarf_Block * dw_expression_block,
6632 Dwarf_Error * dw_error);
6633
6643 dw_head);
6644
6662 Dwarf_Fde dw_in_fde,
6663 Dwarf_Off * dw_fde_off,
6664 Dwarf_Off * dw_cie_off,
6665 Dwarf_Error * dw_error);
6666
6682 Dwarf_Cie dw_in_cie,
6683 Dwarf_Off * dw_cie_off,
6684 Dwarf_Error * dw_error);
6685
6704 Dwarf_Debug dw_dbg,
6705 Dwarf_Half dw_value);
6720 Dwarf_Debug dw_dbg,
6721 Dwarf_Half dw_value);
6734 Dwarf_Debug dw_dbg,
6735 Dwarf_Half dw_value);
6736
6749 Dwarf_Debug dw_dbg,
6750 Dwarf_Half dw_value);
6763 Dwarf_Debug dw_dbg,
6764 Dwarf_Half dw_value);
6819 Dwarf_Unsigned dw_offset,
6820 Dwarf_Abbrev * dw_returned_abbrev,
6821 Dwarf_Unsigned* dw_length,
6822 Dwarf_Unsigned* dw_attr_count,
6823 Dwarf_Error* dw_error);
6824
6837 Dwarf_Half* dw_return_tag_number,
6838 Dwarf_Error* dw_error);
6839
6854 Dwarf_Unsigned* dw_return_code_number,
6855 Dwarf_Error* dw_error);
6856
6871 Dwarf_Signed* dw_return_flag,
6872 Dwarf_Error* dw_error);
6873
6908 Dwarf_Unsigned dw_indx,
6909 Dwarf_Bool dw_filter_outliers,
6910 Dwarf_Unsigned * dw_returned_attr_num,
6911 Dwarf_Unsigned * dw_returned_form,
6912 Dwarf_Signed * dw_returned_implicit_const,
6913 Dwarf_Off * dw_offset,
6914 Dwarf_Error * dw_error);
6915
6949DW_API int dwarf_get_str(Dwarf_Debug dw_dbg,
6950 Dwarf_Off dw_offset,
6951 char** dw_string,
6952 Dwarf_Signed * dw_strlen_of_string,
6953 Dwarf_Error* dw_error);
6954
6965/* Allows applications to print the .debug_str_offsets
6966 section.
6967 Beginning at starting_offset zero,
6968 returns data about the first table found.
6969 The value *next_table_offset is the value
6970 of the next table (if any), one byte past
6971 the end of the table whose data is returned..
6972 Returns DW_DLV_NO_ENTRY if the starting offset
6973 is past the end of valid data.
6974
6975 There is no guarantee that there are no non-0 nonsense
6976 bytes in the section outside of useful tables,
6977 so this can fail and return nonsense or
6978 DW_DLV_ERROR if such garbage exists.
6979*/
6980
6998 Dwarf_Str_Offsets_Table * dw_table_data,
6999 Dwarf_Error * dw_error);
7000
7019 Dwarf_Str_Offsets_Table dw_table_data,
7020 Dwarf_Error * dw_error);
7021
7056 Dwarf_Str_Offsets_Table dw_table_data,
7057 Dwarf_Unsigned * dw_unit_length,
7058 Dwarf_Unsigned * dw_unit_length_offset,
7059 Dwarf_Unsigned * dw_table_start_offset,
7060 Dwarf_Half * dw_entry_size,
7061 Dwarf_Half * dw_version,
7062 Dwarf_Half * dw_padding,
7063 Dwarf_Unsigned * dw_table_value_count,
7064 Dwarf_Error * dw_error);
7065
7086 Dwarf_Str_Offsets_Table dw_table_data,
7087 Dwarf_Unsigned dw_index_to_entry,
7088 Dwarf_Unsigned * dw_entry_value,
7089 Dwarf_Error * dw_error);
7090
7109 Dwarf_Str_Offsets_Table dw_table_data,
7110 Dwarf_Unsigned * dw_wasted_byte_count,
7111 Dwarf_Unsigned * dw_table_count,
7112 Dwarf_Error * dw_error);
7113
7132DW_API char* dwarf_errmsg(Dwarf_Error dw_error);
7140DW_API char* dwarf_errmsg_by_number(Dwarf_Unsigned dw_errornum);
7141
7156 Dwarf_Error * dw_error, char * dw_errmsg);
7157
7167 Dwarf_Error dw_error);
7209DW_API void dwarf_dealloc(Dwarf_Debug dw_dbg,
7210 void* dw_space, Dwarf_Unsigned dw_type);
7231 Dwarf_Half * dw_version,
7232 Dwarf_Small * dw_is_supplementary,
7233 char ** dw_filename,
7234 Dwarf_Unsigned * dw_checksum_len,
7235 Dwarf_Small ** dw_checksum,
7236 Dwarf_Error * dw_error);
7273 Dwarf_Off dw_starting_offset,
7274 Dwarf_Dnames_Head * dw_dn,
7275 Dwarf_Off * dw_offset_of_next_table,
7276 Dwarf_Error * dw_error);
7277
7286
7332 Dwarf_Unsigned dw_index,
7333 Dwarf_Unsigned *dw_abbrev_offset,
7334 Dwarf_Unsigned *dw_abbrev_code,
7335 Dwarf_Unsigned *dw_abbrev_tag,
7336 Dwarf_Unsigned dw_array_size,
7337 Dwarf_Half *dw_idxattr_array,
7338 Dwarf_Half *dw_form_array,
7339 Dwarf_Unsigned *dw_idxattr_count);
7340
7359 Dwarf_Unsigned * dw_comp_unit_count,
7360 Dwarf_Unsigned * dw_local_type_unit_count,
7361 Dwarf_Unsigned * dw_foreign_type_unit_count,
7362 Dwarf_Unsigned * dw_bucket_count,
7363 Dwarf_Unsigned * dw_name_count,
7364 /* The following are counted in bytes */
7365 Dwarf_Unsigned * dw_abbrev_table_size,
7366 Dwarf_Unsigned * dw_entry_pool_size,
7367 Dwarf_Unsigned * dw_augmentation_string_size,
7368 char ** dw_augmentation_string,
7369 Dwarf_Unsigned * dw_section_size,
7370 Dwarf_Half * dw_table_version,
7371 Dwarf_Half * dw_offset_size,
7372 Dwarf_Error * dw_error);
7373
7385 Dwarf_Unsigned * dw_header_offset,
7386 Dwarf_Unsigned * dw_cu_table_offset,
7387 Dwarf_Unsigned * dw_tu_local_offset,
7388 Dwarf_Unsigned * dw_foreign_tu_offset,
7389 Dwarf_Unsigned * dw_bucket_offset,
7390 Dwarf_Unsigned * dw_hashes_offset,
7391 Dwarf_Unsigned * dw_stringoffsets_offset,
7392 Dwarf_Unsigned * dw_entryoffsets_offset,
7393 Dwarf_Unsigned * dw_abbrev_table_offset,
7394 Dwarf_Unsigned * dw_entry_pool_offset,
7395 Dwarf_Error * dw_error);
7396
7426 const char * dw_type,
7427 Dwarf_Unsigned dw_index_number,
7428 Dwarf_Unsigned * dw_offset,
7429 Dwarf_Sig8 * dw_sig,
7430 Dwarf_Error * dw_error);
7431
7454 Dwarf_Unsigned dw_bucket_number,
7455 Dwarf_Unsigned * dw_index,
7456 Dwarf_Unsigned * dw_indexcount,
7457 Dwarf_Error * dw_error);
7458
7509 Dwarf_Unsigned dw_name_index,
7510 Dwarf_Unsigned * dw_bucket_number,
7511 Dwarf_Unsigned * dw_hash_value,
7512 Dwarf_Unsigned * dw_offset_to_debug_str,
7513 char * * dw_ptrtostr,
7514 Dwarf_Unsigned * dw_offset_in_entrypool,
7515 Dwarf_Unsigned * dw_abbrev_number,
7516 Dwarf_Half * dw_abbrev_tag,
7517 Dwarf_Unsigned dw_array_size,
7518 Dwarf_Half * dw_idxattr_array,
7519 Dwarf_Half * dw_form_array,
7520 Dwarf_Unsigned * dw_idxattr_count,
7521 Dwarf_Error * dw_error);
7522
7565 Dwarf_Unsigned dw_offset_in_entrypool,
7566 Dwarf_Unsigned * dw_abbrev_code,
7567 Dwarf_Half * dw_tag,
7568 Dwarf_Unsigned * dw_value_count,
7569 Dwarf_Unsigned * dw_index_of_abbrev,
7570 Dwarf_Unsigned * dw_offset_of_initial_value,
7571 Dwarf_Error * dw_error);
7572
7633 Dwarf_Unsigned dw_index_of_abbrev,
7634 Dwarf_Unsigned dw_offset_in_entrypool_of_values,
7635 Dwarf_Unsigned dw_arrays_length,
7636 Dwarf_Half *dw_array_idx_number,
7637 Dwarf_Half *dw_array_form,
7638 Dwarf_Unsigned *dw_array_of_offsets,
7639 Dwarf_Sig8 *dw_array_of_signatures,
7640 Dwarf_Bool *dw_single_cu,
7641 Dwarf_Unsigned *dw_cu_offset,
7642 Dwarf_Unsigned *dw_offset_of_next_entrypool,
7643 Dwarf_Error *dw_error);
7644
7672 Dwarf_Arange** dw_aranges,
7673 Dwarf_Signed * dw_arange_count,
7674 Dwarf_Error* dw_error);
7675
7695DW_API int dwarf_get_arange(Dwarf_Arange* dw_aranges,
7696 Dwarf_Unsigned dw_arange_count,
7697 Dwarf_Addr dw_address,
7698 Dwarf_Arange * dw_returned_arange,
7699 Dwarf_Error* dw_error);
7700
7714 Dwarf_Off * dw_return_offset,
7715 Dwarf_Error* dw_error);
7716
7730 Dwarf_Off * dw_return_cu_header_offset,
7731 Dwarf_Error* dw_error);
7732
7759 Dwarf_Unsigned* dw_segment,
7760 Dwarf_Unsigned* dw_segment_entry_size,
7761 Dwarf_Addr * dw_start,
7762 Dwarf_Unsigned* dw_length,
7763 Dwarf_Off * dw_cu_die_offset,
7764 Dwarf_Error * dw_error );
7814 Dwarf_Global** dw_globals,
7815 Dwarf_Signed * dw_number_of_globals,
7816 Dwarf_Error * dw_error);
7817
7818#define DW_GL_GLOBALS 0 /* .debug_pubnames and .debug_names */
7819#define DW_GL_PUBTYPES 1 /* .debug_pubtypes */
7820/* the following are IRIX ONLY */
7821#define DW_GL_FUNCS 2 /* .debug_funcnames */
7822#define DW_GL_TYPES 3 /* .debug_typenames */
7823#define DW_GL_VARS 4 /* .debug_varnames */
7824#define DW_GL_WEAKS 5 /* .debug_weaknames */
7848 Dwarf_Global** dw_pubtypes,
7849 Dwarf_Signed * dw_number_of_pubtypes,
7850 Dwarf_Error * dw_error);
7851
7878 int dw_requested_section,
7879 Dwarf_Global **dw_contents,
7880 Dwarf_Signed *dw_count,
7881 Dwarf_Error *dw_error);
7882
7894 Dwarf_Global* dw_global_like,
7895 Dwarf_Signed dw_count);
7896
7909DW_API int dwarf_globname(Dwarf_Global dw_global,
7910 char ** dw_returned_name,
7911 Dwarf_Error* dw_error);
7912
7926 Dwarf_Off * dw_die_offset,
7927 Dwarf_Error * dw_error);
7928
7944 Dwarf_Off* dw_cu_header_offset,
7945 Dwarf_Error* dw_error);
7946
7966 char ** dw_returned_name,
7967 Dwarf_Off* dw_die_offset,
7968 Dwarf_Off* dw_cu_die_offset,
7969 Dwarf_Error* dw_error);
7970
7984
7996 int * dw_category, /* DW_GL_GLOBAL for example */
7997 Dwarf_Off * dw_offset_pub_header,
7998 Dwarf_Unsigned * dw_length_size,
7999 Dwarf_Unsigned * dw_length_pub,
8000 Dwarf_Unsigned * dw_version,
8001 Dwarf_Unsigned * dw_header_info_offset,
8002 Dwarf_Unsigned * dw_info_length,
8003 Dwarf_Error * dw_error);
8004
8028 int dw_flag);
8029
8064 Dwarf_Bool dw_which_section,
8065 Dwarf_Gnu_Index_Head *dw_head,
8066 Dwarf_Unsigned *dw_index_block_count_out,
8067 Dwarf_Error *dw_error);
8115 Dwarf_Unsigned dw_number,
8116 Dwarf_Unsigned *dw_block_length,
8117 Dwarf_Half *dw_version,
8118 Dwarf_Unsigned *dw_offset_into_debug_info,
8119 Dwarf_Unsigned *dw_size_of_debug_info_area,
8120 Dwarf_Unsigned *dw_count_of_index_entries,
8121 Dwarf_Error *dw_error);
8122
8155 Dwarf_Gnu_Index_Head dw_head,
8156 Dwarf_Unsigned dw_blocknumber,
8157 Dwarf_Unsigned dw_entrynumber,
8158 Dwarf_Unsigned *dw_offset_in_debug_info,
8159 const char **dw_name_string,
8160 unsigned char *dw_flagbyte,
8161 unsigned char *dw_staticorglobal,
8162 unsigned char *dw_typeofentry,
8163 Dwarf_Error *dw_error);
8164
8226 Dwarf_Gdbindex * dw_gdbindexptr,
8227 Dwarf_Unsigned * dw_version,
8228 Dwarf_Unsigned * dw_cu_list_offset,
8229 Dwarf_Unsigned * dw_types_cu_list_offset,
8230 Dwarf_Unsigned * dw_address_area_offset,
8231 Dwarf_Unsigned * dw_symbol_table_offset,
8232 Dwarf_Unsigned * dw_constant_pool_offset,
8233 Dwarf_Unsigned * dw_section_size,
8234 const char ** dw_section_name,
8235 Dwarf_Error * dw_error);
8236
8244DW_API void dwarf_dealloc_gdbindex(Dwarf_Gdbindex dw_gdbindexptr);
8245
8257 Dwarf_Gdbindex dw_gdbindexptr,
8258 Dwarf_Unsigned * dw_list_length,
8259 Dwarf_Error * dw_error);
8260
8279 Dwarf_Gdbindex dw_gdbindexptr,
8280 Dwarf_Unsigned dw_entryindex,
8281 Dwarf_Unsigned * dw_cu_offset,
8282 Dwarf_Unsigned * dw_cu_length,
8283 Dwarf_Error * dw_error);
8284
8297 Dwarf_Gdbindex dw_gdbindexptr,
8298 Dwarf_Unsigned * dw_types_list_length,
8299 Dwarf_Error * dw_error);
8300
8301/* entryindex: 0 to types_list_length -1 */
8324 Dwarf_Gdbindex dw_gdbindexptr,
8325 Dwarf_Unsigned dw_types_entryindex,
8326 Dwarf_Unsigned * dw_cu_offset,
8327 Dwarf_Unsigned * dw_tu_offset,
8328 Dwarf_Unsigned * dw_type_signature,
8329 Dwarf_Error * dw_error);
8330
8346 Dwarf_Gdbindex dw_gdbindexptr,
8347 Dwarf_Unsigned * dw_addressarea_list_length,
8348 Dwarf_Error * dw_error);
8349
8369 Dwarf_Gdbindex dw_gdbindexptr,
8370 Dwarf_Unsigned dw_entryindex,
8371 Dwarf_Unsigned * dw_low_address,
8372 Dwarf_Unsigned * dw_high_address,
8373 Dwarf_Unsigned * dw_cu_index,
8374 Dwarf_Error * dw_error);
8375
8389 Dwarf_Gdbindex dw_gdbindexptr,
8390 Dwarf_Unsigned * dw_symtab_list_length,
8391 Dwarf_Error * dw_error);
8392
8413 Dwarf_Gdbindex dw_gdbindexptr,
8414 Dwarf_Unsigned dw_entryindex,
8415 Dwarf_Unsigned * dw_string_offset,
8416 Dwarf_Unsigned * dw_cu_vector_offset,
8417 Dwarf_Error * dw_error);
8418
8437 Dwarf_Gdbindex dw_gdbindexptr,
8438 Dwarf_Unsigned dw_cuvector_offset,
8439 Dwarf_Unsigned * dw_innercount,
8440 Dwarf_Error * dw_error);
8441
8459 Dwarf_Gdbindex dw_gdbindexptr,
8460 Dwarf_Unsigned dw_cuvector_offset_in,
8461 Dwarf_Unsigned dw_innerindex,
8462 Dwarf_Unsigned * dw_field_value,
8463 Dwarf_Error * dw_error);
8464
8488 Dwarf_Gdbindex dw_gdbindexptr,
8489 Dwarf_Unsigned dw_field_value,
8490 Dwarf_Unsigned * dw_cu_index,
8491 Dwarf_Unsigned * dw_symbol_kind,
8492 Dwarf_Unsigned * dw_is_static,
8493 Dwarf_Error * dw_error);
8494
8511 Dwarf_Gdbindex dw_gdbindexptr,
8512 Dwarf_Unsigned dw_stringoffset,
8513 const char ** dw_string_ptr,
8514 Dwarf_Error * dw_error);
8556 const char * dw_section_type, /* "tu" or "cu" */
8557 Dwarf_Xu_Index_Header * dw_xuhdr,
8558 Dwarf_Unsigned * dw_version_number,
8559 Dwarf_Unsigned * dw_section_count,
8560 Dwarf_Unsigned * dw_units_count,
8561 Dwarf_Unsigned * dw_hash_slots_count,
8562 const char ** dw_sect_name,
8563 Dwarf_Error * dw_error);
8564
8574
8590 Dwarf_Xu_Index_Header dw_xuhdr,
8591 const char ** dw_typename,
8592 const char ** dw_sectionname,
8593 Dwarf_Error * dw_error);
8594
8627 Dwarf_Unsigned dw_index,
8628 Dwarf_Sig8 * dw_hash_value,
8629 Dwarf_Unsigned * dw_index_to_sections,
8630 Dwarf_Error * dw_error);
8631
8632/* Columns 0 to L-1, valid. */
8656 Dwarf_Unsigned dw_column_index,
8657 Dwarf_Unsigned* dw_SECT_number,
8658 const char ** dw_SECT_name,
8659 Dwarf_Error * dw_error);
8660
8690 Dwarf_Xu_Index_Header dw_xuhdr,
8691 Dwarf_Unsigned dw_row_index,
8692 Dwarf_Unsigned dw_column_index,
8693 Dwarf_Unsigned* dw_sec_offset,
8694 Dwarf_Unsigned* dw_sec_size,
8695 Dwarf_Error * dw_error);
8696
8719 Dwarf_Debug_Fission_Per_CU * dw_percu_out,
8720 Dwarf_Error * dw_error);
8721
8740 Dwarf_Sig8 * dw_hash_sig,
8741 const char * dw_cu_type,
8742 Dwarf_Debug_Fission_Per_CU * dw_percu_out,
8743 Dwarf_Error * dw_error);
8744
8745/* END debugfission dwp .debug_cu_index
8746 and .debug_tu_index meaningful operations. */
8747
8842 char ** dw_debuglink_path_returned,
8843 unsigned char ** dw_crc_returned,
8844 char ** dw_debuglink_fullpath_returned,
8845 unsigned int * dw_debuglink_path_length_returned,
8846 unsigned int * dw_buildid_type_returned,
8847 char ** dw_buildid_owner_name_returned,
8848 unsigned char ** dw_buildid_returned,
8849 unsigned int * dw_buildid_length_returned,
8850 char *** dw_paths_returned,
8851 unsigned int * dw_paths_length_returned,
8852 Dwarf_Error* dw_error);
8853
8886DW_API int dwarf_suppress_debuglink_crc(int dw_suppress);
8887
8907 const char * dw_pathname,
8908 Dwarf_Error* dw_error);
8909
8937DW_API int dwarf_crc32(Dwarf_Debug dw_dbg,
8938 unsigned char * dw_crcbuf,
8939 Dwarf_Error * dw_error);
8940
8964DW_API unsigned int dwarf_basic_crc32(const unsigned char * dw_buf,
8965 unsigned long dw_len,
8966 unsigned int dw_init);
8985#define DW_HARMLESS_ERROR_CIRCULAR_LIST_DEFAULT_SIZE 4
8986
9030 unsigned int dw_count,
9031 const char ** dw_errmsg_ptrs_array,
9032 unsigned int * dw_newerr_count);
9033
9055 Dwarf_Debug dw_dbg,
9056 unsigned int dw_maxcount);
9057
9076 int dw_v);
9077
9090 char * dw_newerror);
9126DW_API int dwarf_get_ACCESS_name(unsigned int dw_val_in,
9127 const char ** dw_s_out);
9130DW_API int dwarf_get_ADDR_name(unsigned int dw_val_in,
9131 const char ** dw_s_out);
9134DW_API int dwarf_get_AT_name(unsigned int dw_val_in,
9135 const char ** dw_s_out);
9138DW_API int dwarf_get_ATCF_name(unsigned int dw_val_in,
9139 const char ** dw_s_out);
9142DW_API int dwarf_get_ATE_name(unsigned int dw_val_in,
9143 const char ** dw_s_out);
9146DW_API int dwarf_get_CC_name(unsigned int dw_val_in,
9147 const char ** dw_s_out);
9150DW_API int dwarf_get_CFA_name(unsigned int dw_val_in,
9151 const char ** dw_s_out);
9154DW_API int dwarf_get_children_name(unsigned int dw_val_in,
9155 const char ** dw_s_out);
9158DW_API int dwarf_get_CHILDREN_name(unsigned int dw_val_in,
9159 const char ** dw_s_out);
9162DW_API int dwarf_get_DEFAULTED_name(unsigned int dw_val_in,
9163 const char ** dw_s_out);
9166DW_API int dwarf_get_DS_name(unsigned int dw_val_in,
9167 const char ** dw_s_out);
9170DW_API int dwarf_get_DSC_name(unsigned int dw_val_in,
9171 const char ** dw_s_out);
9176DW_API int dwarf_get_GNUIKIND_name(unsigned int dw_val_in,
9177 const char ** dw_s_out);
9182DW_API int dwarf_get_EH_name(unsigned int dw_val_in,
9183 const char ** dw_s_out);
9186DW_API int dwarf_get_END_name(unsigned int dw_val_in,
9187 const char ** dw_s_out);
9190DW_API int dwarf_get_FORM_name(unsigned int dw_val_in,
9191 const char ** dw_s_out);
9198DW_API int dwarf_get_FRAME_name(unsigned int dw_val_in,
9199 const char ** dw_s_out);
9204DW_API int dwarf_get_GNUIVIS_name(unsigned int dw_val_in,
9205 const char ** dw_s_out);
9206
9209DW_API int dwarf_get_ID_name(unsigned int dw_val_in,
9210 const char ** dw_s_out);
9213DW_API int dwarf_get_IDX_name(unsigned int dw_val_in,
9214 const char ** dw_s_out);
9217DW_API int dwarf_get_INL_name(unsigned int dw_val_in,
9218 const char ** dw_s_out);
9221DW_API int dwarf_get_ISA_name(unsigned int dw_val_in,
9222 const char ** dw_s_out);
9225DW_API int dwarf_get_LANG_name(unsigned int dw_val_in,
9226 const char ** dw_s_out);
9229DW_API int dwarf_get_LLE_name(unsigned int dw_val_in,
9230 const char ** dw_s_out);
9236DW_API int dwarf_get_LLEX_name(unsigned int dw_val_in,
9237 const char ** dw_s_out );
9238
9241DW_API int dwarf_get_LNAME_name(unsigned int dw_val_in,
9242 const char ** dw_s_out);
9245DW_API int dwarf_get_LNCT_name(unsigned int dw_val_in,
9246 const char ** dw_s_out);
9249DW_API int dwarf_get_LNE_name(unsigned int dw_val_in,
9250 const char ** dw_s_out);
9253DW_API int dwarf_get_LNS_name(unsigned int dw_val_in,
9254 const char ** dw_s_out);
9259DW_API int dwarf_get_MACINFO_name(unsigned int dw_val_in,
9260 const char ** dw_s_out);
9265DW_API int dwarf_get_MACRO_name(unsigned int dw_val_in,
9266 const char ** dw_s_out);
9269DW_API int dwarf_get_OP_name(unsigned int dw_val_in,
9270 const char ** dw_s_out);
9273DW_API int dwarf_get_ORD_name(unsigned int dw_val_in,
9274 const char ** dw_s_out);
9277DW_API int dwarf_get_RLE_name(unsigned int dw_val_in,
9278 const char ** dw_s_out);
9281DW_API int dwarf_get_SECT_name(unsigned int dw_val_in,
9282 const char ** dw_s_out);
9285DW_API int dwarf_get_TAG_name(unsigned int dw_val_in,
9286 const char ** dw_s_out);
9289DW_API int dwarf_get_UT_name(unsigned int dw_val_in,
9290 const char ** dw_s_out);
9293DW_API int dwarf_get_VIRTUALITY_name(unsigned int dw_val_in,
9294 const char ** dw_s_out);
9297DW_API int dwarf_get_VIS_name(unsigned int dw_val_in,
9298 const char ** dw_s_out);
9299
9311 const char ** dw_s_out);
9366 Dwarf_Bool dw_is_info,
9367 const char **dw_sec_name,
9368 Dwarf_Error *dw_error);
9369
9377 const char ** dw_sec_name,
9378 Dwarf_Error * dw_error);
9379
9383 const char ** dw_sec_name_out,
9384 Dwarf_Error * dw_err);
9385
9429 const char * dw_std_section_name,
9430 const char ** dw_actual_sec_name_out,
9431 Dwarf_Small * dw_marked_zcompressed,
9432 Dwarf_Small * dw_marked_zlib_compressed,
9433 Dwarf_Small * dw_marked_shf_compressed,
9434 Dwarf_Unsigned * dw_compressed_length,
9435 Dwarf_Unsigned * dw_uncompressed_length,
9436 Dwarf_Error * dw_error);
9437
9443 const char ** dw_section_name_out,
9444 Dwarf_Error * dw_error);
9445
9452 const char ** dw_section_name_out,
9453 Dwarf_Error * dw_error);
9454
9459 const char ** dw_section_name_out,
9460 Dwarf_Error * dw_error);
9461
9466 const char ** dw_section_name_out,
9467 Dwarf_Error * dw_error);
9468
9469/* These two get the offset or address size as defined
9470 by the object format (not by DWARF). */
9477 Dwarf_Half * dw_offset_size,
9478 Dwarf_Error * dw_error);
9479
9486 Dwarf_Half * dw_addr_size,
9487 Dwarf_Error * dw_error);
9488
9493 const char ** dw_section_name_out,
9494 Dwarf_Error * dw_error);
9495
9500 const char ** dw_section_name_out,
9501 Dwarf_Error * dw_error);
9502
9517 const char ** dw_section_name_out,
9518 Dwarf_Error * dw_error);
9519
9567 const char * dw_section_name,
9568 Dwarf_Addr * dw_section_addr,
9569 Dwarf_Unsigned* dw_section_size,
9570 Dwarf_Unsigned* dw_section_flags,
9571 Dwarf_Unsigned* dw_section_offset,
9572 Dwarf_Error * dw_error);
9573
9587 const char * dw_section_name,
9588 Dwarf_Addr * dw_section_addr,
9589 Dwarf_Unsigned* dw_section_size,
9590 Dwarf_Error * dw_error);
9591
9638 int dw_section_index,
9639 const char ** dw_section_name,
9640 Dwarf_Addr* dw_section_addr,
9641 Dwarf_Unsigned* dw_section_size,
9642 Dwarf_Unsigned* dw_section_flags,
9643 Dwarf_Unsigned* dw_section_offset,
9644 Dwarf_Error* dw_error);
9645
9659 int dw_section_index,
9660 const char ** dw_section_name,
9661 Dwarf_Addr* dw_section_addr,
9662 Dwarf_Unsigned* dw_section_size,
9663 Dwarf_Error* dw_error);
9664
9752 Dwarf_Small *dw_ftype,
9753 Dwarf_Small *dw_obj_pointersize,
9754 Dwarf_Bool *dw_obj_is_big_endian,
9755 Dwarf_Unsigned *dw_obj_machine, /*Elf e_machine */
9756 Dwarf_Unsigned *dw_obj_type, /* Elf e_type */
9757 Dwarf_Unsigned *dw_obj_flags,
9758 Dwarf_Small *dw_path_source,
9759 Dwarf_Unsigned *dw_ub_offset,
9760 Dwarf_Unsigned *dw_ub_count,
9761 Dwarf_Unsigned *dw_ub_index,
9762 Dwarf_Unsigned *dw_comdat_groupnumber);
9763
9772 Dwarf_Small *dw_ftype,
9773 Dwarf_Small *dw_obj_pointersize,
9774 Dwarf_Bool *dw_obj_is_big_endian,
9775 Dwarf_Unsigned *dw_obj_machine, /*architecture*/
9776 Dwarf_Unsigned *dw_obj_flags,
9777 Dwarf_Small *dw_path_source,
9778 Dwarf_Unsigned *dw_ub_offset,
9779 Dwarf_Unsigned *dw_ub_count,
9780 Dwarf_Unsigned *dw_ub_index,
9781 Dwarf_Unsigned *dw_comdat_groupnumber);
9782
9795
9815 Dwarf_Unsigned * dw_debug_info_size,
9816 Dwarf_Unsigned * dw_debug_abbrev_size,
9817 Dwarf_Unsigned * dw_debug_line_size,
9818 Dwarf_Unsigned * dw_debug_loc_size,
9819 Dwarf_Unsigned * dw_debug_aranges_size,
9820
9821 Dwarf_Unsigned * dw_debug_macinfo_size,
9822 Dwarf_Unsigned * dw_debug_pubnames_size,
9823 Dwarf_Unsigned * dw_debug_str_size,
9824 Dwarf_Unsigned * dw_debug_frame_size,
9825 Dwarf_Unsigned * dw_debug_ranges_size,
9826
9827 Dwarf_Unsigned * dw_debug_pubtypes_size,
9828 Dwarf_Unsigned * dw_debug_types_size,
9829 Dwarf_Unsigned * dw_debug_macro_size,
9830 Dwarf_Unsigned * dw_debug_str_offsets_size,
9831 Dwarf_Unsigned * dw_debug_sup_size,
9832
9833 Dwarf_Unsigned * dw_debug_cu_index_size,
9834 Dwarf_Unsigned * dw_debug_tu_index_size,
9835 Dwarf_Unsigned * dw_debug_names_size,
9836 Dwarf_Unsigned * dw_debug_loclists_size,
9837 Dwarf_Unsigned * dw_debug_rnglists_size);
9887 Dwarf_Unsigned *dw_section_count_out,
9888 Dwarf_Unsigned *dw_group_count_out,
9889 Dwarf_Unsigned *dw_selected_group_out,
9890 Dwarf_Unsigned *dw_map_entry_count_out,
9891 Dwarf_Error *dw_error);
9892
9924 Dwarf_Unsigned dw_map_entry_count,
9925 Dwarf_Unsigned *dw_group_numbers_array,
9926 Dwarf_Unsigned *dw_sec_numbers_array,
9927 const char **dw_sec_names_array,
9928 Dwarf_Error *dw_error);
9943DW_API int dwarf_encode_leb128(Dwarf_Unsigned dw_val,
9944 int *dw_nbytes,
9945 char *dw_space,
9946 int dw_splen);
9947DW_API int dwarf_encode_signed_leb128(Dwarf_Signed dw_val,
9948 int *dw_nbytes,
9949 char *dw_space,
9950 int dw_splen);
9951/* Same for LEB decoding routines.
9952 caller sets endptr to an address one past the last valid
9953 address the library should be allowed to
9954 access. */
9955DW_API int dwarf_decode_leb128(char *dw_leb,
9956 Dwarf_Unsigned *dw_leblen,
9957 Dwarf_Unsigned *dw_outval,
9958 char *dw_endptr);
9959DW_API int dwarf_decode_signed_leb128(char *dw_leb,
9960 Dwarf_Unsigned *dw_leblen,
9961 Dwarf_Signed *dw_outval,
9962 char *dw_endptr);
9979DW_API const char * dwarf_package_version(void);
9980
9996DW_API int dwarf_set_stringcheck(int dw_stringcheck);
9997
10019DW_API int dwarf_set_reloc_application(int dw_apply);
10020
10046 (void *, const void *, unsigned long);
10047
10048/* A global flag in libdwarf. Applies to all Dwarf_Debug */
10049DW_API extern Dwarf_Cmdline_Options dwarf_cmdline_options;
10050
10066 Dwarf_Cmdline_Options dw_dd_options);
10067
10086DW_API int dwarf_set_de_alloc_flag(int dw_v);
10087
10116DW_API int dwarf_library_allow_dup_attr(int dw_v);
10117
10140 Dwarf_Debug dw_dbg,
10141 Dwarf_Small dw_value);
10142
10169 Dwarf_Debug dw_dbg,
10170 Dwarf_Unsigned *dw_current_index,
10171 Dwarf_Unsigned *dw_available_count);
10172
10194DW_API int dwarf_object_detector_path_b(const char * dw_path,
10195 char *dw_outpath_buffer,
10196 unsigned long dw_outpathlen,
10197 char ** dw_gl_pathnames,
10198 unsigned int dw_gl_pathcount,
10199 unsigned int *dw_ftype,
10200 unsigned int *dw_endian,
10201 unsigned int *dw_offsetsize,
10202 Dwarf_Unsigned *dw_filesize,
10203 unsigned char *dw_pathsource,
10204 int * dw_errcode);
10205
10206/* Solely looks for dSYM */
10207DW_API int dwarf_object_detector_path_dSYM(const char * dw_path,
10208 char * dw_outpath,
10209 unsigned long dw_outpath_len,
10210 char ** dw_gl_pathnames,
10211 unsigned int dw_gl_pathcount,
10212 unsigned int *dw_ftype,
10213 unsigned int *dw_endian,
10214 unsigned int *dw_offsetsize,
10215 Dwarf_Unsigned *dw_filesize,
10216 unsigned char *dw_pathsource,
10217 int * dw_errcode);
10218
10219DW_API int dwarf_object_detector_fd(int dw_fd,
10220 unsigned int *dw_ftype,
10221 unsigned int *dw_endian,
10222 unsigned int *dw_offsetsize,
10223 Dwarf_Unsigned *dw_filesize,
10224 int *dw_errcode);
10288 enum Dwarf_Sec_Alloc_Pref dw_load_preference);
10289
10330 Dwarf_Unsigned *dw_mmap_count,
10331 Dwarf_Unsigned *dw_mmap_size,
10332 Dwarf_Unsigned *dw_malloc_count,
10333 Dwarf_Unsigned *dw_malloc_size);
10336#ifdef __cplusplus
10337}
10338#endif /* __cplusplus */
10339#endif /* _LIBDWARF_H */
DW_API int dwarf_get_FORM_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_FORM_name
DW_API int dwarf_get_ORD_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ORD_name
DW_API int dwarf_get_LNAME_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNAME
DW_API int dwarf_get_LNE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNE_name
DW_API int dwarf_get_LLE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LLE_name
DW_API int dwarf_get_LANG_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LANG_name
DW_API int dwarf_get_TAG_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_TAG_name
DW_API int dwarf_get_INL_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_INL_name
DW_API int dwarf_get_ACCESS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ACCESS_name
DW_API int dwarf_get_CFA_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CFA_name
DW_API int dwarf_get_MACINFO_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_MACINFO_name
DW_API int dwarf_get_CC_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CC_name
DW_API int dwarf_get_ADDR_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ADDR_name
DW_API int dwarf_get_VIRTUALITY_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_VIRTUALITY_name
DW_API int dwarf_get_END_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_END_name
DW_API int dwarf_get_LLEX_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LLEX_name - a GNU extension.
DW_API int dwarf_get_EH_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_EH_name
DW_API int dwarf_get_CHILDREN_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CHILDREN_name
DW_API int dwarf_get_IDX_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_IDX_name
DW_API int dwarf_get_UT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_UT_name
DW_API int dwarf_get_children_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_children_namea - historic misspelling.
DW_API int dwarf_get_FRAME_name(unsigned int dw_val_in, const char **dw_s_out)
This is a set of register names.
DW_API int dwarf_get_OP_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_OP_name
DW_API int dwarf_get_GNUIKIND_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_GNUIKIND_name - libdwarf invention
DW_API int dwarf_get_RLE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_RLE_name
DW_API int dwarf_get_DS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DS_name
DW_API int dwarf_get_ATCF_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_AT_name
DW_API int dwarf_get_LNS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNS_name
DW_API 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...
DW_API int dwarf_get_VIS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_VIS_name
DW_API int dwarf_get_LNCT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNCT_name
DW_API int dwarf_get_SECT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_SECT_name
DW_API int dwarf_get_DEFAULTED_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DEFAULTED_name
DW_API int dwarf_get_AT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_AT_name
DW_API int dwarf_get_ATE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ATE_name
DW_API int dwarf_get_DSC_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DSC_name
DW_API int dwarf_get_ISA_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ISA_name
DW_API int dwarf_get_GNUIVIS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_GNUIVIS_name - a libdwarf invention
DW_API int dwarf_get_MACRO_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_MACRO_name
DW_API int dwarf_get_ID_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ID_name
DW_API int dwarf_get_abbrev_code(Dwarf_Abbrev dw_abbrev, Dwarf_Unsigned *dw_return_code_number, Dwarf_Error *dw_error)
Get Abbreviation Code.
DW_API 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.
DW_API 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.
DW_API int dwarf_get_abbrev_children_flag(Dwarf_Abbrev dw_abbrev, Dwarf_Signed *dw_return_flag, Dwarf_Error *dw_error)
Get Abbrev Children Flag.
DW_API int dwarf_get_abbrev_tag(Dwarf_Abbrev dw_abbrev, Dwarf_Half *dw_return_tag_number, Dwarf_Error *dw_error)
Get abbreviation tag.
struct Dwarf_Xu_Index_Header_s * Dwarf_Xu_Index_Header
Definition libdwarf.h:712
struct Dwarf_Fde_s * Dwarf_Fde
Definition libdwarf.h:690
struct Dwarf_Weak_s * Dwarf_Weak
Definition libdwarf.h:672
struct Dwarf_Regtable3_s Dwarf_Regtable3
struct Dwarf_Debug_Addr_Table_s * Dwarf_Debug_Addr_Table
Definition libdwarf.h:632
struct Dwarf_Debug_s * Dwarf_Debug
Definition libdwarf.h:617
struct Dwarf_Regtable_Entry3_s Dwarf_Regtable_Entry3
struct Dwarf_Die_s * Dwarf_Die
Definition libdwarf.h:627
struct Dwarf_Dnames_Head_s * Dwarf_Dnames_Head
Definition libdwarf.h:728
void(* dwarf_printf_callback_function_type)(void *dw_user_pointer, const char *dw_linecontent)
Definition libdwarf.h:394
struct Dwarf_Str_Offsets_Table_s * Dwarf_Str_Offsets_Table
Definition libdwarf.h:455
struct Dwarf_Gdbindex_s * Dwarf_Gdbindex
Definition libdwarf.h:706
struct Dwarf_Line_s * Dwarf_Line
Definition libdwarf.h:638
struct Dwarf_Abbrev_s * Dwarf_Abbrev
Definition libdwarf.h:684
struct Dwarf_Func_s * Dwarf_Func
Definition libdwarf.h:660
struct Dwarf_Block_s Dwarf_Block
struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head
Definition libdwarf.h:923
struct Dwarf_Global_s * Dwarf_Global
Definition libdwarf.h:644
struct Dwarf_Section_s * Dwarf_Section
Definition libdwarf.h:622
struct Dwarf_Frame_Instr_Head_s * Dwarf_Frame_Instr_Head
Definition libdwarf.h:370
struct Dwarf_Error_s * Dwarf_Error
Definition libdwarf.h:611
struct Dwarf_Gnu_Index_Head_s * Dwarf_Gnu_Index_Head
Definition libdwarf.h:357
Dwarf_Sec_Alloc_Pref
Definition libdwarf.h:822
struct Dwarf_Macro_Context_s * Dwarf_Macro_Context
Definition libdwarf.h:721
struct Dwarf_Line_Context_s * Dwarf_Line_Context
Definition libdwarf.h:716
struct Dwarf_Sig8_s Dwarf_Sig8
struct Dwarf_Locdesc_c_s * Dwarf_Locdesc_c
Definition libdwarf.h:342
struct Dwarf_Dsc_Head_s * Dwarf_Dsc_Head
Definition libdwarf.h:363
struct Dwarf_Form_Data16_s Dwarf_Form_Data16
struct Dwarf_Type_s * Dwarf_Type
Definition libdwarf.h:653
struct Dwarf_Ranges_s Dwarf_Ranges
struct Dwarf_Loc_Head_c_s * Dwarf_Loc_Head_c
Definition libdwarf.h:347
struct Dwarf_Cie_s * Dwarf_Cie
Definition libdwarf.h:695
struct Dwarf_Var_s * Dwarf_Var
Definition libdwarf.h:666
void(* Dwarf_Handler)(Dwarf_Error dw_error, Dwarf_Ptr dw_errarg)
Definition libdwarf.h:737
struct Dwarf_Arange_s * Dwarf_Arange
Definition libdwarf.h:701
struct Dwarf_Attribute_s * Dwarf_Attribute
Definition libdwarf.h:677
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API int dwarf_formflag(Dwarf_Attribute dw_attr, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Return the flag value of a flag form.
DW_API int dwarf_whatattr(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_attrnum, Dwarf_Error *dw_error)
Return the attribute number of the Dwarf_Attribute.
DW_API int dwarf_formblock(Dwarf_Attribute dw_attr, Dwarf_Block **dw_returned_block, Dwarf_Error *dw_error)
Return an allocated filled-in Form_Block.
DW_API int dwarf_get_debug_str_index(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_return_index, Dwarf_Error *dw_error)
Return a string index.
DW_API 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.
DW_API 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...
DW_API 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.
DW_API 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.
DW_API int dwarf_whatform(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_final_form, Dwarf_Error *dw_error)
Return the form of the Dwarf_Attribute.
DW_API 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.
DW_API void dwarf_dealloc_uncompressed_block(Dwarf_Debug dw_dbg, void *dw_value_array)
Dealloc what dwarf_uncompress_integer_block_a allocated.
DW_API int dwarf_formsdata(Dwarf_Attribute dw_attr, Dwarf_Signed *dw_returned_val, Dwarf_Error *dw_error)
Return a signed value.
DW_API 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.
DW_API int dwarf_global_formref(Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Same as dwarf_global_formref_b except...
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API int dwarf_formudata(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_returned_val, Dwarf_Error *dw_error)
Return an unsigned value.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API void dwarf_dealloc_attribute(Dwarf_Attribute dw_attr)
Dealloc a Dwarf_Attribute When this call returns the dw_attr is a stale pointer.
DW_API int dwarf_formstring(Dwarf_Attribute dw_attr, char **dw_returned_string, Dwarf_Error *dw_error)
Return a pointer to a string.
DW_API 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....
DW_API 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.
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
DW_API 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.
DW_API 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).
DW_API void dwarf_dealloc_die(Dwarf_Die dw_die)
Deallocate (free) a DIE.
DW_API 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)
DW_API Dwarf_Bool dwarf_get_die_infotypes_flag(Dwarf_Die dw_die)
Return the is_info flag.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API int dwarf_siblingof_c(Dwarf_Die dw_die, Dwarf_Die *dw_return_siblingdie, Dwarf_Error *dw_error)
Return the next sibling DIE.
DW_API 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.
DW_API void dwarf_dealloc_debug_addr_table(Dwarf_Debug_Addr_Table dw_dat)
dealloc (free) a Dwarf_Attr_Table record.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API void dwarf_dealloc_dnames(Dwarf_Dnames_Head dw_dn)
Frees all the malloc data associated with dw_dn.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API int dwarf_dieoffset(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Return the global section offset of the DIE.
DW_API 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.
DW_API int dwarf_tag(Dwarf_Die dw_die, Dwarf_Half *dw_return_tag, Dwarf_Error *dw_error)
Get TAG value of DIE.
DW_API int dwarf_lowpc(Dwarf_Die dw_die, Dwarf_Addr *dw_returned_addr, Dwarf_Error *dw_error)
Return the DW_AT_low_pc value.
DW_API 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.
DW_API 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.
DW_API int dwarf_die_abbrev_children_flag(Dwarf_Die dw_die, Dwarf_Half *dw_ab_has_child)
Return TRUE if the DIE has children.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API Dwarf_Unsigned dwarf_die_abbrev_code(Dwarf_Die dw_die)
Return the DIE abbrev code.
DW_API int dwarf_srclanglname_version(Dwarf_Die dw_die, const char *dw_returned_verstring, Dwarf_Error *dw_error)
Return the value of the DW_AT_language_version attribute.
DW_API 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.
DW_API 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.
DW_API int dwarf_lvn_table_entry(Dwarf_Unsigned dw_lvn_index, Dwarf_Unsigned *dw_lvn_language_name, Dwarf_Unsigned *dw_lvn_language_version, const char **dw_lvn_language_version_scheme, const char **dw_lvn_language_version_name)
Return values from the DWARF6 language version standard.
DW_API 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.
DW_API 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.
DW_API Dwarf_Bool dwarf_addr_form_is_indexed(int dw_form)
Informs if a DW_FORM is an indexed form.
DW_API int dwarf_language_version_data(Dwarf_Unsigned dw_lname_name, int *dw_default_lower_bound, const char **dw_version_string)
Return values associated with DW_AT_language_name.
DW_API 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.
DW_API 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.
DW_API int dwarf_language_version_string(Dwarf_Unsigned dw_lname_name, int *dw_default_lower_bound, const char **dw_version_string)
dwarf_language_version_string is obsolete.
DW_API int dwarf_srclanglname(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_lname, Dwarf_Error *dw_error)
Return the value of the DW_AT_language_name attribute.
DW_API 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.
DW_API 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.
DW_API int dwarf_diename(Dwarf_Die dw_die, char **dw_diename, Dwarf_Error *dw_error)
Return the string from a DW_AT_name attribute.
DW_API int dwarf_validate_die_sibling(Dwarf_Die dw_sibling, Dwarf_Off *dw_offset)
Validate a sibling DIE.
DW_API 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.
DW_API 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.
DW_API int dwarf_lvn_name(Dwarf_Die dw_die, const char **dw_ret_version_name, const char **dw_ret_version_scheme)
Return values associated with DW_AT_language_version.
DW_API int dwarf_lvn_name_direct(Dwarf_Unsigned dw_lv_lang, Dwarf_Unsigned dw_lv_ver, const char **dw_ret_version_name, const char **dw_ret_version_scheme)
Return language version name.
DW_API 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,...
DW_API 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...
DW_API Dwarf_Unsigned dwarf_errno(Dwarf_Error dw_error)
What DW_DLE code does the error have?
DW_API char * dwarf_errmsg(Dwarf_Error dw_error)
What message string is in the error?
DW_API char * dwarf_errmsg_by_number(Dwarf_Unsigned dw_errornum)
What message string is associated with the error number.
DW_API void dwarf_dealloc_error(Dwarf_Debug dw_dbg, Dwarf_Error dw_error)
Free (dealloc) an Dwarf_Error something created.
Dwarf_Ranges_Entry_Type
Definition libdwarf.h:234
Dwarf_Form_Class
Definition libdwarf.h:269
DW_API 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.
DW_API 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.
DW_API void dwarf_dealloc_frame_instr_head(Dwarf_Frame_Instr_Head dw_head)
Deallocates the frame instruction data in dw_head.
DW_API 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.
DW_API Dwarf_Half dwarf_set_frame_rule_initial_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Rule Initial Value.
DW_API 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_iterate_fde_callback_function_type)(Dwarf_Regtable3 *dw_reg_table, Dwarf_Addr dw_row_pc, Dwarf_Bool dw_has_more_rows, Dwarf_Addr dw_subsequent_pc, void *dw_user_data)
Definition libdwarf.h:6090
DW_API 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.
DW_API Dwarf_Half dwarf_set_frame_same_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Same Value Default Invariants for setting frame registers .
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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...
DW_API 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.
DW_API 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.
DW_API 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...
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API Dwarf_Half dwarf_set_frame_cfa_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame CFA Column Invariants for setting frame registers .
DW_API 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.
DW_API 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.
DW_API int dwarf_iterate_fde_all_regs3(Dwarf_Fde dw_fde, Dwarf_Regtable3 *dw_reg_table, dwarf_iterate_fde_callback_function_type dw_callback, void *dw_callback_user_data, Dwarf_Error *dw_error)
Iterate all rows for a given FDE. Iinvokes a provided callback function for each row....
DW_API int dwarf_get_cie_index(Dwarf_Cie dw_cie, Dwarf_Signed *dw_index, Dwarf_Error *dw_error)
Return CIE index given CIE.
DW_API 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.
DW_API 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...
DW_API 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 .
DW_API Dwarf_Half dwarf_set_frame_undefined_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Undefined Value Default Invariants for setting frame registers .
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API void dwarf_dealloc_gdbindex(Dwarf_Gdbindex dw_gdbindexptr)
Free (dealloc) all allocated Dwarf_Gdbindex memory It should named dwarf_dealloc_gdbindex.
DW_API 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.
DW_API int dwarf_gdbindex_addressarea(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_addressarea_list_length, Dwarf_Error *dw_error)
Get access to gdbindex address area.
DW_API 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.
DW_API 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.
DW_API int dwarf_gdbindex_culist_array(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_list_length, Dwarf_Error *dw_error)
Return the culist array length.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API void dwarf_gnu_index_dealloc(Dwarf_Gnu_Index_Head dw_head)
Free resources of .debug_gnu_pubnames .debug_gnu_pubtypes.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API int dwarf_set_harmless_errors_enabled(Dwarf_Debug dw_dbg, int dw_v)
Enable or disable libdwarf tracking of harmless errors. Harmless errors are used by tools like dwarfd...
DW_API void dwarf_insert_harmless_error(Dwarf_Debug dw_dbg, char *dw_newerror)
Harmless Error Insertion is only for testing.
DW_API 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.
DW_API 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....
DW_API int dwarf_finish(Dwarf_Debug dw_dbg)
Close the initialized dw_dbg and free all data libdwarf has for this dw_dbg.
DW_API 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.
DW_API int dwarf_object_finish(Dwarf_Debug dw_dbg)
Used to close the object_init dw_dbg.
DW_API 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.
DW_API int dwarf_get_tied_dbg(Dwarf_Debug dw_dbg, Dwarf_Debug *dw_tieddbg_out, Dwarf_Error *dw_error)
Use with split dwarf.
DW_API int dwarf_set_tied_dbg(Dwarf_Debug dw_split_dbg, Dwarf_Debug dw_tied_dbg, Dwarf_Error *dw_error)
Use with split dwarf.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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....
DW_API 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....
DW_API int dwarf_line_srcfileno(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_filenum, Dwarf_Error *dw_error)
Read Line file register.
DW_API 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.
DW_API 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 ...
DW_API 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.
DW_API int dwarf_lineblock(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Return the basic_block line register.
DW_API 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.
DW_API void dwarf_srclines_dealloc_b(Dwarf_Line_Context dw_context)
Dealloc the memory allocated by dwarf_srclines_b.
DW_API int dwarf_linebeginstatement(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Read Line beginstatement register.
DW_API int dwarf_linesrc(Dwarf_Line dw_line, char **dw_returned_name, Dwarf_Error *dw_error)
Return the file name applicable to the Dwarf_Line.
DW_API int dwarf_lineaddr(Dwarf_Line dw_line, Dwarf_Addr *dw_returned_addr, Dwarf_Error *dw_error)
Return the address of the Dwarf_Line.
DW_API 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.
DW_API 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....
DW_API 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.
DW_API 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.
DW_API 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....
DW_API 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.
DW_API int dwarf_srclines_table_offset(Dwarf_Line_Context dw_context, Dwarf_Unsigned *dw_offset, Dwarf_Error *dw_error)
Return the srclines table offset.
DW_API int dwarf_lineendsequence(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Read Line endsequence register flag.
DW_API int dwarf_print_lines(Dwarf_Die dw_cu_die, Dwarf_Error *dw_error, int *dw_errorcount_out)
Print line information in great detail.
DW_API 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.
DW_API int dwarf_lineoff_b(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_lineoffset, Dwarf_Error *dw_error)
Return a column number through the pointer.
DW_API int dwarf_lineno(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_linenum, Dwarf_Error *dw_error)
Read Line line register.
DW_API 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...
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API void dwarf_dealloc_loc_head_c(Dwarf_Loc_Head_c dw_head)
Dealloc (free) all memory allocated for Dwarf_Loc_Head_c.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API int dwarf_get_locdesc_entry_d(Dwarf_Loc_Head_c dw_loclist_head, Dwarf_Unsigned dw_index, Dwarf_Small *dw_lle_value_out, Dwarf_Unsigned *dw_rawlowpc, Dwarf_Unsigned *dw_rawhipc, Dwarf_Bool *dw_debug_addr_unavailable, Dwarf_Addr *dw_lowpc_cooked, Dwarf_Addr *dw_hipc_cooked, Dwarf_Unsigned *dw_locexpr_op_count_out, Dwarf_Locdesc_c *dw_locentry_out, Dwarf_Small *dw_loclist_source_out, Dwarf_Unsigned *dw_expression_offset_out, Dwarf_Unsigned *dw_locdesc_offset_out, Dwarf_Error *dw_error)
Retrieve the details(_d) of a location expression.
DW_API int dwarf_get_locdesc_entry_e(Dwarf_Loc_Head_c dw_loclist_head, Dwarf_Unsigned dw_index, Dwarf_Small *dw_lle_value_out, Dwarf_Unsigned *dw_rawlowpc, Dwarf_Unsigned *dw_rawhipc, Dwarf_Bool *dw_debug_addr_unavailable, Dwarf_Addr *dw_lowpc_cooked, Dwarf_Addr *dw_hipc_cooked, Dwarf_Unsigned *dw_locexpr_op_count_out, Dwarf_Unsigned *dw_lle_bytecount, Dwarf_Locdesc_c *dw_locentry_out, Dwarf_Small *dw_loclist_source_out, Dwarf_Unsigned *dw_expression_offset_out, Dwarf_Unsigned *dw_locdesc_offset_out, Dwarf_Error *dw_error)
Retrieve the details(_e) of a location expression.
DW_API 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.
DW_API int dwarf_load_loclists(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_loclists_count, Dwarf_Error *dw_error)
Load Loclists.
DW_API 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.
DW_API 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.
DW_API char * dwarf_find_macro_value_start(char *dw_macro_string)
Return a pointer to the value part of a macro.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API void dwarf_dealloc_macro_context(Dwarf_Macro_Context dw_mc)
Dealloc a macro context.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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...
DW_API Dwarf_Small dwarf_set_default_address_size(Dwarf_Debug dw_dbg, Dwarf_Small dw_value)
Set the address size on a Dwarf_Debug.
DW_API int dwarf_get_universalbinary_count(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_current_index, Dwarf_Unsigned *dw_available_count)
Retrieve universal binary index.
DW_API const char * dwarf_package_version(void)
Return the version string in the library.
DW_API int dwarf_set_reloc_application(int dw_apply)
Set libdwarf response to *.rela relocations.
DW_API 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:10045
DW_API int dwarf_set_de_alloc_flag(int dw_v)
Eliminate libdwarf tracking of allocations Independent of any Dwarf_Debug and applicable to all whene...
DW_API int dwarf_library_allow_dup_attr(int dw_v)
Eliminate libdwarf checking attribute duplication.
DW_API int dwarf_set_stringcheck(int dw_stringcheck)
Turn off libdwarf checks of strings.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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 original version.
DW_API int dwarf_machine_architecture_a(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_type, 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.
DW_API 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.
DW_API 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.
DW_API Dwarf_Unsigned dwarf_get_section_count(Dwarf_Debug dw_dbg)
Get section count (of object file sections).
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API int dwarf_globname(Dwarf_Global dw_global, char **dw_returned_name, Dwarf_Error *dw_error)
Return the name of a global-like data item.
DW_API int dwarf_return_empty_pubnames(Dwarf_Debug dw_dbg, int dw_flag)
A flag for dwarfdump on pubnames, pubtypes etc.
DW_API 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.
DW_API 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.
DW_API Dwarf_Half dwarf_global_tag_number(Dwarf_Global dw_global)
Return the DW_TAG number of a global entry.
DW_API 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.
DW_API void dwarf_globals_dealloc(Dwarf_Debug dw_dbg, Dwarf_Global *dw_global_like, Dwarf_Signed dw_count)
Dealloc the Dwarf_Global data.
DW_API 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.
DW_API 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.
DW_API void dwarf_dealloc_ranges(Dwarf_Debug dw_dbg, Dwarf_Ranges *dw_rangesbuf, Dwarf_Signed dw_rangecount)
Dealloc the array dw_rangesbuf.
DW_API int dwarf_get_ranges_baseaddress(Dwarf_Debug dw_dbg, Dwarf_Die dw_die, Dwarf_Bool *dw_known_base, Dwarf_Unsigned *dw_baseaddress, Dwarf_Bool *dw_at_ranges_offset_present, Dwarf_Unsigned *dw_at_ranges_offset, Dwarf_Error *dw_error)
Find ranges base address.
DW_API 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.
DW_API 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.
DW_API void dwarf_dealloc_rnglists_head(Dwarf_Rnglists_Head dw_head)
Dealloc a Dwarf_Rnglists_Head.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API int dwarf_load_rnglists(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_rnglists_count, Dwarf_Error *dw_error)
Loads all .debug_rnglists headers.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API int dwarf_get_mmap_count(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_mmap_count, Dwarf_Unsigned *dw_mmap_size, Dwarf_Unsigned *dw_malloc_count, Dwarf_Unsigned *dw_malloc_size)
Retrieve count of mmap/malloc sections.
DW_API enum Dwarf_Sec_Alloc_Pref dwarf_set_load_preference(enum Dwarf_Sec_Alloc_Pref dw_load_preference)
Set/Retrieve section allocation preference.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API void dwarf_dealloc_xu_header(Dwarf_Xu_Index_Header dw_xuhdr)
Dealloc (free) memory associated with dw_xuhdr.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API 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.
DW_API int dwarf_get_str(Dwarf_Debug dw_dbg, Dwarf_Off dw_offset, char **dw_string, Dwarf_Signed *dw_strlen_of_string, Dwarf_Error *dw_error)
Reading From a String Section.
Definition libdwarf.h:330
Definition libdwarf.h:441
Definition libdwarf.h:895
Definition libdwarf.h:302
Definition libdwarf.h:747
Definition libdwarf.h:886
Definition libdwarf.h:850
Definition libdwarf.h:797
Definition libdwarf.h:413
Definition libdwarf.h:469
Definition libdwarf.h:589
Definition libdwarf.h:561
Definition libdwarf.h:313