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 "0.12.0"
103#define DW_LIBDWARF_VERSION_MAJOR 0
104#define DW_LIBDWARF_VERSION_MINOR 12
105#define DW_LIBDWARF_VERSION_MICRO 0
106
107#define DW_PATHSOURCE_unspecified 0
108#define DW_PATHSOURCE_basic 1
109#define DW_PATHSOURCE_dsym 2 /* MacOS dSYM */
110#define DW_PATHSOURCE_debuglink 3 /* GNU debuglink */
111
112#ifndef DW_FTYPE_UNKNOWN
113#define DW_FTYPE_UNKNOWN 0
114#define DW_FTYPE_ELF 1 /* Unix/Linux/etc */
115#define DW_FTYPE_MACH_O 2 /* MacOS. */
116#define DW_FTYPE_PE 3 /* Windows */
117#define DW_FTYPE_ARCHIVE 4 /* unix archive */
118#define DW_FTYPE_APPLEUNIVERSAL 5
119#endif /* DW_FTYPE_UNKNOWN */
120/* standard return values for functions */
121#define DW_DLV_NO_ENTRY -1
122#define DW_DLV_OK 0
123#define DW_DLV_ERROR 1
124/* These support opening DWARF5 split dwarf objects and
125 Elf SHT_GROUP blocks of DWARF sections. */
126#define DW_GROUPNUMBER_ANY 0
127#define DW_GROUPNUMBER_BASE 1
128#define DW_GROUPNUMBER_DWO 2
129
130/* FRAME special values */
131/* The following 3 are assigned numbers, but
132 are only present at run time.
133 Must not conflict with DW_FRAME values in dwarf.h */
134/* Taken as meaning 'undefined value', this is not
135 a column or register number. */
136#ifndef DW_FRAME_UNDEFINED_VAL
137#define DW_FRAME_UNDEFINED_VAL 12288
138#endif
139/* Taken as meaning 'same value' as caller had,
140 not a column or register number */
141#ifndef DW_FRAME_SAME_VAL
142#define DW_FRAME_SAME_VAL 12289
143#endif
144/* DW_FRAME_CFA_COL is assigned a virtual table position
145 but is accessed via CFA specific calls. */
146#ifndef DW_FRAME_CFA_COL
147#define DW_FRAME_CFA_COL 12290
148#endif
149#define DW_FRAME_CFA_COL3 DW_FRAME_CFA_COL /*compatibility name*/
150/* END FRAME special values */
151
152/* dwarf_pcline function, slide arguments
153*/
154#define DW_DLS_BACKWARD -1 /* slide backward to find line */
155#define DW_DLS_NOSLIDE 0 /* match exactly without sliding */
156#define DW_DLS_FORWARD 1 /* slide forward to find line */
157
158/* Defined larger than necessary.
159 struct Dwarf_Debug_Fission_Per_CU_s,
160 being visible, will be difficult to change:
161 binary compatibility. The count is for arrays
162 inside the struct, the struct itself is
163 a single struct. */
164#define DW_FISSION_SECT_COUNT 12
165
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
554 Dwarf_Small dw_offset_relevant;
555 Dwarf_Small dw_value_type;
556 Dwarf_Half dw_regnum;
557 Dwarf_Unsigned dw_offset; /* Should be Dwarf_Signed */
558 Dwarf_Unsigned dw_args_size; /* Always zero. */
559 Dwarf_Block dw_block;
561
581typedef struct Dwarf_Regtable3_s {
582 struct Dwarf_Regtable_Entry3_s rt3_cfa_rule;
583 Dwarf_Half rt3_reg_table_size;
584 struct Dwarf_Regtable_Entry3_s * rt3_rules;
586
587/* Opaque types for Consumer Library. */
597typedef struct Dwarf_Error_s* Dwarf_Error;
598
603typedef struct Dwarf_Debug_s* Dwarf_Debug;
608typedef struct Dwarf_Section_s* Dwarf_Section;
609
613typedef struct Dwarf_Die_s* Dwarf_Die;
614
618typedef struct Dwarf_Debug_Addr_Table_s* Dwarf_Debug_Addr_Table;
619
624typedef struct Dwarf_Line_s* Dwarf_Line;
625
630typedef struct Dwarf_Global_s* Dwarf_Global;
631
639typedef struct Dwarf_Type_s* Dwarf_Type;
640
646typedef struct Dwarf_Func_s* Dwarf_Func;
652typedef struct Dwarf_Var_s* Dwarf_Var;
658typedef struct Dwarf_Weak_s* Dwarf_Weak;
659
663typedef struct Dwarf_Attribute_s* Dwarf_Attribute;
664
670typedef struct Dwarf_Abbrev_s* Dwarf_Abbrev;
671
676typedef struct Dwarf_Fde_s* Dwarf_Fde;
681typedef struct Dwarf_Cie_s* Dwarf_Cie;
682
687typedef struct Dwarf_Arange_s* Dwarf_Arange;
692typedef struct Dwarf_Gdbindex_s* Dwarf_Gdbindex;
698typedef struct Dwarf_Xu_Index_Header_s *Dwarf_Xu_Index_Header;
702typedef struct Dwarf_Line_Context_s *Dwarf_Line_Context;
703
707typedef struct Dwarf_Macro_Context_s *Dwarf_Macro_Context;
708
714typedef struct Dwarf_Dnames_Head_s *Dwarf_Dnames_Head;
715
723typedef void (*Dwarf_Handler)(Dwarf_Error dw_error,
724 Dwarf_Ptr dw_errarg);
725
734 Dwarf_Off dmd_offset; /* offset, in the section,
735 of this macro info */
736 Dwarf_Small dmd_type; /* the type, DW_MACINFO_define etc*/
737 Dwarf_Signed dmd_lineno; /* the source line number where
738 applicable and vend_def number if
739 vendor_extension op */
740 Dwarf_Signed dmd_fileindex;/* the source file index */
741 char * dmd_macro; /* macro name string */
742};
748
753typedef struct Dwarf_Debug_Fission_Per_CU_s
755
756/* ===== BEGIN Obj_Access data ===== */
764
770typedef struct Dwarf_Obj_Access_Methods_a_s
772
781typedef struct Dwarf_Obj_Access_Section_a_s
784 const char* as_name;
785 Dwarf_Unsigned as_type;
786 Dwarf_Unsigned as_flags;
787 Dwarf_Addr as_addr;
788 Dwarf_Unsigned as_offset;
789 Dwarf_Unsigned as_size;
790 Dwarf_Unsigned as_link;
791 Dwarf_Unsigned as_info;
792 Dwarf_Unsigned as_addralign;
793 Dwarf_Unsigned as_entrysize;
794};
795
809 /* No dynamic allocation */
810 Dwarf_Alloc_None=0,
811 /* alternative allocations */
812 Dwarf_Alloc_Malloc=1,
813 Dwarf_Alloc_Mmap=2};
814
837 int (*om_get_section_info)(void* obj,
838 Dwarf_Unsigned section_index,
839 Dwarf_Obj_Access_Section_a* return_section,
840 int * error);
841 Dwarf_Small (*om_get_byte_order)(void* obj);
842 Dwarf_Small (*om_get_length_size)(void* obj);
843 Dwarf_Small (*om_get_pointer_size)(void* obj);
844 Dwarf_Unsigned (*om_get_filesize)(void* obj);
845 Dwarf_Unsigned (*om_get_section_count)(void* obj);
846 /* Always uses malloc/read */
847 int (*om_load_section)(void* obj,
848 Dwarf_Unsigned dw_section_index,
849 Dwarf_Small **dw_return_data,
850 int *dw_error);
851 int (*om_relocate_a_section)(void* obj,
852 Dwarf_Unsigned section_index,
853 Dwarf_Debug dbg,
854 int * error);
855 /* Added in 0.12.0 to allow mmap in section loading.
856 If you are just using malloc for section loading
857 and referring to this struct in your code
858 you should leave this function pointer NULL (zero). */
859 int (*om_load_section_a)(void* obj,
860 Dwarf_Unsigned dw_section_index,
861 /* dw_alloc_pref is input preference and also
862 output with the actual alloced type */
863 enum Dwarf_Sec_Alloc_Pref *dw_alloc_pref,
864 Dwarf_Small **dw_return_data_ptr,
865 Dwarf_Unsigned *dw_return_data_len,
866 Dwarf_Small **dw_return_mmap_base_ptr,
867 Dwarf_Unsigned *dw_return_mmap_offset,
868 Dwarf_Unsigned *dw_return_mmap_len,
869 int *dw_error);
870 void (*om_finish)(void * obj);
871};
873 void* ai_object;
874 const Dwarf_Obj_Access_Methods_a *ai_methods;
875};
876/* ===== END Obj_Access data ===== */
877
878/* User code must allocate this struct, zero it,
879 and pass a pointer to it
880 into dwarf_get_debugfission_for_cu . */
882 /* Do not free the string. It contains "cu" or "tu". */
883 /* If this is not set (ie, not a CU/TU in DWP Package File)
884 then pcu_type will be NULL. */
885 const char * pcu_type;
886 /* pcu_index is the index (range 1 to N )
887 into the tu/cu table of offsets and the table
888 of sizes. 1 to N as the zero index is reserved
889 for special purposes. Not a value one
890 actually needs. */
891 Dwarf_Unsigned pcu_index;
892 Dwarf_Sig8 pcu_hash; /* 8 byte */
893 /* [0] has offset and size 0.
894 [1]-[8] are DW_SECT_* indexes and the
895 values are the offset and size
896 of the respective section contribution
897 of a single .dwo object. When pcu_size[n] is
898 zero the corresponding section is not present. */
899 Dwarf_Unsigned pcu_offset[DW_FISSION_SECT_COUNT];
900 Dwarf_Unsigned pcu_size[DW_FISSION_SECT_COUNT];
901 Dwarf_Unsigned unused1;
902 Dwarf_Unsigned unused2;
903};
904
909typedef struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head;
910
916/* Special values for offset_into_exception_table field
917 of dwarf fde's
918 The following value indicates that there is no
919 Exception table offset
920 associated with a dwarf frame.
921*/
922#define DW_DLX_NO_EH_OFFSET (-1LL)
923/* The following value indicates that the producer
924 was unable to analyze the
925 source file to generate Exception tables for this function.
926*/
927#define DW_DLX_EH_OFFSET_UNAVAILABLE (-2LL)
928
929/* The augmenter string for CIE */
930#define DW_CIE_AUGMENTER_STRING_V0 "z"
931
932/* ***IMPORTANT NOTE, TARGET DEPENDENCY ****
933 DW_REG_TABLE_SIZE must be at least as large as
934 the number of registers
935 DW_FRAME_LAST_REG_NUM as defined in dwarf.h
936*/
937#ifndef DW_REG_TABLE_SIZE
938#define DW_REG_TABLE_SIZE DW_FRAME_LAST_REG_NUM
939#endif
940
941/* For MIPS, DW_FRAME_SAME_VAL is the correct default value
942 for a frame register value. For other CPUS another value
943 may be better, such as DW_FRAME_UNDEFINED_VAL.
944 See dwarf_set_frame_rule_table_size
945*/
946#ifndef DW_FRAME_REG_INITIAL_VALUE
947#define DW_FRAME_REG_INITIAL_VALUE DW_FRAME_SAME_VAL
948#endif
949
950/* The following are all needed to evaluate DWARF3 register rules.
951 These have nothing to do simply printing
952 frame instructions.
953*/
954#define DW_EXPR_OFFSET 0 /* offset is from CFA reg */
955#define DW_EXPR_VAL_OFFSET 1
956#define DW_EXPR_EXPRESSION 2
957#define DW_EXPR_VAL_EXPRESSION 3
968#define DW_DLA_STRING 0x01 /* char* */
969#define DW_DLA_LOC 0x02 /* Dwarf_Loc */
970#define DW_DLA_LOCDESC 0x03 /* Dwarf_Locdesc */
971#define DW_DLA_ELLIST 0x04 /* Dwarf_Ellist (not used)*/
972#define DW_DLA_BOUNDS 0x05 /* Dwarf_Bounds (not used) */
973#define DW_DLA_BLOCK 0x06 /* Dwarf_Block */
974#define DW_DLA_DEBUG 0x07 /* Dwarf_Debug */
975#define DW_DLA_DIE 0x08 /* Dwarf_Die */
976#define DW_DLA_LINE 0x09 /* Dwarf_Line */
977#define DW_DLA_ATTR 0x0a /* Dwarf_Attribute */
978#define DW_DLA_TYPE 0x0b /* Dwarf_Type (not used) */
979#define DW_DLA_SUBSCR 0x0c /* Dwarf_Subscr (not used) */
980#define DW_DLA_GLOBAL 0x0d /* Dwarf_Global */
981#define DW_DLA_ERROR 0x0e /* Dwarf_Error */
982#define DW_DLA_LIST 0x0f /* a list */
983#define DW_DLA_LINEBUF 0x10 /* Dwarf_Line* (not used) */
984#define DW_DLA_ARANGE 0x11 /* Dwarf_Arange */
985#define DW_DLA_ABBREV 0x12 /* Dwarf_Abbrev */
986#define DW_DLA_FRAME_INSTR_HEAD 0x13 /* Dwarf_Frame_Instr_Head */
987#define DW_DLA_CIE 0x14 /* Dwarf_Cie */
988#define DW_DLA_FDE 0x15 /* Dwarf_Fde */
989#define DW_DLA_LOC_BLOCK 0x16 /* Dwarf_Loc */
990
991#define DW_DLA_FRAME_OP 0x17 /* Dwarf_Frame_Op (not used) */
992#define DW_DLA_FUNC 0x18 /* Dwarf_Func */
993#define DW_DLA_UARRAY 0x19 /* Array of Dwarf_Off:Jan2023 */
994#define DW_DLA_VAR 0x1a /* Dwarf_Var */
995#define DW_DLA_WEAK 0x1b /* Dwarf_Weak */
996#define DW_DLA_ADDR 0x1c /* Dwarf_Addr sized entries */
997#define DW_DLA_RANGES 0x1d /* Dwarf_Ranges */
998/* 0x1e (30) to 0x34 (52) reserved for internal to libdwarf types. */
999/* .debug_gnu_typenames/pubnames, 2020 */
1000#define DW_DLA_GNU_INDEX_HEAD 0x35
1001
1002#define DW_DLA_RNGLISTS_HEAD 0x36 /* .debug_rnglists DW5 */
1003#define DW_DLA_GDBINDEX 0x37 /* Dwarf_Gdbindex */
1004#define DW_DLA_XU_INDEX 0x38 /* Dwarf_Xu_Index_Header */
1005#define DW_DLA_LOC_BLOCK_C 0x39 /* Dwarf_Loc_c*/
1006#define DW_DLA_LOCDESC_C 0x3a /* Dwarf_Locdesc_c */
1007#define DW_DLA_LOC_HEAD_C 0x3b /* Dwarf_Loc_Head_c */
1008#define DW_DLA_MACRO_CONTEXT 0x3c /* Dwarf_Macro_Context */
1009/* 0x3d (61) is for libdwarf internal use. */
1010#define DW_DLA_DSC_HEAD 0x3e /* Dwarf_Dsc_Head */
1011#define DW_DLA_DNAMES_HEAD 0x3f /* Dwarf_Dnames_Head */
1012
1013/* struct Dwarf_Str_Offsets_Table_s */
1014#define DW_DLA_STR_OFFSETS 0x40
1015/* struct Dwarf_Debug_Addr_Table_s */
1016#define DW_DLA_DEBUG_ADDR 0x41
1028/* libdwarf error numbers */
1029#define DW_DLE_NE 0 /* no error */
1030#define DW_DLE_VMM 1 /* dwarf format/library version mismatch */
1031#define DW_DLE_MAP 2 /* memory map failure */
1032#define DW_DLE_LEE 3 /* libelf error */
1033#define DW_DLE_NDS 4 /* no debug section */
1034#define DW_DLE_NLS 5 /* no line section */
1035#define DW_DLE_ID 6 /* invalid descriptor for query */
1036#define DW_DLE_IOF 7 /* I/O failure */
1037#define DW_DLE_MAF 8 /* memory allocation failure */
1038#define DW_DLE_IA 9 /* invalid argument */
1039#define DW_DLE_MDE 10 /* mangled debugging entry */
1040#define DW_DLE_MLE 11 /* mangled line number entry */
1041#define DW_DLE_FNO 12 /* file not open */
1042#define DW_DLE_FNR 13 /* file not a regular file */
1043#define DW_DLE_FWA 14 /* file open with wrong access */
1044#define DW_DLE_NOB 15 /* not an object file */
1045#define DW_DLE_MOF 16 /* mangled object file header */
1046#define DW_DLE_EOLL 17 /* end of location list entries */
1047#define DW_DLE_NOLL 18 /* no location list section */
1048#define DW_DLE_BADOFF 19 /* Invalid offset */
1049#define DW_DLE_EOS 20 /* end of section */
1050#define DW_DLE_ATRUNC 21 /* abbreviations section appears truncated*/
1051#define DW_DLE_BADBITC 22 /* Address size passed to dwarf bad,*/
1052 /* It is not an allowed size (64 or 32) */
1053 /* Error codes defined by the current Libdwarf Implementation. */
1054#define DW_DLE_DBG_ALLOC 23
1055#define DW_DLE_FSTAT_ERROR 24
1056#define DW_DLE_FSTAT_MODE_ERROR 25
1057#define DW_DLE_INIT_ACCESS_WRONG 26
1058#define DW_DLE_ELF_BEGIN_ERROR 27
1059#define DW_DLE_ELF_GETEHDR_ERROR 28
1060#define DW_DLE_ELF_GETSHDR_ERROR 29
1061#define DW_DLE_ELF_STRPTR_ERROR 30
1062#define DW_DLE_DEBUG_INFO_DUPLICATE 31
1063#define DW_DLE_DEBUG_INFO_NULL 32
1064#define DW_DLE_DEBUG_ABBREV_DUPLICATE 33
1065#define DW_DLE_DEBUG_ABBREV_NULL 34
1066#define DW_DLE_DEBUG_ARANGES_DUPLICATE 35
1067#define DW_DLE_DEBUG_ARANGES_NULL 36
1068#define DW_DLE_DEBUG_LINE_DUPLICATE 37
1069#define DW_DLE_DEBUG_LINE_NULL 38
1070#define DW_DLE_DEBUG_LOC_DUPLICATE 39
1071#define DW_DLE_DEBUG_LOC_NULL 40
1072#define DW_DLE_DEBUG_MACINFO_DUPLICATE 41
1073#define DW_DLE_DEBUG_MACINFO_NULL 42
1074#define DW_DLE_DEBUG_PUBNAMES_DUPLICATE 43
1075#define DW_DLE_DEBUG_PUBNAMES_NULL 44
1076#define DW_DLE_DEBUG_STR_DUPLICATE 45
1077#define DW_DLE_DEBUG_STR_NULL 46
1078#define DW_DLE_CU_LENGTH_ERROR 47
1079#define DW_DLE_VERSION_STAMP_ERROR 48
1080#define DW_DLE_ABBREV_OFFSET_ERROR 49
1081#define DW_DLE_ADDRESS_SIZE_ERROR 50
1082#define DW_DLE_DEBUG_INFO_PTR_NULL 51
1083#define DW_DLE_DIE_NULL 52
1084#define DW_DLE_STRING_OFFSET_BAD 53
1085#define DW_DLE_DEBUG_LINE_LENGTH_BAD 54
1086#define DW_DLE_LINE_PROLOG_LENGTH_BAD 55
1087#define DW_DLE_LINE_NUM_OPERANDS_BAD 56
1088#define DW_DLE_LINE_SET_ADDR_ERROR 57
1089#define DW_DLE_LINE_EXT_OPCODE_BAD 58
1090#define DW_DLE_DWARF_LINE_NULL 59
1091#define DW_DLE_INCL_DIR_NUM_BAD 60
1092#define DW_DLE_LINE_FILE_NUM_BAD 61
1093#define DW_DLE_ALLOC_FAIL 62
1094#define DW_DLE_NO_CALLBACK_FUNC 63
1095#define DW_DLE_SECT_ALLOC 64
1096#define DW_DLE_FILE_ENTRY_ALLOC 65
1097#define DW_DLE_LINE_ALLOC 66
1098#define DW_DLE_FPGM_ALLOC 67
1099#define DW_DLE_INCDIR_ALLOC 68
1100#define DW_DLE_STRING_ALLOC 69
1101#define DW_DLE_CHUNK_ALLOC 70
1102#define DW_DLE_BYTEOFF_ERR 71
1103#define DW_DLE_CIE_ALLOC 72
1104#define DW_DLE_FDE_ALLOC 73
1105#define DW_DLE_REGNO_OVFL 74
1106#define DW_DLE_CIE_OFFS_ALLOC 75
1107#define DW_DLE_WRONG_ADDRESS 76
1108#define DW_DLE_EXTRA_NEIGHBORS 77
1109#define DW_DLE_WRONG_TAG 78
1110#define DW_DLE_DIE_ALLOC 79
1111#define DW_DLE_PARENT_EXISTS 80
1112#define DW_DLE_DBG_NULL 81
1113#define DW_DLE_DEBUGLINE_ERROR 82
1114#define DW_DLE_DEBUGFRAME_ERROR 83
1115#define DW_DLE_DEBUGINFO_ERROR 84
1116#define DW_DLE_ATTR_ALLOC 85
1117#define DW_DLE_ABBREV_ALLOC 86
1118#define DW_DLE_OFFSET_UFLW 87
1119#define DW_DLE_ELF_SECT_ERR 88
1120#define DW_DLE_DEBUG_FRAME_LENGTH_BAD 89
1121#define DW_DLE_FRAME_VERSION_BAD 90
1122#define DW_DLE_CIE_RET_ADDR_REG_ERROR 91
1123#define DW_DLE_FDE_NULL 92
1124#define DW_DLE_FDE_DBG_NULL 93
1125#define DW_DLE_CIE_NULL 94
1126#define DW_DLE_CIE_DBG_NULL 95
1127#define DW_DLE_FRAME_TABLE_COL_BAD 96
1128#define DW_DLE_PC_NOT_IN_FDE_RANGE 97
1129#define DW_DLE_CIE_INSTR_EXEC_ERROR 98
1130#define DW_DLE_FRAME_INSTR_EXEC_ERROR 99
1131#define DW_DLE_FDE_PTR_NULL 100
1132#define DW_DLE_RET_OP_LIST_NULL 101
1133#define DW_DLE_LINE_CONTEXT_NULL 102
1134#define DW_DLE_DBG_NO_CU_CONTEXT 103
1135#define DW_DLE_DIE_NO_CU_CONTEXT 104
1136#define DW_DLE_FIRST_DIE_NOT_CU 105
1137#define DW_DLE_NEXT_DIE_PTR_NULL 106
1138#define DW_DLE_DEBUG_FRAME_DUPLICATE 107
1139#define DW_DLE_DEBUG_FRAME_NULL 108
1140#define DW_DLE_ABBREV_DECODE_ERROR 109
1141#define DW_DLE_DWARF_ABBREV_NULL 110
1142#define DW_DLE_ATTR_NULL 111
1143#define DW_DLE_DIE_BAD 112
1144#define DW_DLE_DIE_ABBREV_BAD 113
1145#define DW_DLE_ATTR_FORM_BAD 114
1146#define DW_DLE_ATTR_NO_CU_CONTEXT 115
1147#define DW_DLE_ATTR_FORM_SIZE_BAD 116
1148#define DW_DLE_ATTR_DBG_NULL 117
1149#define DW_DLE_BAD_REF_FORM 118
1150#define DW_DLE_ATTR_FORM_OFFSET_BAD 119
1151#define DW_DLE_LINE_OFFSET_BAD 120
1152#define DW_DLE_DEBUG_STR_OFFSET_BAD 121
1153#define DW_DLE_STRING_PTR_NULL 122
1154#define DW_DLE_PUBNAMES_VERSION_ERROR 123
1155#define DW_DLE_PUBNAMES_LENGTH_BAD 124
1156#define DW_DLE_GLOBAL_NULL 125
1157#define DW_DLE_GLOBAL_CONTEXT_NULL 126
1158#define DW_DLE_DIR_INDEX_BAD 127
1159#define DW_DLE_LOC_EXPR_BAD 128
1160#define DW_DLE_DIE_LOC_EXPR_BAD 129
1161#define DW_DLE_ADDR_ALLOC 130
1162#define DW_DLE_OFFSET_BAD 131
1163#define DW_DLE_MAKE_CU_CONTEXT_FAIL 132
1164#define DW_DLE_REL_ALLOC 133
1165#define DW_DLE_ARANGE_OFFSET_BAD 134
1166#define DW_DLE_SEGMENT_SIZE_BAD 135
1167#define DW_DLE_ARANGE_LENGTH_BAD 136
1168#define DW_DLE_ARANGE_DECODE_ERROR 137
1169#define DW_DLE_ARANGES_NULL 138
1170#define DW_DLE_ARANGE_NULL 139
1171#define DW_DLE_NO_FILE_NAME 140
1172#define DW_DLE_NO_COMP_DIR 141
1173#define DW_DLE_CU_ADDRESS_SIZE_BAD 142
1174#define DW_DLE_INPUT_ATTR_BAD 143
1175#define DW_DLE_EXPR_NULL 144
1176#define DW_DLE_BAD_EXPR_OPCODE 145
1177#define DW_DLE_EXPR_LENGTH_BAD 146
1178#define DW_DLE_MULTIPLE_RELOC_IN_EXPR 147
1179#define DW_DLE_ELF_GETIDENT_ERROR 148
1180#define DW_DLE_NO_AT_MIPS_FDE 149
1181#define DW_DLE_NO_CIE_FOR_FDE 150
1182#define DW_DLE_DIE_ABBREV_LIST_NULL 151
1183#define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE 152
1184#define DW_DLE_DEBUG_FUNCNAMES_NULL 153
1185#define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR 154
1186#define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD 155
1187#define DW_DLE_FUNC_NULL 156
1188#define DW_DLE_FUNC_CONTEXT_NULL 157
1189#define DW_DLE_DEBUG_TYPENAMES_DUPLICATE 158
1190#define DW_DLE_DEBUG_TYPENAMES_NULL 159
1191#define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR 160
1192#define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD 161
1193#define DW_DLE_TYPE_NULL 162
1194#define DW_DLE_TYPE_CONTEXT_NULL 163
1195#define DW_DLE_DEBUG_VARNAMES_DUPLICATE 164
1196#define DW_DLE_DEBUG_VARNAMES_NULL 165
1197#define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR 166
1198#define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD 167
1199#define DW_DLE_VAR_NULL 168
1200#define DW_DLE_VAR_CONTEXT_NULL 169
1201#define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE 170
1202#define DW_DLE_DEBUG_WEAKNAMES_NULL 171
1203#define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR 172
1204#define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD 173
1205#define DW_DLE_WEAK_NULL 174
1206#define DW_DLE_WEAK_CONTEXT_NULL 175
1207#define DW_DLE_LOCDESC_COUNT_WRONG 176
1208#define DW_DLE_MACINFO_STRING_NULL 177
1209#define DW_DLE_MACINFO_STRING_EMPTY 178
1210#define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE 179
1211#define DW_DLE_MACINFO_MALLOC_FAIL 180
1212#define DW_DLE_DEBUGMACINFO_ERROR 181
1213#define DW_DLE_DEBUG_MACRO_LENGTH_BAD 182
1214#define DW_DLE_DEBUG_MACRO_MAX_BAD 183
1215#define DW_DLE_DEBUG_MACRO_INTERNAL_ERR 184
1216#define DW_DLE_DEBUG_MACRO_MALLOC_SPACE 185
1217#define DW_DLE_DEBUG_MACRO_INCONSISTENT 186
1218#define DW_DLE_DF_NO_CIE_AUGMENTATION 187
1219#define DW_DLE_DF_REG_NUM_TOO_HIGH 188
1220#define DW_DLE_DF_MAKE_INSTR_NO_INIT 189
1221#define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC 190
1222#define DW_DLE_DF_POP_EMPTY_STACK 191
1223#define DW_DLE_DF_ALLOC_FAIL 192
1224#define DW_DLE_DF_FRAME_DECODING_ERROR 193
1225#define DW_DLE_DEBUG_LOC_SECTION_SHORT 194
1226#define DW_DLE_FRAME_AUGMENTATION_UNKNOWN 195
1227#define DW_DLE_PUBTYPE_CONTEXT 196 /* Unused. */
1228#define DW_DLE_DEBUG_PUBTYPES_LENGTH_BAD 197
1229#define DW_DLE_DEBUG_PUBTYPES_VERSION_ERROR 198
1230#define DW_DLE_DEBUG_PUBTYPES_DUPLICATE 199
1231#define DW_DLE_FRAME_CIE_DECODE_ERROR 200
1232#define DW_DLE_FRAME_REGISTER_UNREPRESENTABLE 201
1233#define DW_DLE_FRAME_REGISTER_COUNT_MISMATCH 202
1234#define DW_DLE_LINK_LOOP 203
1235#define DW_DLE_STRP_OFFSET_BAD 204
1236#define DW_DLE_DEBUG_RANGES_DUPLICATE 205
1237#define DW_DLE_DEBUG_RANGES_OFFSET_BAD 206
1238#define DW_DLE_DEBUG_RANGES_MISSING_END 207
1239#define DW_DLE_DEBUG_RANGES_OUT_OF_MEM 208
1240#define DW_DLE_DEBUG_SYMTAB_ERR 209
1241#define DW_DLE_DEBUG_STRTAB_ERR 210
1242#define DW_DLE_RELOC_MISMATCH_INDEX 211
1243#define DW_DLE_RELOC_MISMATCH_RELOC_INDEX 212
1244#define DW_DLE_RELOC_MISMATCH_STRTAB_INDEX 213
1245#define DW_DLE_RELOC_SECTION_MISMATCH 214
1246#define DW_DLE_RELOC_SECTION_MISSING_INDEX 215
1247#define DW_DLE_RELOC_SECTION_LENGTH_ODD 216
1248#define DW_DLE_RELOC_SECTION_PTR_NULL 217
1249#define DW_DLE_RELOC_SECTION_MALLOC_FAIL 218
1250#define DW_DLE_NO_ELF64_SUPPORT 219
1251#define DW_DLE_MISSING_ELF64_SUPPORT 220
1252#define DW_DLE_ORPHAN_FDE 221
1253#define DW_DLE_DUPLICATE_INST_BLOCK 222
1254#define DW_DLE_BAD_REF_SIG8_FORM 223
1255#define DW_DLE_ATTR_EXPRLOC_FORM_BAD 224
1256#define DW_DLE_FORM_SEC_OFFSET_LENGTH_BAD 225
1257#define DW_DLE_NOT_REF_FORM 226
1258#define DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE 227
1259#define DW_DLE_REF_SIG8_NOT_HANDLED 228
1260#define DW_DLE_DEBUG_FRAME_POSSIBLE_ADDRESS_BOTCH 229
1261#define DW_DLE_LOC_BAD_TERMINATION 230
1262#define DW_DLE_SYMTAB_SECTION_LENGTH_ODD 231
1263#define DW_DLE_RELOC_SECTION_SYMBOL_INDEX_BAD 232
1264#define DW_DLE_RELOC_SECTION_RELOC_TARGET_SIZE_UNKNOWN 233
1265#define DW_DLE_SYMTAB_SECTION_ENTRYSIZE_ZERO 234
1266#define DW_DLE_LINE_NUMBER_HEADER_ERROR 235
1267#define DW_DLE_DEBUG_TYPES_NULL 236
1268#define DW_DLE_DEBUG_TYPES_DUPLICATE 237
1269#define DW_DLE_DEBUG_TYPES_ONLY_DWARF4 238
1270#define DW_DLE_DEBUG_TYPEOFFSET_BAD 239
1271#define DW_DLE_GNU_OPCODE_ERROR 240
1272#define DW_DLE_DEBUGPUBTYPES_ERROR 241
1273#define DW_DLE_AT_FIXUP_NULL 242
1274#define DW_DLE_AT_FIXUP_DUP 243
1275#define DW_DLE_BAD_ABINAME 244
1276#define DW_DLE_TOO_MANY_DEBUG 245
1277#define DW_DLE_DEBUG_STR_OFFSETS_DUPLICATE 246
1278#define DW_DLE_SECTION_DUPLICATION 247
1279#define DW_DLE_SECTION_ERROR 248
1280#define DW_DLE_DEBUG_ADDR_DUPLICATE 249
1281#define DW_DLE_DEBUG_CU_UNAVAILABLE_FOR_FORM 250
1282#define DW_DLE_DEBUG_FORM_HANDLING_INCOMPLETE 251
1283#define DW_DLE_NEXT_DIE_PAST_END 252
1284#define DW_DLE_NEXT_DIE_WRONG_FORM 253
1285#define DW_DLE_NEXT_DIE_NO_ABBREV_LIST 254
1286#define DW_DLE_NESTED_FORM_INDIRECT_ERROR 255
1287#define DW_DLE_CU_DIE_NO_ABBREV_LIST 256
1288#define DW_DLE_MISSING_NEEDED_DEBUG_ADDR_SECTION 257
1289#define DW_DLE_ATTR_FORM_NOT_ADDR_INDEX 258
1290#define DW_DLE_ATTR_FORM_NOT_STR_INDEX 259
1291#define DW_DLE_DUPLICATE_GDB_INDEX 260
1292#define DW_DLE_ERRONEOUS_GDB_INDEX_SECTION 261
1293#define DW_DLE_GDB_INDEX_COUNT_ERROR 262
1294#define DW_DLE_GDB_INDEX_COUNT_ADDR_ERROR 263
1295#define DW_DLE_GDB_INDEX_INDEX_ERROR 264
1296#define DW_DLE_GDB_INDEX_CUVEC_ERROR 265
1297#define DW_DLE_DUPLICATE_CU_INDEX 266
1298#define DW_DLE_DUPLICATE_TU_INDEX 267
1299#define DW_DLE_XU_TYPE_ARG_ERROR 268
1300#define DW_DLE_XU_IMPOSSIBLE_ERROR 269
1301#define DW_DLE_XU_NAME_COL_ERROR 270
1302#define DW_DLE_XU_HASH_ROW_ERROR 271
1303#define DW_DLE_XU_HASH_INDEX_ERROR 272
1304/* ..._FAILSAFE_ERRVAL is an aid when out of memory. */
1305#define DW_DLE_FAILSAFE_ERRVAL 273
1306#define DW_DLE_ARANGE_ERROR 274
1307#define DW_DLE_PUBNAMES_ERROR 275
1308#define DW_DLE_FUNCNAMES_ERROR 276
1309#define DW_DLE_TYPENAMES_ERROR 277
1310#define DW_DLE_VARNAMES_ERROR 278
1311#define DW_DLE_WEAKNAMES_ERROR 279
1312#define DW_DLE_RELOCS_ERROR 280
1313#define DW_DLE_ATTR_OUTSIDE_SECTION 281
1314#define DW_DLE_FISSION_INDEX_WRONG 282
1315#define DW_DLE_FISSION_VERSION_ERROR 283
1316#define DW_DLE_NEXT_DIE_LOW_ERROR 284
1317#define DW_DLE_CU_UT_TYPE_ERROR 285
1318#define DW_DLE_NO_SUCH_SIGNATURE_FOUND 286
1319#define DW_DLE_SIGNATURE_SECTION_NUMBER_WRONG 287
1320#define DW_DLE_ATTR_FORM_NOT_DATA8 288
1321#define DW_DLE_SIG_TYPE_WRONG_STRING 289
1322#define DW_DLE_MISSING_REQUIRED_TU_OFFSET_HASH 290
1323#define DW_DLE_MISSING_REQUIRED_CU_OFFSET_HASH 291
1324#define DW_DLE_DWP_MISSING_DWO_ID 292
1325#define DW_DLE_DWP_SIBLING_ERROR 293
1326#define DW_DLE_DEBUG_FISSION_INCOMPLETE 294
1327#define DW_DLE_FISSION_SECNUM_ERR 295
1328#define DW_DLE_DEBUG_MACRO_DUPLICATE 296
1329#define DW_DLE_DEBUG_NAMES_DUPLICATE 297
1330#define DW_DLE_DEBUG_LINE_STR_DUPLICATE 298
1331#define DW_DLE_DEBUG_SUP_DUPLICATE 299
1332#define DW_DLE_NO_SIGNATURE_TO_LOOKUP 300
1333#define DW_DLE_NO_TIED_ADDR_AVAILABLE 301
1334#define DW_DLE_NO_TIED_SIG_AVAILABLE 302
1335#define DW_DLE_STRING_NOT_TERMINATED 303
1336#define DW_DLE_BAD_LINE_TABLE_OPERATION 304
1337#define DW_DLE_LINE_CONTEXT_BOTCH 305
1338#define DW_DLE_LINE_CONTEXT_INDEX_WRONG 306
1339#define DW_DLE_NO_TIED_STRING_AVAILABLE 307
1340#define DW_DLE_NO_TIED_FILE_AVAILABLE 308
1341#define DW_DLE_CU_TYPE_MISSING 309
1342#define DW_DLE_LLE_CODE_UNKNOWN 310
1343#define DW_DLE_LOCLIST_INTERFACE_ERROR 311
1344#define DW_DLE_LOCLIST_INDEX_ERROR 312
1345#define DW_DLE_INTERFACE_NOT_SUPPORTED 313
1346#define DW_DLE_ZDEBUG_REQUIRES_ZLIB 314
1347#define DW_DLE_ZDEBUG_INPUT_FORMAT_ODD 315
1348#define DW_DLE_ZLIB_BUF_ERROR 316
1349#define DW_DLE_ZLIB_DATA_ERROR 317
1350#define DW_DLE_MACRO_OFFSET_BAD 318
1351#define DW_DLE_MACRO_OPCODE_BAD 319
1352#define DW_DLE_MACRO_OPCODE_FORM_BAD 320
1353#define DW_DLE_UNKNOWN_FORM 321
1354#define DW_DLE_BAD_MACRO_HEADER_POINTER 322
1355#define DW_DLE_BAD_MACRO_INDEX 323
1356#define DW_DLE_MACRO_OP_UNHANDLED 324
1357#define DW_DLE_MACRO_PAST_END 325
1358#define DW_DLE_LINE_STRP_OFFSET_BAD 326
1359#define DW_DLE_STRING_FORM_IMPROPER 327
1360#define DW_DLE_ELF_FLAGS_NOT_AVAILABLE 328
1361#define DW_DLE_LEB_IMPROPER 329
1362#define DW_DLE_DEBUG_LINE_RANGE_ZERO 330
1363#define DW_DLE_READ_LITTLEENDIAN_ERROR 331
1364#define DW_DLE_READ_BIGENDIAN_ERROR 332
1365#define DW_DLE_RELOC_INVALID 333
1366#define DW_DLE_INFO_HEADER_ERROR 334
1367#define DW_DLE_ARANGES_HEADER_ERROR 335
1368#define DW_DLE_LINE_OFFSET_WRONG_FORM 336
1369#define DW_DLE_FORM_BLOCK_LENGTH_ERROR 337
1370#define DW_DLE_ZLIB_SECTION_SHORT 338
1371#define DW_DLE_CIE_INSTR_PTR_ERROR 339
1372#define DW_DLE_FDE_INSTR_PTR_ERROR 340
1373#define DW_DLE_FISSION_ADDITION_ERROR 341
1374#define DW_DLE_HEADER_LEN_BIGGER_THAN_SECSIZE 342
1375#define DW_DLE_LOCEXPR_OFF_SECTION_END 343
1376#define DW_DLE_POINTER_SECTION_UNKNOWN 344
1377#define DW_DLE_ERRONEOUS_XU_INDEX_SECTION 345
1378#define DW_DLE_DIRECTORY_FORMAT_COUNT_VS_DIRECTORIES_MISMATCH 346
1379#define DW_DLE_COMPRESSED_EMPTY_SECTION 347
1380#define DW_DLE_SIZE_WRAPAROUND 348
1381#define DW_DLE_ILLOGICAL_TSEARCH 349
1382#define DW_DLE_BAD_STRING_FORM 350
1383#define DW_DLE_DEBUGSTR_ERROR 351
1384#define DW_DLE_DEBUGSTR_UNEXPECTED_REL 352
1385#define DW_DLE_DISCR_ARRAY_ERROR 353
1386#define DW_DLE_LEB_OUT_ERROR 354
1387#define DW_DLE_SIBLING_LIST_IMPROPER 355
1388#define DW_DLE_LOCLIST_OFFSET_BAD 356
1389#define DW_DLE_LINE_TABLE_BAD 357
1390#define DW_DLE_DEBUG_LOClISTS_DUPLICATE 358
1391#define DW_DLE_DEBUG_RNGLISTS_DUPLICATE 359
1392#define DW_DLE_ABBREV_OFF_END 360
1393#define DW_DLE_FORM_STRING_BAD_STRING 361
1394#define DW_DLE_AUGMENTATION_STRING_OFF_END 362
1395#define DW_DLE_STRING_OFF_END_PUBNAMES_LIKE 363
1396#define DW_DLE_LINE_STRING_BAD 364
1397#define DW_DLE_DEFINE_FILE_STRING_BAD 365
1398#define DW_DLE_MACRO_STRING_BAD 366
1399#define DW_DLE_MACINFO_STRING_BAD 367
1400#define DW_DLE_ZLIB_UNCOMPRESS_ERROR 368
1401#define DW_DLE_IMPROPER_DWO_ID 369
1402#define DW_DLE_GROUPNUMBER_ERROR 370
1403#define DW_DLE_ADDRESS_SIZE_ZERO 371
1404#define DW_DLE_DEBUG_NAMES_HEADER_ERROR 372
1405#define DW_DLE_DEBUG_NAMES_AUG_STRING_ERROR 373
1406#define DW_DLE_DEBUG_NAMES_PAD_NON_ZERO 374
1407#define DW_DLE_DEBUG_NAMES_OFF_END 375
1408#define DW_DLE_DEBUG_NAMES_ABBREV_OVERFLOW 376
1409#define DW_DLE_DEBUG_NAMES_ABBREV_CORRUPTION 377
1410#define DW_DLE_DEBUG_NAMES_NULL_POINTER 378
1411#define DW_DLE_DEBUG_NAMES_BAD_INDEX_ARG 379
1412#define DW_DLE_DEBUG_NAMES_ENTRYPOOL_OFFSET 380
1413#define DW_DLE_DEBUG_NAMES_UNHANDLED_FORM 381
1414#define DW_DLE_LNCT_CODE_UNKNOWN 382
1415#define DW_DLE_LNCT_FORM_CODE_NOT_HANDLED 383
1416#define DW_DLE_LINE_HEADER_LENGTH_BOTCH 384
1417#define DW_DLE_STRING_HASHTAB_IDENTITY_ERROR 385
1418#define DW_DLE_UNIT_TYPE_NOT_HANDLED 386
1419#define DW_DLE_GROUP_MAP_ALLOC 387
1420#define DW_DLE_GROUP_MAP_DUPLICATE 388
1421#define DW_DLE_GROUP_COUNT_ERROR 389
1422#define DW_DLE_GROUP_INTERNAL_ERROR 390
1423#define DW_DLE_GROUP_LOAD_ERROR 391
1424#define DW_DLE_GROUP_LOAD_READ_ERROR 392
1425#define DW_DLE_AUG_DATA_LENGTH_BAD 393
1426#define DW_DLE_ABBREV_MISSING 394
1427#define DW_DLE_NO_TAG_FOR_DIE 395
1428#define DW_DLE_LOWPC_WRONG_CLASS 396
1429#define DW_DLE_HIGHPC_WRONG_FORM 397
1430#define DW_DLE_STR_OFFSETS_BASE_WRONG_FORM 398
1431#define DW_DLE_DATA16_OUTSIDE_SECTION 399
1432#define DW_DLE_LNCT_MD5_WRONG_FORM 400
1433#define DW_DLE_LINE_HEADER_CORRUPT 401
1434#define DW_DLE_STR_OFFSETS_NULLARGUMENT 402
1435#define DW_DLE_STR_OFFSETS_NULL_DBG 403
1436#define DW_DLE_STR_OFFSETS_NO_MAGIC 404
1437#define DW_DLE_STR_OFFSETS_ARRAY_SIZE 405
1438#define DW_DLE_STR_OFFSETS_VERSION_WRONG 406
1439#define DW_DLE_STR_OFFSETS_ARRAY_INDEX_WRONG 407
1440#define DW_DLE_STR_OFFSETS_EXTRA_BYTES 408
1441#define DW_DLE_DUP_ATTR_ON_DIE 409
1442#define DW_DLE_SECTION_NAME_BIG 410
1443#define DW_DLE_FILE_UNAVAILABLE 411
1444#define DW_DLE_FILE_WRONG_TYPE 412
1445#define DW_DLE_SIBLING_OFFSET_WRONG 413
1446#define DW_DLE_OPEN_FAIL 414
1447#define DW_DLE_OFFSET_SIZE 415
1448#define DW_DLE_MACH_O_SEGOFFSET_BAD 416
1449#define DW_DLE_FILE_OFFSET_BAD 417
1450#define DW_DLE_SEEK_ERROR 418
1451#define DW_DLE_READ_ERROR 419
1452#define DW_DLE_ELF_CLASS_BAD 420
1453#define DW_DLE_ELF_ENDIAN_BAD 421
1454#define DW_DLE_ELF_VERSION_BAD 422
1455#define DW_DLE_FILE_TOO_SMALL 423
1456#define DW_DLE_PATH_SIZE_TOO_SMALL 424
1457#define DW_DLE_BAD_TYPE_SIZE 425
1458#define DW_DLE_PE_SIZE_SMALL 426
1459#define DW_DLE_PE_OFFSET_BAD 427
1460#define DW_DLE_PE_STRING_TOO_LONG 428
1461#define DW_DLE_IMAGE_FILE_UNKNOWN_TYPE 429
1462#define DW_DLE_LINE_TABLE_LINENO_ERROR 430
1463#define DW_DLE_PRODUCER_CODE_NOT_AVAILABLE 431
1464#define DW_DLE_NO_ELF_SUPPORT 432
1465#define DW_DLE_NO_STREAM_RELOC_SUPPORT 433
1466#define DW_DLE_RETURN_EMPTY_PUBNAMES_ERROR 434
1467#define DW_DLE_SECTION_SIZE_ERROR 435
1468#define DW_DLE_INTERNAL_NULL_POINTER 436
1469#define DW_DLE_SECTION_STRING_OFFSET_BAD 437
1470#define DW_DLE_SECTION_INDEX_BAD 438
1471#define DW_DLE_INTEGER_TOO_SMALL 439
1472#define DW_DLE_ELF_SECTION_LINK_ERROR 440
1473#define DW_DLE_ELF_SECTION_GROUP_ERROR 441
1474#define DW_DLE_ELF_SECTION_COUNT_MISMATCH 442
1475#define DW_DLE_ELF_STRING_SECTION_MISSING 443
1476#define DW_DLE_SEEK_OFF_END 444
1477#define DW_DLE_READ_OFF_END 445
1478#define DW_DLE_ELF_SECTION_ERROR 446
1479#define DW_DLE_ELF_STRING_SECTION_ERROR 447
1480#define DW_DLE_MIXING_SPLIT_DWARF_VERSIONS 448
1481#define DW_DLE_TAG_CORRUPT 449
1482#define DW_DLE_FORM_CORRUPT 450
1483#define DW_DLE_ATTR_CORRUPT 451
1484#define DW_DLE_ABBREV_ATTR_DUPLICATION 452
1485#define DW_DLE_DWP_SIGNATURE_MISMATCH 453
1486#define DW_DLE_CU_UT_TYPE_VALUE 454
1487#define DW_DLE_DUPLICATE_GNU_DEBUGLINK 455
1488#define DW_DLE_CORRUPT_GNU_DEBUGLINK 456
1489#define DW_DLE_CORRUPT_NOTE_GNU_DEBUGID 457
1490#define DW_DLE_CORRUPT_GNU_DEBUGID_SIZE 458
1491#define DW_DLE_CORRUPT_GNU_DEBUGID_STRING 459
1492#define DW_DLE_HEX_STRING_ERROR 460
1493#define DW_DLE_DECIMAL_STRING_ERROR 461
1494#define DW_DLE_PRO_INIT_EXTRAS_UNKNOWN 462
1495#define DW_DLE_PRO_INIT_EXTRAS_ERR 463
1496#define DW_DLE_NULL_ARGS_DWARF_ADD_PATH 464
1497#define DW_DLE_DWARF_INIT_DBG_NULL 465
1498#define DW_DLE_ELF_RELOC_SECTION_ERROR 466
1499#define DW_DLE_USER_DECLARED_ERROR 467
1500#define DW_DLE_RNGLISTS_ERROR 468
1501#define DW_DLE_LOCLISTS_ERROR 469
1502#define DW_DLE_SECTION_SIZE_OR_OFFSET_LARGE 470
1503#define DW_DLE_GDBINDEX_STRING_ERROR 471
1504#define DW_DLE_GNU_PUBNAMES_ERROR 472
1505#define DW_DLE_GNU_PUBTYPES_ERROR 473
1506#define DW_DLE_DUPLICATE_GNU_DEBUG_PUBNAMES 474
1507#define DW_DLE_DUPLICATE_GNU_DEBUG_PUBTYPES 475
1508#define DW_DLE_DEBUG_SUP_STRING_ERROR 476
1509#define DW_DLE_DEBUG_SUP_ERROR 477
1510#define DW_DLE_LOCATION_ERROR 478
1511#define DW_DLE_DEBUGLINK_PATH_SHORT 479
1512#define DW_DLE_SIGNATURE_MISMATCH 480
1513#define DW_DLE_MACRO_VERSION_ERROR 481
1514#define DW_DLE_NEGATIVE_SIZE 482
1515#define DW_DLE_UDATA_VALUE_NEGATIVE 483
1516#define DW_DLE_DEBUG_NAMES_ERROR 484
1517#define DW_DLE_CFA_INSTRUCTION_ERROR 485
1518#define DW_DLE_MACHO_CORRUPT_HEADER 486
1519#define DW_DLE_MACHO_CORRUPT_COMMAND 487
1520#define DW_DLE_MACHO_CORRUPT_SECTIONDETAILS 488
1521#define DW_DLE_RELOCATION_SECTION_SIZE_ERROR 489
1522#define DW_DLE_SYMBOL_SECTION_SIZE_ERROR 490
1523#define DW_DLE_PE_SECTION_SIZE_ERROR 491
1524#define DW_DLE_DEBUG_ADDR_ERROR 492
1525#define DW_DLE_NO_SECT_STRINGS 493
1526#define DW_DLE_TOO_FEW_SECTIONS 494
1527#define DW_DLE_BUILD_ID_DESCRIPTION_SIZE 495
1528#define DW_DLE_BAD_SECTION_FLAGS 496
1529#define DW_DLE_IMPROPER_SECTION_ZERO 497
1530#define DW_DLE_INVALID_NULL_ARGUMENT 498
1531#define DW_DLE_LINE_INDEX_WRONG 499
1532#define DW_DLE_LINE_COUNT_WRONG 500
1533#define DW_DLE_ARITHMETIC_OVERFLOW 501
1534#define DW_DLE_UNIVERSAL_BINARY_ERROR 502
1535#define DW_DLE_UNIV_BIN_OFFSET_SIZE_ERROR 503
1536#define DW_DLE_PE_SECTION_SIZE_HEURISTIC_FAIL 504
1537#define DW_DLE_LLE_ERROR 505
1538#define DW_DLE_RLE_ERROR 506
1539#define DW_DLE_MACHO_SEGMENT_COUNT_HEURISTIC_FAIL 507
1540
1542#define DW_DLE_LAST 507
1543#define DW_DLE_LO_USER 0x10000
1608DW_API int dwarf_init_path(const char * dw_path,
1609 char * dw_true_path_out_buffer,
1610 unsigned int dw_true_path_bufferlen,
1611 unsigned int dw_groupnumber,
1612 Dwarf_Handler dw_errhand,
1613 Dwarf_Ptr dw_errarg,
1614 Dwarf_Debug* dw_dbg,
1615 Dwarf_Error* dw_error);
1616
1629DW_API int dwarf_init_path_a(const char * dw_path,
1630 char * dw_true_path_out_buffer,
1631 unsigned int dw_true_path_bufferlen,
1632 unsigned int dw_groupnumber,
1633 unsigned int dw_universalnumber,
1634 Dwarf_Handler dw_errhand,
1635 Dwarf_Ptr dw_errarg,
1636 Dwarf_Debug* dw_dbg,
1637 Dwarf_Error* dw_error);
1638
1695DW_API int dwarf_init_path_dl(const char * dw_path,
1696 char * dw_true_path_out_buffer,
1697 unsigned int dw_true_path_bufferlen,
1698 unsigned int dw_groupnumber,
1699 Dwarf_Handler dw_errhand,
1700 Dwarf_Ptr dw_errarg,
1701 Dwarf_Debug* dw_dbg,
1702 char ** dw_dl_path_array,
1703 unsigned int dw_dl_path_array_size,
1704 unsigned char * dw_dl_path_source,
1705 Dwarf_Error* dw_error);
1706
1723DW_API int dwarf_init_path_dl_a(const char * dw_path,
1724 char * dw_true_path_out_buffer,
1725 unsigned int dw_true_path_bufferlen,
1726 unsigned int dw_groupnumber,
1727 unsigned int dw_universalnumber,
1728 Dwarf_Handler dw_errhand,
1729 Dwarf_Ptr dw_errarg,
1730 Dwarf_Debug* dw_dbg,
1731 char ** dw_dl_path_array,
1732 unsigned int dw_dl_path_array_size,
1733 unsigned char * dw_dl_path_source,
1734 Dwarf_Error* dw_error);
1735
1769DW_API int dwarf_init_b(int dw_fd,
1770 unsigned int dw_groupnumber,
1771 Dwarf_Handler dw_errhand,
1772 Dwarf_Ptr dw_errarg,
1773 Dwarf_Debug* dw_dbg,
1774 Dwarf_Error* dw_error);
1775
1791DW_API int dwarf_finish(Dwarf_Debug dw_dbg);
1792
1827 Dwarf_Handler dw_errhand,
1828 Dwarf_Ptr dw_errarg,
1829 unsigned int dw_groupnumber,
1830 Dwarf_Debug* dw_dbg,
1831 Dwarf_Error* dw_error);
1832
1848
1879DW_API int dwarf_set_tied_dbg(Dwarf_Debug dw_split_dbg,
1880 Dwarf_Debug dw_tied_dbg,
1881 Dwarf_Error* dw_error);
1882
1917 Dwarf_Debug * dw_tieddbg_out,
1918 Dwarf_Error * dw_error);
2000 Dwarf_Bool dw_is_info,
2001 Dwarf_Die *dw_cu_die,
2002 Dwarf_Unsigned *dw_cu_header_length,
2003 Dwarf_Half *dw_version_stamp,
2004 Dwarf_Off *dw_abbrev_offset,
2005 Dwarf_Half *dw_address_size,
2006 Dwarf_Half *dw_length_size,
2007 Dwarf_Half *dw_extension_size,
2008 Dwarf_Sig8 *dw_type_signature,
2009 Dwarf_Unsigned *dw_typeoffset,
2010 Dwarf_Unsigned *dw_next_cu_header_offset,
2011 Dwarf_Half *dw_header_cu_type,
2012 Dwarf_Error *dw_error);
2013
2045 Dwarf_Bool dw_is_info,
2046 Dwarf_Unsigned *dw_cu_header_length,
2047 Dwarf_Half *dw_version_stamp,
2048 Dwarf_Off *dw_abbrev_offset,
2049 Dwarf_Half *dw_address_size,
2050 Dwarf_Half *dw_length_size,
2051 Dwarf_Half *dw_extension_size,
2052 Dwarf_Sig8 *dw_type_signature,
2053 Dwarf_Unsigned *dw_typeoffset,
2054 Dwarf_Unsigned *dw_next_cu_header_offset,
2055 Dwarf_Half *dw_header_cu_type,
2056 Dwarf_Error *dw_error);
2057
2074 Dwarf_Die *dw_return_siblingdie,
2075 Dwarf_Error *dw_error);
2076
2112 Dwarf_Die dw_die,
2113 Dwarf_Bool dw_is_info,
2114 Dwarf_Die *dw_return_siblingdie,
2115 Dwarf_Error *dw_error);
2116
2158 Dwarf_Half *dw_version,
2159 Dwarf_Bool *dw_is_info,
2160 Dwarf_Bool *dw_is_dwo,
2161 Dwarf_Half *dw_offset_size,
2162 Dwarf_Half *dw_address_size,
2163 Dwarf_Half *dw_extension_size,
2164 Dwarf_Sig8 **dw_signature,
2165 Dwarf_Off *dw_offset_of_length,
2166 Dwarf_Unsigned *dw_total_byte_length,
2167 Dwarf_Error *dw_error);
2168
2188DW_API int dwarf_child(Dwarf_Die dw_die,
2189 Dwarf_Die* dw_return_childdie,
2190 Dwarf_Error* dw_error);
2191
2199DW_API void dwarf_dealloc_die( Dwarf_Die dw_die);
2200
2219 Dwarf_Sig8 * dw_hash_sig,
2220 const char * dw_sig_type,
2221 Dwarf_Die* dw_returned_CU_die,
2222 Dwarf_Error* dw_error);
2223
2254DW_API int dwarf_offdie_b(Dwarf_Debug dw_dbg,
2255 Dwarf_Off dw_offset,
2256 Dwarf_Bool dw_is_info,
2257 Dwarf_Die* dw_return_die,
2258 Dwarf_Error* dw_error);
2259
2282 Dwarf_Sig8 *dw_ref,
2283 Dwarf_Die *dw_die_out,
2284 Dwarf_Bool *dw_is_info,
2285 Dwarf_Error *dw_error);
2286
2328 Dwarf_Off * dw_abbrev_offset,
2329 Dwarf_Unsigned * dw_abbrev_count,
2330 Dwarf_Error* dw_error);
2331
2342DW_API int dwarf_tag(Dwarf_Die dw_die,
2343 Dwarf_Half* dw_return_tag,
2344 Dwarf_Error* dw_error);
2345
2358DW_API int dwarf_dieoffset(Dwarf_Die dw_die,
2359 Dwarf_Off* dw_return_offset,
2360 Dwarf_Error* dw_error);
2361
2381 Dwarf_Unsigned dw_index,
2382 Dwarf_Addr * dw_return_addr,
2383 Dwarf_Error * dw_error);
2384
2394
2419 Dwarf_Off* dw_return_offset,
2420 Dwarf_Error* dw_error);
2421
2443 Dwarf_Debug dw_dbg,
2444 Dwarf_Off dw_in_cu_header_offset,
2445 Dwarf_Bool dw_is_info,
2446 Dwarf_Off * dw_out_cu_die_offset,
2447 Dwarf_Error *dw_error);
2448
2467 Dwarf_Off* dw_return_offset,
2468 Dwarf_Error* dw_error);
2469
2491 Dwarf_Off* dw_return_CU_header_offset,
2492 Dwarf_Off* dw_return_CU_length_bytes,
2493 Dwarf_Error* dw_error);
2494
2512DW_API int dwarf_attr(Dwarf_Die dw_die,
2513 Dwarf_Half dw_attrnum,
2514 Dwarf_Attribute * dw_returned_attr,
2515 Dwarf_Error* dw_error);
2516
2538DW_API int dwarf_die_text(Dwarf_Die dw_die,
2539 Dwarf_Half dw_attrnum,
2540 char ** dw_ret_name,
2541 Dwarf_Error * dw_error);
2542
2562DW_API int dwarf_diename(Dwarf_Die dw_die,
2563 char ** dw_diename,
2564 Dwarf_Error* dw_error);
2565
2584
2599 Dwarf_Half * dw_ab_has_child);
2600
2625 Dwarf_Off* dw_offset);
2626
2627/* convenience functions, alternative to using dwarf_attrlist */
2628
2647DW_API int dwarf_hasattr(Dwarf_Die dw_die,
2648 Dwarf_Half dw_attrnum,
2649 Dwarf_Bool * dw_returned_bool,
2650 Dwarf_Error* dw_error);
2651
2688 Dwarf_Off dw_offset,
2689 Dwarf_Bool dw_is_info,
2690 Dwarf_Off ** dw_offbuf,
2691 Dwarf_Unsigned * dw_offcount,
2692 Dwarf_Error * dw_error);
2693
2707 Dwarf_Half * dw_addr_size,
2708 Dwarf_Error * dw_error);
2709
2710/* Get both offsets (local and global) */
2731 Dwarf_Off* dw_global_offset,
2732 Dwarf_Off* dw_local_offset,
2733 Dwarf_Error* dw_error);
2734
2752 Dwarf_Half * dw_version,
2753 Dwarf_Half * dw_offset_size);
2754
2768DW_API int dwarf_lowpc(Dwarf_Die dw_die,
2769 Dwarf_Addr * dw_returned_addr,
2770 Dwarf_Error* dw_error);
2771
2803DW_API int dwarf_highpc_b(Dwarf_Die dw_die,
2804 Dwarf_Addr * dw_return_addr,
2805 Dwarf_Half * dw_return_form,
2806 enum Dwarf_Form_Class * dw_return_class,
2807 Dwarf_Error * dw_error);
2808
2835 Dwarf_Off * dw_return_offset,
2836 Dwarf_Bool * dw_is_info,
2837 Dwarf_Error * dw_error);
2838
2850DW_API int dwarf_bytesize(Dwarf_Die dw_die,
2851 Dwarf_Unsigned * dw_returned_size,
2852 Dwarf_Error* dw_error);
2853
2865DW_API int dwarf_bitsize(Dwarf_Die dw_die,
2866 Dwarf_Unsigned * dw_returned_size,
2867 Dwarf_Error* dw_error);
2868
2889DW_API int dwarf_bitoffset(Dwarf_Die dw_die,
2890 Dwarf_Half * dw_attrnum,
2891 Dwarf_Unsigned * dw_returned_offset,
2892 Dwarf_Error* dw_error);
2893
2907DW_API int dwarf_srclang(Dwarf_Die dw_die,
2908 Dwarf_Unsigned * dw_returned_lang,
2909 Dwarf_Error * dw_error);
2910
2932 Dwarf_Unsigned dw_lang_name,
2933 int * dw_default_lower_bound,
2934 const char **dw_version_string);
2935
2948DW_API int dwarf_arrayorder(Dwarf_Die dw_die,
2949 Dwarf_Unsigned * dw_returned_order,
2950 Dwarf_Error* dw_error);
2980DW_API int dwarf_attrlist(Dwarf_Die dw_die,
2981 Dwarf_Attribute** dw_attrbuf,
2982 Dwarf_Signed * dw_attrcount,
2983 Dwarf_Error* dw_error);
2984
3004 Dwarf_Half dw_form,
3005 Dwarf_Bool * dw_returned_bool,
3006 Dwarf_Error* dw_error);
3007
3027 Dwarf_Half * dw_returned_final_form,
3028 Dwarf_Error* dw_error);
3029
3047 Dwarf_Half * dw_returned_initial_form,
3048 Dwarf_Error* dw_error);
3049
3066 Dwarf_Half * dw_returned_attrnum,
3067 Dwarf_Error* dw_error);
3068
3094 Dwarf_Off* dw_return_offset,
3095 Dwarf_Bool *dw_is_info,
3096 Dwarf_Error *dw_error);
3097
3131 Dwarf_Off *dw_return_offset,
3132 Dwarf_Bool *dw_offset_is_info,
3133 Dwarf_Error *dw_error);
3134
3146 Dwarf_Off* dw_return_offset,
3147 Dwarf_Error* dw_error);
3148
3168 Dwarf_Sig8 * dw_returned_sig_bytes,
3169 Dwarf_Error* dw_error);
3170
3190 Dwarf_Sig8 * dw_returned_sig_bytes,
3191 Dwarf_Error* dw_error);
3192
3213 Dwarf_Addr * dw_returned_addr,
3214 Dwarf_Error* dw_error);
3215
3236 Dwarf_Unsigned * dw_return_index,
3237 Dwarf_Error * dw_error);
3238
3253 Dwarf_Bool * dw_returned_bool,
3254 Dwarf_Error* dw_error);
3255
3272 Dwarf_Unsigned * dw_returned_val,
3273 Dwarf_Error* dw_error);
3274
3290 Dwarf_Signed * dw_returned_val,
3291 Dwarf_Error* dw_error);
3292
3311 Dwarf_Form_Data16 * dw_returned_val,
3312 Dwarf_Error* dw_error);
3313
3333 Dwarf_Block ** dw_returned_block,
3334 Dwarf_Error* dw_error);
3335
3351 char ** dw_returned_string,
3352 Dwarf_Error* dw_error);
3353
3370 Dwarf_Unsigned * dw_return_index,
3371 Dwarf_Error * dw_error);
3372
3392 Dwarf_Unsigned * dw_return_exprlen,
3393 Dwarf_Ptr * dw_block_ptr,
3394 Dwarf_Error * dw_error);
3395
3416 Dwarf_Half dw_version,
3417 Dwarf_Half dw_attrnum,
3418 Dwarf_Half dw_offset_size,
3419 Dwarf_Half dw_form);
3420
3437 Dwarf_Attribute dw_attr,
3438 Dwarf_Off * dw_return_offset,
3439 Dwarf_Error * dw_error);
3440
3449 Dwarf_Unsigned dw_input_length_in_bytes,
3450 void * dw_input_block,
3451 Dwarf_Unsigned * dw_value_count,
3452 Dwarf_Signed ** dw_value_array,
3453 Dwarf_Error * dw_error);
3454
3463 void *dw_value_array);
3464
3485 Dwarf_Off dw_offset,
3486 Dwarf_Off* dw_return_offset,
3487 Dwarf_Error* dw_error);
3488
3495
3523 Dwarf_Small * dw_blockpointer,
3524 Dwarf_Unsigned dw_blocklen,
3525 Dwarf_Dsc_Head * dw_dsc_head_out,
3526 Dwarf_Unsigned * dw_dsc_array_length_out,
3527 Dwarf_Error * dw_error);
3528
3555 Dwarf_Unsigned dw_entrynum,
3556 Dwarf_Half * dw_out_type,
3557 Dwarf_Unsigned * dw_out_discr_low,
3558 Dwarf_Unsigned * dw_out_discr_high,
3559 Dwarf_Error * dw_error);
3560
3567 Dwarf_Unsigned dw_entrynum,
3568 Dwarf_Half * dw_out_type,
3569 Dwarf_Signed * dw_out_discr_low,
3570 Dwarf_Signed * dw_out_discr_high,
3571 Dwarf_Error * dw_error);
3572
3650DW_API int dwarf_srcfiles(Dwarf_Die dw_cu_die,
3651 char *** dw_srcfiles,
3652 Dwarf_Signed * dw_filecount,
3653 Dwarf_Error * dw_error);
3654
3681DW_API int dwarf_srclines_b(Dwarf_Die dw_cudie,
3682 Dwarf_Unsigned * dw_version_out,
3683 Dwarf_Small * dw_table_count,
3684 Dwarf_Line_Context * dw_linecontext,
3685 Dwarf_Error * dw_error);
3686
3708 Dwarf_Line_Context dw_linecontext,
3709 Dwarf_Line ** dw_linebuf,
3710 Dwarf_Signed * dw_linecount,
3711 Dwarf_Error * dw_error);
3712
3730 Dwarf_Line_Context dw_context,
3731 Dwarf_Line ** dw_linebuf ,
3732 Dwarf_Signed * dw_linecount,
3733 Dwarf_Line ** dw_linebuf_actuals,
3734 Dwarf_Signed * dw_linecount_actuals,
3735 Dwarf_Error * dw_error);
3736
3747
3764 Dwarf_Unsigned * dw_offset,
3765 Dwarf_Error * dw_error);
3766
3783 const char ** dw_compilation_directory,
3784 Dwarf_Error * dw_error);
3785
3802 Dwarf_Signed * dw_count,
3803 Dwarf_Error * dw_error);
3804
3824 Dwarf_Signed dw_index,
3825 const char ** dw_name,
3826 Dwarf_Unsigned * dw_decl_file,
3827 Dwarf_Unsigned * dw_decl_line,
3828 Dwarf_Error * dw_error);
3829
3855 Dwarf_Line_Context dw_context,
3856 Dwarf_Signed * dw_baseindex,
3857 Dwarf_Signed * dw_count,
3858 Dwarf_Signed * dw_endindex,
3859 Dwarf_Error * dw_error);
3860
3913 Dwarf_Line_Context dw_context,
3914 Dwarf_Signed dw_index_in,
3915 const char ** dw_name,
3916 Dwarf_Unsigned * dw_directory_index,
3917 Dwarf_Unsigned * dw_last_mod_time,
3918 Dwarf_Unsigned * dw_file_length,
3919 Dwarf_Form_Data16 ** dw_md5ptr,
3920 Dwarf_Error * dw_error);
3921
3937 Dwarf_Line_Context dw_line_context,
3938 Dwarf_Signed * dw_count,
3939 Dwarf_Error * dw_error);
3940
3964 Dwarf_Line_Context dw_line_context,
3965 Dwarf_Signed dw_index,
3966 const char ** dw_name,
3967 Dwarf_Error * dw_error);
3968
3998 Dwarf_Unsigned * dw_version,
3999 Dwarf_Small * dw_table_count,
4000 Dwarf_Error * dw_error);
4001
4018 Dwarf_Bool * dw_returned_bool,
4019 Dwarf_Error * dw_error);
4020
4037 Dwarf_Bool * dw_returned_bool,
4038 Dwarf_Error * dw_error);
4039
4054DW_API int dwarf_lineno(Dwarf_Line dw_line,
4055 Dwarf_Unsigned * dw_returned_linenum,
4056 Dwarf_Error * dw_error);
4057
4073 Dwarf_Unsigned * dw_returned_filenum,
4074 Dwarf_Error * dw_error);
4075
4090 Dwarf_Bool * dw_is_addr_set,
4091 Dwarf_Error * dw_error);
4092
4107DW_API int dwarf_lineaddr(Dwarf_Line dw_line,
4108 Dwarf_Addr * dw_returned_addr,
4109 Dwarf_Error* dw_error);
4110
4125DW_API int dwarf_lineoff_b(Dwarf_Line dw_line,
4126 Dwarf_Unsigned * dw_returned_lineoffset,
4127 Dwarf_Error* dw_error);
4128
4153DW_API int dwarf_linesrc(Dwarf_Line dw_line,
4154 char ** dw_returned_name,
4155 Dwarf_Error* dw_error);
4156
4171DW_API int dwarf_lineblock(Dwarf_Line dw_line,
4172 Dwarf_Bool * dw_returned_bool,
4173 Dwarf_Error* dw_error);
4174
4175/* We gather these into one call as it's likely one
4176 will want all or none of them. */
4201 Dwarf_Bool * dw_prologue_end,
4202 Dwarf_Bool * dw_epilogue_begin,
4203 Dwarf_Unsigned * dw_isa,
4204 Dwarf_Unsigned * dw_discriminator,
4205 Dwarf_Error * dw_error);
4206/* End line table operations */
4207
4214 Dwarf_Unsigned * dw_returned_logical,
4215 Dwarf_Error* dw_error);
4216
4224 Dwarf_Unsigned * dw_returned_context,
4225 Dwarf_Error* dw_error);
4226
4236 Dwarf_Unsigned * /*ret_subprogno*/,
4237 Dwarf_Error * /*error*/);
4238
4245DW_API int dwarf_line_subprog(Dwarf_Line /*line*/,
4246 char ** /*returned_subprog_name*/,
4247 char ** /*returned_filename*/,
4248 Dwarf_Unsigned * /*returned_lineno*/,
4249 Dwarf_Error * /*error*/);
4250
4272 int * dw_errcount_out,
4273 Dwarf_Error * dw_error);
4274
4304DW_API int dwarf_print_lines(Dwarf_Die dw_cu_die,
4305 Dwarf_Error * dw_error,
4306 int * dw_errorcount_out);
4307
4328DW_API struct Dwarf_Printf_Callback_Info_s
4330 struct Dwarf_Printf_Callback_Info_s * dw_callbackinfo);
4331
4392 Dwarf_Off dw_rangesoffset,
4393 Dwarf_Die dw_die,
4394 Dwarf_Off * dw_return_realoffset,
4395 Dwarf_Ranges ** dw_rangesbuf,
4396 Dwarf_Signed * dw_rangecount,
4397 Dwarf_Unsigned * dw_bytecount,
4398 Dwarf_Error * dw_error);
4399
4410 Dwarf_Ranges * dw_rangesbuf,
4411 Dwarf_Signed dw_rangecount);
4412
4453 Dwarf_Die dw_die,
4454 Dwarf_Bool *dw_known_base,
4455 Dwarf_Unsigned *dw_baseaddress,
4456 Dwarf_Bool *dw_at_ranges_offset_present,
4457 Dwarf_Unsigned *dw_at_ranges_offset,
4458 Dwarf_Error *dw_error);
4459
4506 Dwarf_Half dw_theform,
4507 Dwarf_Unsigned dw_index_or_offset_value,
4508 Dwarf_Rnglists_Head * dw_head_out,
4509 Dwarf_Unsigned * dw_count_of_entries_in_head,
4510 Dwarf_Unsigned * dw_global_offset_of_rle_set,
4511 Dwarf_Error * dw_error);
4512
4556 Dwarf_Rnglists_Head dw_head,
4557 Dwarf_Unsigned dw_entrynum,
4558 unsigned int * dw_entrylen,
4559 unsigned int * dw_rle_value_out,
4560 Dwarf_Unsigned * dw_raw1,
4561 Dwarf_Unsigned * dw_raw2,
4562 Dwarf_Bool * dw_debug_addr_unavailable,
4563 Dwarf_Unsigned * dw_cooked1,
4564 Dwarf_Unsigned * dw_cooked2,
4565 Dwarf_Error * dw_error);
4566
4575
4607 Dwarf_Unsigned * dw_rnglists_count,
4608 Dwarf_Error * dw_error);
4609
4637 Dwarf_Unsigned dw_context_index,
4638 Dwarf_Unsigned dw_offsetentry_index,
4639 Dwarf_Unsigned * dw_offset_value_out,
4640 Dwarf_Unsigned * dw_global_offset_value_out,
4641 Dwarf_Error * dw_error);
4642
4650 Dwarf_Unsigned * dw_rle_count,
4651 Dwarf_Unsigned * dw_rnglists_version,
4652 Dwarf_Unsigned * dw_rnglists_index_returned,
4653 Dwarf_Unsigned * dw_bytes_total_in_rle,
4654 Dwarf_Half * dw_offset_size,
4655 Dwarf_Half * dw_address_size,
4656 Dwarf_Half * dw_segment_selector_size,
4657 Dwarf_Unsigned * dw_overall_offset_of_this_context,
4658 Dwarf_Unsigned * dw_total_length_of_this_context,
4659 Dwarf_Unsigned * dw_offset_table_offset,
4660 Dwarf_Unsigned * dw_offset_table_entrycount,
4661 Dwarf_Bool * dw_rnglists_base_present,
4662 Dwarf_Unsigned * dw_rnglists_base,
4663 Dwarf_Bool * dw_rnglists_base_address_present,
4664 Dwarf_Unsigned * dw_rnglists_base_address,
4665 Dwarf_Bool * dw_rnglists_debug_addr_base_present,
4666 Dwarf_Unsigned * dw_rnglists_debug_addr_base,
4667 Dwarf_Error * dw_error);
4668
4685 Dwarf_Unsigned dw_index,
4686 Dwarf_Unsigned * dw_header_offset,
4687 Dwarf_Small * dw_offset_size,
4688 Dwarf_Small * dw_extension_size,
4689 unsigned int * dw_version,
4690 Dwarf_Small * dw_address_size,
4691 Dwarf_Small * dw_segment_selector_size,
4692 Dwarf_Unsigned * dw_offset_entry_count,
4693 Dwarf_Unsigned * dw_offset_of_offset_array,
4694 Dwarf_Unsigned * dw_offset_of_first_rangeentry,
4695 Dwarf_Unsigned * dw_offset_past_last_rangeentry,
4696 Dwarf_Error * dw_error);
4697
4708 Dwarf_Unsigned dw_contextnumber,
4709 Dwarf_Unsigned dw_entry_offset,
4710 Dwarf_Unsigned dw_endoffset,
4711 unsigned int * dw_entrylen,
4712 unsigned int * dw_entry_kind,
4713 Dwarf_Unsigned * dw_entry_operand1,
4714 Dwarf_Unsigned * dw_entry_operand2,
4715 Dwarf_Error * dw_error);
4742 Dwarf_Loc_Head_c * dw_loclist_head,
4743 Dwarf_Unsigned * dw_locentry_count,
4744 Dwarf_Error * dw_error);
4745
4746#define DW_LKIND_expression 0 /* DWARF2,3,4,5 */
4747#define DW_LKIND_loclist 1 /* DWARF 2,3,4 */
4748#define DW_LKIND_GNU_exp_list 2 /* GNU DWARF4 .dwo extension */
4749#define DW_LKIND_loclists 5 /* DWARF5 loclists */
4750#define DW_LKIND_unknown 99
4751
4765 Dwarf_Loc_Head_c dw_loclist_head,
4766 unsigned int * dw_lkind,
4767 Dwarf_Error * dw_error);
4768
4824 Dwarf_Unsigned dw_index,
4825 Dwarf_Small * dw_lle_value_out,
4826 Dwarf_Unsigned * dw_rawlowpc,
4827 Dwarf_Unsigned * dw_rawhipc,
4828 Dwarf_Bool * dw_debug_addr_unavailable,
4829 Dwarf_Addr * dw_lowpc_cooked,
4830 Dwarf_Addr * dw_hipc_cooked,
4831 Dwarf_Unsigned * dw_locexpr_op_count_out,
4832 Dwarf_Locdesc_c * dw_locentry_out,
4833 Dwarf_Small * dw_loclist_source_out,
4834 Dwarf_Unsigned * dw_expression_offset_out,
4835 Dwarf_Unsigned * dw_locdesc_offset_out,
4836 Dwarf_Error * dw_error);
4837
4858 Dwarf_Unsigned dw_index,
4859 Dwarf_Small * dw_lle_value_out,
4860 Dwarf_Unsigned * dw_rawlowpc,
4861 Dwarf_Unsigned * dw_rawhipc,
4862 Dwarf_Bool * dw_debug_addr_unavailable,
4863 Dwarf_Addr * dw_lowpc_cooked,
4864 Dwarf_Addr * dw_hipc_cooked,
4865 Dwarf_Unsigned * dw_locexpr_op_count_out,
4866 Dwarf_Unsigned * dw_lle_bytecount,
4867 Dwarf_Locdesc_c * dw_locentry_out,
4868 Dwarf_Small * dw_loclist_source_out,
4869 Dwarf_Unsigned * dw_expression_offset_out,
4870 Dwarf_Unsigned * dw_locdesc_offset_out,
4871 Dwarf_Error * dw_error);
4872
4899 Dwarf_Unsigned dw_index,
4900 Dwarf_Small * dw_operator_out,
4901 Dwarf_Unsigned * dw_operand1,
4902 Dwarf_Unsigned * dw_operand2,
4903 Dwarf_Unsigned * dw_operand3,
4904 Dwarf_Unsigned * dw_offset_for_branch,
4905 Dwarf_Error* dw_error);
4938 Dwarf_Ptr dw_expression_in,
4939 Dwarf_Unsigned dw_expression_length,
4940 Dwarf_Half dw_address_size,
4941 Dwarf_Half dw_offset_size,
4942 Dwarf_Half dw_dwarf_version,
4943 Dwarf_Loc_Head_c* dw_loc_head,
4944 Dwarf_Unsigned * dw_listlen,
4945 Dwarf_Error * dw_error);
4946
4955
4956/* These interfaces allow reading the .debug_loclists
4957 section. Independently of DIEs.
4958 Normal use of .debug_loclists uses
4959 dwarf_get_loclist_c() to open access to any kind of location
4960 or loclist and uses dwarf_loc_head_c_dealloc() to
4961 deallocate that memory once one is finished with
4962 that data. So for most purposes you do not need
4963 to use these functions
4964 See dwarf_get_loclist_c() to open a Dwarf_Loc_Head_c
4965 on any type of location list or expression. */
4966
4967/* Loads all the loclists headers and
4968 returns DW_DLV_NO_ENTRY if the section
4969 is missing or empty.
4970 Intended to be done quite early and
4971 it is automatically
4972 done if .debug_info is loaded.
4973 Doing it more than once is never necessary
4974 or harmful. There is no deallocation call
4975 made visible, deallocation happens
4976 when dwarf_finish() is called.
4977 With DW_DLV_OK it returns the number of
4978 loclists headers in the section through
4979 loclists_count. */
5010 Dwarf_Unsigned * dw_loclists_count,
5011 Dwarf_Error * dw_error);
5012
5039 Dwarf_Unsigned dw_context_index,
5040 Dwarf_Unsigned dw_offsetentry_index,
5041 Dwarf_Unsigned * dw_offset_value_out,
5042 Dwarf_Unsigned * dw_global_offset_value_out,
5043 Dwarf_Error * dw_error);
5044
5060 Dwarf_Small * dw_lkind,
5061 Dwarf_Unsigned * dw_lle_count,
5062 Dwarf_Unsigned * dw_loclists_version,
5063 Dwarf_Unsigned * dw_loclists_index_returned,
5064 Dwarf_Unsigned * dw_bytes_total_in_rle,
5065 Dwarf_Half * dw_offset_size,
5066 Dwarf_Half * dw_address_size,
5067 Dwarf_Half * dw_segment_selector_size,
5068 Dwarf_Unsigned * dw_overall_offset_of_this_context,
5069 Dwarf_Unsigned * dw_total_length_of_this_context,
5070 Dwarf_Unsigned * dw_offset_table_offset,
5071 Dwarf_Unsigned * dw_offset_table_entrycount,
5072 Dwarf_Bool * dw_loclists_base_present,
5073 Dwarf_Unsigned * dw_loclists_base,
5074 Dwarf_Bool * dw_loclists_base_address_present,
5075 Dwarf_Unsigned * dw_loclists_base_address,
5076 Dwarf_Bool * dw_loclists_debug_addr_base_present,
5077 Dwarf_Unsigned * dw_loclists_debug_addr_base,
5078 Dwarf_Unsigned * dw_offset_this_lle_area,
5079 Dwarf_Error * dw_error);
5080
5090 Dwarf_Unsigned dw_index,
5091 Dwarf_Unsigned * dw_header_offset,
5092 Dwarf_Small * dw_offset_size,
5093 Dwarf_Small * dw_extension_size,
5094 unsigned int * dw_version,
5095 Dwarf_Small * dw_address_size,
5096 Dwarf_Small * dw_segment_selector_size,
5097 Dwarf_Unsigned * dw_offset_entry_count,
5098 Dwarf_Unsigned * dw_offset_of_offset_array,
5099 Dwarf_Unsigned * dw_offset_of_first_locentry,
5100 Dwarf_Unsigned * dw_offset_past_last_locentry,
5101 Dwarf_Error * dw_error);
5102
5108 Dwarf_Unsigned dw_contextnumber,
5109 Dwarf_Unsigned dw_entry_offset,
5110 Dwarf_Unsigned dw_endoffset,
5111 unsigned int * dw_entrylen,
5112 unsigned int * dw_entry_kind,
5113 Dwarf_Unsigned * dw_entry_operand1,
5114 Dwarf_Unsigned * dw_entry_operand2,
5115 Dwarf_Unsigned * dw_expr_ops_blocksize,
5116 Dwarf_Unsigned * dw_expr_ops_offset,
5117 Dwarf_Small ** dw_expr_opsdata,
5118 Dwarf_Error * dw_error);
5199 Dwarf_Unsigned dw_section_offset,
5200 Dwarf_Debug_Addr_Table *dw_table_header,
5201 Dwarf_Unsigned *dw_length,
5202 Dwarf_Half *dw_version,
5203 Dwarf_Small *dw_address_size,
5204 Dwarf_Unsigned *dw_at_addr_base,
5205 Dwarf_Unsigned *dw_entry_count,
5206 Dwarf_Unsigned *dw_next_table_offset,
5207 Dwarf_Error *dw_error);
5208
5232 Dwarf_Unsigned dw_entry_index,
5233 Dwarf_Unsigned *dw_address,
5234 Dwarf_Error *dw_error);
5235
5244 Dwarf_Debug_Addr_Table dw_dat);
5245
5283 Dwarf_Unsigned * dw_version_out,
5284 Dwarf_Macro_Context * dw_macro_context,
5285 Dwarf_Unsigned * dw_macro_unit_offset_out,
5286 Dwarf_Unsigned * dw_macro_ops_count_out,
5287 Dwarf_Unsigned * dw_macro_ops_data_length_out,
5288 Dwarf_Error * dw_error);
5289
5318 Dwarf_Unsigned dw_offset,
5319 Dwarf_Unsigned * dw_version_out,
5320 Dwarf_Macro_Context * dw_macro_context,
5321 Dwarf_Unsigned * dw_macro_ops_count_out,
5322 Dwarf_Unsigned * dw_macro_ops_data_length,
5323 Dwarf_Error * dw_error);
5324
5325/* New December 2020. libdwarf 0.1.0
5326 Sometimes its necessary to know
5327 a context total length including macro 5 header */
5341 Dwarf_Macro_Context dw_context,
5342 Dwarf_Unsigned * dw_mac_total_len,
5343 Dwarf_Error * dw_error);
5344
5353
5360 Dwarf_Half * dw_version,
5361 Dwarf_Unsigned * dw_mac_offset,
5362 Dwarf_Unsigned * dw_mac_len,
5363 Dwarf_Unsigned * dw_mac_header_len,
5364 unsigned int * dw_flags,
5365 Dwarf_Bool * dw_has_line_offset,
5366 Dwarf_Unsigned * dw_line_offset,
5367 Dwarf_Bool * dw_has_offset_size_64,
5368 Dwarf_Bool * dw_has_operands_table,
5369 Dwarf_Half * dw_opcode_count,
5370 Dwarf_Error * dw_error);
5371
5395 Dwarf_Half dw_index, /* 0 to opcode_count -1 */
5396 Dwarf_Half * dw_opcode_number,
5397 Dwarf_Half * dw_operand_count,
5398 const Dwarf_Small ** dw_operand_array,
5399 Dwarf_Error * dw_error);
5400
5425DW_API int dwarf_get_macro_op(Dwarf_Macro_Context dw_macro_context,
5426 Dwarf_Unsigned dw_op_number,
5427 Dwarf_Unsigned * dw_op_start_section_offset,
5428 Dwarf_Half * dw_macro_operator,
5429 Dwarf_Half * dw_forms_count,
5430 const Dwarf_Small ** dw_formcode_array,
5431 Dwarf_Error * dw_error);
5432
5471 Dwarf_Macro_Context dw_macro_context,
5472 Dwarf_Unsigned dw_op_number,
5473 Dwarf_Unsigned * dw_line_number,
5474 Dwarf_Unsigned * dw_index,
5475 Dwarf_Unsigned * dw_offset,
5476 Dwarf_Half * dw_forms_count,
5477 const char ** dw_macro_string,
5478 Dwarf_Error * dw_error);
5479
5508 Dwarf_Macro_Context dw_macro_context,
5509 Dwarf_Unsigned dw_op_number,
5510 Dwarf_Unsigned * dw_line_number,
5511 Dwarf_Unsigned * dw_name_index_to_line_tab,
5512 const char ** dw_src_file_name,
5513 Dwarf_Error * dw_error);
5514
5531 Dwarf_Macro_Context dw_macro_context,
5532 Dwarf_Unsigned dw_op_number,
5533 Dwarf_Unsigned * dw_target_offset,
5534 Dwarf_Error * dw_error);
5563DW_API char* dwarf_find_macro_value_start(char * dw_macro_string);
5564
5591 Dwarf_Off dw_macro_offset,
5592 Dwarf_Unsigned dw_maximum_count,
5593 Dwarf_Signed * dw_entry_count,
5594 Dwarf_Macro_Details ** dw_details,
5595 Dwarf_Error * dw_error);
5596
5640 Dwarf_Cie** dw_cie_data,
5641 Dwarf_Signed* dw_cie_element_count,
5642 Dwarf_Fde** dw_fde_data,
5643 Dwarf_Signed* dw_fde_element_count,
5644 Dwarf_Error* dw_error);
5655 Dwarf_Cie** dw_cie_data,
5656 Dwarf_Signed* dw_cie_element_count,
5657 Dwarf_Fde** dw_fde_data,
5658 Dwarf_Signed* dw_fde_element_count,
5659 Dwarf_Error* dw_error);
5660
5681 Dwarf_Cie * dw_cie_data,
5682 Dwarf_Signed dw_cie_element_count,
5683 Dwarf_Fde * dw_fde_data,
5684 Dwarf_Signed dw_fde_element_count);
5685
5714 Dwarf_Addr* dw_low_pc,
5715 Dwarf_Unsigned* dw_func_length,
5716 Dwarf_Small **dw_fde_bytes,
5717 Dwarf_Unsigned* dw_fde_byte_length,
5718 Dwarf_Off* dw_cie_offset,
5719 Dwarf_Signed* dw_cie_index,
5720 Dwarf_Off* dw_fde_offset,
5721 Dwarf_Error* dw_error);
5722
5729 Dwarf_Signed* dw_offset_into_exception_tables,
5730 Dwarf_Error* dw_error);
5731
5744 Dwarf_Cie * dw_cie_returned,
5745 Dwarf_Error* dw_error);
5746
5781 Dwarf_Unsigned * dw_bytes_in_cie,
5782 Dwarf_Small* dw_version,
5783 char ** dw_augmenter,
5784 Dwarf_Unsigned* dw_code_alignment_factor,
5785 Dwarf_Signed* dw_data_alignment_factor,
5786 Dwarf_Half* dw_return_address_register_rule,
5787 Dwarf_Small ** dw_initial_instructions,
5788 Dwarf_Unsigned* dw_initial_instructions_length,
5789 Dwarf_Half* dw_offset_size,
5790 Dwarf_Error* dw_error);
5791
5805 Dwarf_Signed* dw_index,
5806 Dwarf_Error * dw_error);
5807
5827 Dwarf_Small ** dw_outinstrs,
5828 Dwarf_Unsigned * dw_outlen,
5829 Dwarf_Error * dw_error);
5830
5864 Dwarf_Addr dw_pc_requested,
5865 Dwarf_Regtable3* dw_reg_table,
5866 Dwarf_Addr* dw_row_pc,
5867 Dwarf_Bool* dw_has_more_rows,
5868 Dwarf_Addr* dw_subsequent_pc,
5869 Dwarf_Error* dw_error);
5870
5881 Dwarf_Addr dw_pc_requested,
5882 Dwarf_Regtable3* dw_reg_table,
5883 Dwarf_Addr* dw_row_pc,
5884 Dwarf_Error* dw_error);
5885
5886/* See discussion of dw_value_type, libdwarf.h. */
5947 Dwarf_Half dw_table_column,
5948 Dwarf_Addr dw_pc_requested,
5949 Dwarf_Small * dw_value_type,
5950 Dwarf_Unsigned * dw_offset_relevant,
5951 Dwarf_Unsigned * dw_register,
5952 Dwarf_Signed * dw_offset,
5953 Dwarf_Block * dw_block_content,
5954 Dwarf_Addr * dw_row_pc_out,
5955 Dwarf_Bool * dw_has_more_rows,
5956 Dwarf_Addr * dw_subsequent_pc,
5957 Dwarf_Error * dw_error);
5958
5969 Dwarf_Half dw_table_column,
5970 Dwarf_Addr dw_pc_requested,
5971 Dwarf_Small * dw_value_type,
5972 Dwarf_Unsigned * dw_offset_relevant,
5973 Dwarf_Unsigned * dw_register,
5974 Dwarf_Unsigned * dw_offset,
5975 Dwarf_Block * dw_block_content,
5976 Dwarf_Addr * dw_row_pc_out,
5977 Dwarf_Bool * dw_has_more_rows,
5978 Dwarf_Addr * dw_subsequent_pc,
5979 Dwarf_Error * dw_error);
5980
6005 Dwarf_Addr dw_pc_requested,
6006 Dwarf_Small * dw_value_type,
6007 Dwarf_Unsigned* dw_offset_relevant,
6008 Dwarf_Unsigned* dw_register,
6009 Dwarf_Signed * dw_offset,
6010 Dwarf_Block * dw_block,
6011 Dwarf_Addr * dw_row_pc_out,
6012 Dwarf_Bool * dw_has_more_rows,
6013 Dwarf_Addr * dw_subsequent_pc,
6014 Dwarf_Error * dw_error);
6025 Dwarf_Addr dw_pc_requested,
6026 Dwarf_Small * dw_value_type,
6027 Dwarf_Unsigned* dw_offset_relevant,
6028 Dwarf_Unsigned* dw_register,
6029 Dwarf_Unsigned* dw_offset,
6030 Dwarf_Block * dw_block,
6031 Dwarf_Addr * dw_row_pc_out,
6032 Dwarf_Bool * dw_has_more_rows,
6033 Dwarf_Addr * dw_subsequent_pc,
6034 Dwarf_Error * dw_error);
6035
6045 Dwarf_Die dw_subr_die,
6046 Dwarf_Fde * dw_returned_fde,
6047 Dwarf_Error* dw_error);
6048
6056DW_API int dwarf_get_fde_n(Dwarf_Fde* dw_fde_data,
6057 Dwarf_Unsigned dw_fde_index,
6058 Dwarf_Fde * dw_returned_fde,
6059 Dwarf_Error * dw_error);
6060
6091DW_API int dwarf_get_fde_at_pc(Dwarf_Fde* dw_fde_data,
6092 Dwarf_Addr dw_pc_of_interest,
6093 Dwarf_Fde * dw_returned_fde,
6094 Dwarf_Addr * dw_lopc,
6095 Dwarf_Addr * dw_hipc,
6096 Dwarf_Error* dw_error);
6097
6118 Dwarf_Small ** dw_augdata,
6119 Dwarf_Unsigned * dw_augdata_len,
6120 Dwarf_Error* dw_error);
6121
6142 Dwarf_Small ** dw_augdata,
6143 Dwarf_Unsigned * dw_augdata_len,
6144 Dwarf_Error* dw_error);
6145
6180 Dwarf_Small * dw_instructionspointer,
6181 Dwarf_Unsigned dw_length_in_bytes,
6182 Dwarf_Frame_Instr_Head * dw_head,
6183 Dwarf_Unsigned * dw_instr_count,
6184 Dwarf_Error * dw_error);
6185
6259 Dwarf_Frame_Instr_Head dw_head,
6260 Dwarf_Unsigned dw_instr_index,
6261 Dwarf_Unsigned * dw_instr_offset_in_instrs,
6262 Dwarf_Small * dw_cfa_operation,
6263 const char ** dw_fields_description,
6264 Dwarf_Unsigned * dw_u0,
6265 Dwarf_Unsigned * dw_u1,
6266 Dwarf_Signed * dw_s0,
6267 Dwarf_Signed * dw_s1,
6268 Dwarf_Unsigned * dw_code_alignment_factor,
6269 Dwarf_Signed * dw_data_alignment_factor,
6270 Dwarf_Block * dw_expression_block,
6271 Dwarf_Error * dw_error);
6272
6295 Dwarf_Frame_Instr_Head dw_/* head*/,
6296 Dwarf_Unsigned dw_instr_index,
6297 Dwarf_Unsigned * dw_instr_offset_in_instrs,
6298 Dwarf_Small * dw_cfa_operation,
6299 const char ** dw_fields_description,
6300 Dwarf_Unsigned * dw_u0,
6301 Dwarf_Unsigned * dw_u1,
6302 Dwarf_Unsigned * dw_u2,
6303 Dwarf_Signed * dw_s0,
6304 Dwarf_Signed * dw_s1,
6305 Dwarf_Unsigned * dw_code_alignment_factor,
6306 Dwarf_Signed * dw_data_alignment_factor,
6307 Dwarf_Block * dw_expression_block,
6308 Dwarf_Error * dw_error);
6309
6319 dw_head);
6320
6338 Dwarf_Fde dw_in_fde,
6339 Dwarf_Off * dw_fde_off,
6340 Dwarf_Off * dw_cie_off,
6341 Dwarf_Error * dw_error);
6342
6358 Dwarf_Cie dw_in_cie,
6359 Dwarf_Off * dw_cie_off,
6360 Dwarf_Error * dw_error);
6361
6372 Dwarf_Debug dw_dbg,
6373 Dwarf_Half dw_value);
6386 Dwarf_Debug dw_dbg,
6387 Dwarf_Half dw_value);
6398 Dwarf_Debug dw_dbg,
6399 Dwarf_Half dw_value);
6400
6411 Dwarf_Debug dw_dbg,
6412 Dwarf_Half dw_value);
6423 Dwarf_Debug dw_dbg,
6424 Dwarf_Half dw_value);
6479 Dwarf_Unsigned dw_offset,
6480 Dwarf_Abbrev * dw_returned_abbrev,
6481 Dwarf_Unsigned* dw_length,
6482 Dwarf_Unsigned* dw_attr_count,
6483 Dwarf_Error* dw_error);
6484
6497 Dwarf_Half* dw_return_tag_number,
6498 Dwarf_Error* dw_error);
6499
6514 Dwarf_Unsigned* dw_return_code_number,
6515 Dwarf_Error* dw_error);
6516
6531 Dwarf_Signed* dw_return_flag,
6532 Dwarf_Error* dw_error);
6533
6568 Dwarf_Unsigned dw_indx,
6569 Dwarf_Bool dw_filter_outliers,
6570 Dwarf_Unsigned * dw_returned_attr_num,
6571 Dwarf_Unsigned * dw_returned_form,
6572 Dwarf_Signed * dw_returned_implicit_const,
6573 Dwarf_Off * dw_offset,
6574 Dwarf_Error * dw_error);
6575
6609DW_API int dwarf_get_str(Dwarf_Debug dw_dbg,
6610 Dwarf_Off dw_offset,
6611 char** dw_string,
6612 Dwarf_Signed * dw_strlen_of_string,
6613 Dwarf_Error* dw_error);
6614
6625/* Allows applications to print the .debug_str_offsets
6626 section.
6627 Beginning at starting_offset zero,
6628 returns data about the first table found.
6629 The value *next_table_offset is the value
6630 of the next table (if any), one byte past
6631 the end of the table whose data is returned..
6632 Returns DW_DLV_NO_ENTRY if the starting offset
6633 is past the end of valid data.
6634
6635 There is no guarantee that there are no non-0 nonsense
6636 bytes in the section outside of useful tables,
6637 so this can fail and return nonsense or
6638 DW_DLV_ERROR if such garbage exists.
6639*/
6640
6658 Dwarf_Str_Offsets_Table * dw_table_data,
6659 Dwarf_Error * dw_error);
6660
6679 Dwarf_Str_Offsets_Table dw_table_data,
6680 Dwarf_Error * dw_error);
6681
6716 Dwarf_Str_Offsets_Table dw_table_data,
6717 Dwarf_Unsigned * dw_unit_length,
6718 Dwarf_Unsigned * dw_unit_length_offset,
6719 Dwarf_Unsigned * dw_table_start_offset,
6720 Dwarf_Half * dw_entry_size,
6721 Dwarf_Half * dw_version,
6722 Dwarf_Half * dw_padding,
6723 Dwarf_Unsigned * dw_table_value_count,
6724 Dwarf_Error * dw_error);
6725
6746 Dwarf_Str_Offsets_Table dw_table_data,
6747 Dwarf_Unsigned dw_index_to_entry,
6748 Dwarf_Unsigned * dw_entry_value,
6749 Dwarf_Error * dw_error);
6750
6769 Dwarf_Str_Offsets_Table dw_table_data,
6770 Dwarf_Unsigned * dw_wasted_byte_count,
6771 Dwarf_Unsigned * dw_table_count,
6772 Dwarf_Error * dw_error);
6773
6792DW_API char* dwarf_errmsg(Dwarf_Error dw_error);
6800DW_API char* dwarf_errmsg_by_number(Dwarf_Unsigned dw_errornum);
6801
6816 Dwarf_Error * dw_error, char * dw_errmsg);
6817
6827 Dwarf_Error dw_error);
6869DW_API void dwarf_dealloc(Dwarf_Debug dw_dbg,
6870 void* dw_space, Dwarf_Unsigned dw_type);
6891 Dwarf_Half * dw_version,
6892 Dwarf_Small * dw_is_supplementary,
6893 char ** dw_filename,
6894 Dwarf_Unsigned * dw_checksum_len,
6895 Dwarf_Small ** dw_checksum,
6896 Dwarf_Error * dw_error);
6933 Dwarf_Off dw_starting_offset,
6934 Dwarf_Dnames_Head * dw_dn,
6935 Dwarf_Off * dw_offset_of_next_table,
6936 Dwarf_Error * dw_error);
6937
6946
6992 Dwarf_Unsigned dw_index,
6993 Dwarf_Unsigned *dw_abbrev_offset,
6994 Dwarf_Unsigned *dw_abbrev_code,
6995 Dwarf_Unsigned *dw_abbrev_tag,
6996 Dwarf_Unsigned dw_array_size,
6997 Dwarf_Half *dw_idxattr_array,
6998 Dwarf_Half *dw_form_array,
6999 Dwarf_Unsigned *dw_idxattr_count);
7000
7019 Dwarf_Unsigned * dw_comp_unit_count,
7020 Dwarf_Unsigned * dw_local_type_unit_count,
7021 Dwarf_Unsigned * dw_foreign_type_unit_count,
7022 Dwarf_Unsigned * dw_bucket_count,
7023 Dwarf_Unsigned * dw_name_count,
7024 /* The following are counted in bytes */
7025 Dwarf_Unsigned * dw_abbrev_table_size,
7026 Dwarf_Unsigned * dw_entry_pool_size,
7027 Dwarf_Unsigned * dw_augmentation_string_size,
7028 char ** dw_augmentation_string,
7029 Dwarf_Unsigned * dw_section_size,
7030 Dwarf_Half * dw_table_version,
7031 Dwarf_Half * dw_offset_size,
7032 Dwarf_Error * dw_error);
7033
7045 Dwarf_Unsigned * dw_header_offset,
7046 Dwarf_Unsigned * dw_cu_table_offset,
7047 Dwarf_Unsigned * dw_tu_local_offset,
7048 Dwarf_Unsigned * dw_foreign_tu_offset,
7049 Dwarf_Unsigned * dw_bucket_offset,
7050 Dwarf_Unsigned * dw_hashes_offset,
7051 Dwarf_Unsigned * dw_stringoffsets_offset,
7052 Dwarf_Unsigned * dw_entryoffsets_offset,
7053 Dwarf_Unsigned * dw_abbrev_table_offset,
7054 Dwarf_Unsigned * dw_entry_pool_offset,
7055 Dwarf_Error * dw_error);
7056
7086 const char * dw_type,
7087 Dwarf_Unsigned dw_index_number,
7088 Dwarf_Unsigned * dw_offset,
7089 Dwarf_Sig8 * dw_sig,
7090 Dwarf_Error * dw_error);
7091
7114 Dwarf_Unsigned dw_bucket_number,
7115 Dwarf_Unsigned * dw_index,
7116 Dwarf_Unsigned * dw_indexcount,
7117 Dwarf_Error * dw_error);
7118
7169 Dwarf_Unsigned dw_name_index,
7170 Dwarf_Unsigned * dw_bucket_number,
7171 Dwarf_Unsigned * dw_hash_value,
7172 Dwarf_Unsigned * dw_offset_to_debug_str,
7173 char * * dw_ptrtostr,
7174 Dwarf_Unsigned * dw_offset_in_entrypool,
7175 Dwarf_Unsigned * dw_abbrev_number,
7176 Dwarf_Half * dw_abbrev_tag,
7177 Dwarf_Unsigned dw_array_size,
7178 Dwarf_Half * dw_idxattr_array,
7179 Dwarf_Half * dw_form_array,
7180 Dwarf_Unsigned * dw_idxattr_count,
7181 Dwarf_Error * dw_error);
7182
7225 Dwarf_Unsigned dw_offset_in_entrypool,
7226 Dwarf_Unsigned * dw_abbrev_code,
7227 Dwarf_Half * dw_tag,
7228 Dwarf_Unsigned * dw_value_count,
7229 Dwarf_Unsigned * dw_index_of_abbrev,
7230 Dwarf_Unsigned * dw_offset_of_initial_value,
7231 Dwarf_Error * dw_error);
7232
7293 Dwarf_Unsigned dw_index_of_abbrev,
7294 Dwarf_Unsigned dw_offset_in_entrypool_of_values,
7295 Dwarf_Unsigned dw_arrays_length,
7296 Dwarf_Half *dw_array_idx_number,
7297 Dwarf_Half *dw_array_form,
7298 Dwarf_Unsigned *dw_array_of_offsets,
7299 Dwarf_Sig8 *dw_array_of_signatures,
7300 Dwarf_Bool *dw_single_cu,
7301 Dwarf_Unsigned *dw_cu_offset,
7302 Dwarf_Unsigned *dw_offset_of_next_entrypool,
7303 Dwarf_Error *dw_error);
7304
7332 Dwarf_Arange** dw_aranges,
7333 Dwarf_Signed * dw_arange_count,
7334 Dwarf_Error* dw_error);
7335
7355DW_API int dwarf_get_arange(Dwarf_Arange* dw_aranges,
7356 Dwarf_Unsigned dw_arange_count,
7357 Dwarf_Addr dw_address,
7358 Dwarf_Arange * dw_returned_arange,
7359 Dwarf_Error* dw_error);
7360
7374 Dwarf_Off * dw_return_offset,
7375 Dwarf_Error* dw_error);
7376
7390 Dwarf_Off * dw_return_cu_header_offset,
7391 Dwarf_Error* dw_error);
7392
7419 Dwarf_Unsigned* dw_segment,
7420 Dwarf_Unsigned* dw_segment_entry_size,
7421 Dwarf_Addr * dw_start,
7422 Dwarf_Unsigned* dw_length,
7423 Dwarf_Off * dw_cu_die_offset,
7424 Dwarf_Error * dw_error );
7475 Dwarf_Global** dw_globals,
7476 Dwarf_Signed * dw_number_of_globals,
7477 Dwarf_Error * dw_error);
7478
7479#define DW_GL_GLOBALS 0 /* .debug_pubnames and .debug_names */
7480#define DW_GL_PUBTYPES 1 /* .debug_pubtypes */
7481/* the following are IRIX ONLY */
7482#define DW_GL_FUNCS 2 /* .debug_funcnames */
7483#define DW_GL_TYPES 3 /* .debug_typenames */
7484#define DW_GL_VARS 4 /* .debug_varnames */
7485#define DW_GL_WEAKS 5 /* .debug_weaknames */
7509 Dwarf_Global** dw_pubtypes,
7510 Dwarf_Signed * dw_number_of_pubtypes,
7511 Dwarf_Error * dw_error);
7512
7539 int dw_requested_section,
7540 Dwarf_Global **dw_contents,
7541 Dwarf_Signed *dw_count,
7542 Dwarf_Error *dw_error);
7543
7555 Dwarf_Global* dw_global_like,
7556 Dwarf_Signed dw_count);
7557
7570DW_API int dwarf_globname(Dwarf_Global dw_global,
7571 char ** dw_returned_name,
7572 Dwarf_Error* dw_error);
7573
7587 Dwarf_Off * dw_die_offset,
7588 Dwarf_Error * dw_error);
7589
7605 Dwarf_Off* dw_cu_header_offset,
7606 Dwarf_Error* dw_error);
7607
7627 char ** dw_returned_name,
7628 Dwarf_Off* dw_die_offset,
7629 Dwarf_Off* dw_cu_die_offset,
7630 Dwarf_Error* dw_error);
7631
7645
7657 int * dw_category, /* DW_GL_GLOBAL for example */
7658 Dwarf_Off * dw_offset_pub_header,
7659 Dwarf_Unsigned * dw_length_size,
7660 Dwarf_Unsigned * dw_length_pub,
7661 Dwarf_Unsigned * dw_version,
7662 Dwarf_Unsigned * dw_header_info_offset,
7663 Dwarf_Unsigned * dw_info_length,
7664 Dwarf_Error * dw_error);
7665
7689 int dw_flag);
7690
7725 Dwarf_Bool dw_which_section,
7726 Dwarf_Gnu_Index_Head *dw_head,
7727 Dwarf_Unsigned *dw_index_block_count_out,
7728 Dwarf_Error *dw_error);
7776 Dwarf_Unsigned dw_number,
7777 Dwarf_Unsigned *dw_block_length,
7778 Dwarf_Half *dw_version,
7779 Dwarf_Unsigned *dw_offset_into_debug_info,
7780 Dwarf_Unsigned *dw_size_of_debug_info_area,
7781 Dwarf_Unsigned *dw_count_of_index_entries,
7782 Dwarf_Error *dw_error);
7783
7816 Dwarf_Gnu_Index_Head dw_head,
7817 Dwarf_Unsigned dw_blocknumber,
7818 Dwarf_Unsigned dw_entrynumber,
7819 Dwarf_Unsigned *dw_offset_in_debug_info,
7820 const char **dw_name_string,
7821 unsigned char *dw_flagbyte,
7822 unsigned char *dw_staticorglobal,
7823 unsigned char *dw_typeofentry,
7824 Dwarf_Error *dw_error);
7825
7887 Dwarf_Gdbindex * dw_gdbindexptr,
7888 Dwarf_Unsigned * dw_version,
7889 Dwarf_Unsigned * dw_cu_list_offset,
7890 Dwarf_Unsigned * dw_types_cu_list_offset,
7891 Dwarf_Unsigned * dw_address_area_offset,
7892 Dwarf_Unsigned * dw_symbol_table_offset,
7893 Dwarf_Unsigned * dw_constant_pool_offset,
7894 Dwarf_Unsigned * dw_section_size,
7895 const char ** dw_section_name,
7896 Dwarf_Error * dw_error);
7897
7905DW_API void dwarf_dealloc_gdbindex(Dwarf_Gdbindex dw_gdbindexptr);
7906
7918 Dwarf_Gdbindex dw_gdbindexptr,
7919 Dwarf_Unsigned * dw_list_length,
7920 Dwarf_Error * dw_error);
7921
7940 Dwarf_Gdbindex dw_gdbindexptr,
7941 Dwarf_Unsigned dw_entryindex,
7942 Dwarf_Unsigned * dw_cu_offset,
7943 Dwarf_Unsigned * dw_cu_length,
7944 Dwarf_Error * dw_error);
7945
7958 Dwarf_Gdbindex dw_gdbindexptr,
7959 Dwarf_Unsigned * dw_types_list_length,
7960 Dwarf_Error * dw_error);
7961
7962/* entryindex: 0 to types_list_length -1 */
7985 Dwarf_Gdbindex dw_gdbindexptr,
7986 Dwarf_Unsigned dw_types_entryindex,
7987 Dwarf_Unsigned * dw_cu_offset,
7988 Dwarf_Unsigned * dw_tu_offset,
7989 Dwarf_Unsigned * dw_type_signature,
7990 Dwarf_Error * dw_error);
7991
8007 Dwarf_Gdbindex dw_gdbindexptr,
8008 Dwarf_Unsigned * dw_addressarea_list_length,
8009 Dwarf_Error * dw_error);
8010
8030 Dwarf_Gdbindex dw_gdbindexptr,
8031 Dwarf_Unsigned dw_entryindex,
8032 Dwarf_Unsigned * dw_low_address,
8033 Dwarf_Unsigned * dw_high_address,
8034 Dwarf_Unsigned * dw_cu_index,
8035 Dwarf_Error * dw_error);
8036
8050 Dwarf_Gdbindex dw_gdbindexptr,
8051 Dwarf_Unsigned * dw_symtab_list_length,
8052 Dwarf_Error * dw_error);
8053
8074 Dwarf_Gdbindex dw_gdbindexptr,
8075 Dwarf_Unsigned dw_entryindex,
8076 Dwarf_Unsigned * dw_string_offset,
8077 Dwarf_Unsigned * dw_cu_vector_offset,
8078 Dwarf_Error * dw_error);
8079
8098 Dwarf_Gdbindex dw_gdbindexptr,
8099 Dwarf_Unsigned dw_cuvector_offset,
8100 Dwarf_Unsigned * dw_innercount,
8101 Dwarf_Error * dw_error);
8102
8120 Dwarf_Gdbindex dw_gdbindexptr,
8121 Dwarf_Unsigned dw_cuvector_offset_in,
8122 Dwarf_Unsigned dw_innerindex,
8123 Dwarf_Unsigned * dw_field_value,
8124 Dwarf_Error * dw_error);
8125
8149 Dwarf_Gdbindex dw_gdbindexptr,
8150 Dwarf_Unsigned dw_field_value,
8151 Dwarf_Unsigned * dw_cu_index,
8152 Dwarf_Unsigned * dw_symbol_kind,
8153 Dwarf_Unsigned * dw_is_static,
8154 Dwarf_Error * dw_error);
8155
8172 Dwarf_Gdbindex dw_gdbindexptr,
8173 Dwarf_Unsigned dw_stringoffset,
8174 const char ** dw_string_ptr,
8175 Dwarf_Error * dw_error);
8217 const char * dw_section_type, /* "tu" or "cu" */
8218 Dwarf_Xu_Index_Header * dw_xuhdr,
8219 Dwarf_Unsigned * dw_version_number,
8220 Dwarf_Unsigned * dw_section_count,
8221 Dwarf_Unsigned * dw_units_count,
8222 Dwarf_Unsigned * dw_hash_slots_count,
8223 const char ** dw_sect_name,
8224 Dwarf_Error * dw_error);
8225
8235
8251 Dwarf_Xu_Index_Header dw_xuhdr,
8252 const char ** dw_typename,
8253 const char ** dw_sectionname,
8254 Dwarf_Error * dw_error);
8255
8288 Dwarf_Unsigned dw_index,
8289 Dwarf_Sig8 * dw_hash_value,
8290 Dwarf_Unsigned * dw_index_to_sections,
8291 Dwarf_Error * dw_error);
8292
8293/* Columns 0 to L-1, valid. */
8317 Dwarf_Unsigned dw_column_index,
8318 Dwarf_Unsigned* dw_SECT_number,
8319 const char ** dw_SECT_name,
8320 Dwarf_Error * dw_error);
8321
8351 Dwarf_Xu_Index_Header dw_xuhdr,
8352 Dwarf_Unsigned dw_row_index,
8353 Dwarf_Unsigned dw_column_index,
8354 Dwarf_Unsigned* dw_sec_offset,
8355 Dwarf_Unsigned* dw_sec_size,
8356 Dwarf_Error * dw_error);
8357
8380 Dwarf_Debug_Fission_Per_CU * dw_percu_out,
8381 Dwarf_Error * dw_error);
8382
8401 Dwarf_Sig8 * dw_hash_sig,
8402 const char * dw_cu_type,
8403 Dwarf_Debug_Fission_Per_CU * dw_percu_out,
8404 Dwarf_Error * dw_error);
8405
8406/* END debugfission dwp .debug_cu_index
8407 and .debug_tu_index meaningful operations. */
8408
8503 char ** dw_debuglink_path_returned,
8504 unsigned char ** dw_crc_returned,
8505 char ** dw_debuglink_fullpath_returned,
8506 unsigned int * dw_debuglink_path_length_returned,
8507 unsigned int * dw_buildid_type_returned,
8508 char ** dw_buildid_owner_name_returned,
8509 unsigned char ** dw_buildid_returned,
8510 unsigned int * dw_buildid_length_returned,
8511 char *** dw_paths_returned,
8512 unsigned int * dw_paths_length_returned,
8513 Dwarf_Error* dw_error);
8514
8547DW_API int dwarf_suppress_debuglink_crc(int dw_suppress);
8548
8568 const char * dw_pathname,
8569 Dwarf_Error* dw_error);
8570
8598DW_API int dwarf_crc32(Dwarf_Debug dw_dbg,
8599 unsigned char * dw_crcbuf,
8600 Dwarf_Error * dw_error);
8601
8625DW_API unsigned int dwarf_basic_crc32(const unsigned char * dw_buf,
8626 unsigned long dw_len,
8627 unsigned int dw_init);
8646#define DW_HARMLESS_ERROR_CIRCULAR_LIST_DEFAULT_SIZE 4
8647
8691 unsigned int dw_count,
8692 const char ** dw_errmsg_ptrs_array,
8693 unsigned int * dw_newerr_count);
8694
8716 Dwarf_Debug dw_dbg,
8717 unsigned int dw_maxcount);
8718
8731 char * dw_newerror);
8767DW_API int dwarf_get_ACCESS_name(unsigned int dw_val_in,
8768 const char ** dw_s_out);
8771DW_API int dwarf_get_ADDR_name(unsigned int dw_val_in,
8772 const char ** dw_s_out);
8775DW_API int dwarf_get_AT_name(unsigned int dw_val_in,
8776 const char ** dw_s_out);
8779DW_API int dwarf_get_ATCF_name(unsigned int dw_val_in,
8780 const char ** dw_s_out);
8783DW_API int dwarf_get_ATE_name(unsigned int dw_val_in,
8784 const char ** dw_s_out);
8787DW_API int dwarf_get_CC_name(unsigned int dw_val_in,
8788 const char ** dw_s_out);
8791DW_API int dwarf_get_CFA_name(unsigned int dw_val_in,
8792 const char ** dw_s_out);
8795DW_API int dwarf_get_children_name(unsigned int dw_val_in,
8796 const char ** dw_s_out);
8799DW_API int dwarf_get_CHILDREN_name(unsigned int dw_val_in,
8800 const char ** dw_s_out);
8803DW_API int dwarf_get_DEFAULTED_name(unsigned int dw_val_in,
8804 const char ** dw_s_out);
8807DW_API int dwarf_get_DS_name(unsigned int dw_val_in,
8808 const char ** dw_s_out);
8811DW_API int dwarf_get_DSC_name(unsigned int dw_val_in,
8812 const char ** dw_s_out);
8817DW_API int dwarf_get_GNUIKIND_name(unsigned int dw_val_in,
8818 const char ** dw_s_out);
8823DW_API int dwarf_get_EH_name(unsigned int dw_val_in,
8824 const char ** dw_s_out);
8827DW_API int dwarf_get_END_name(unsigned int dw_val_in,
8828 const char ** dw_s_out);
8831DW_API int dwarf_get_FORM_name(unsigned int dw_val_in,
8832 const char ** dw_s_out);
8839DW_API int dwarf_get_FRAME_name(unsigned int dw_val_in,
8840 const char ** dw_s_out);
8845DW_API int dwarf_get_GNUIVIS_name(unsigned int dw_val_in,
8846 const char ** dw_s_out);
8847
8850DW_API int dwarf_get_ID_name(unsigned int dw_val_in,
8851 const char ** dw_s_out);
8854DW_API int dwarf_get_IDX_name(unsigned int dw_val_in,
8855 const char ** dw_s_out);
8858DW_API int dwarf_get_INL_name(unsigned int dw_val_in,
8859 const char ** dw_s_out);
8862DW_API int dwarf_get_ISA_name(unsigned int dw_val_in,
8863 const char ** dw_s_out);
8866DW_API int dwarf_get_LANG_name(unsigned int dw_val_in,
8867 const char ** dw_s_out);
8870DW_API int dwarf_get_LLE_name(unsigned int dw_val_in,
8871 const char ** dw_s_out);
8877DW_API int dwarf_get_LLEX_name(unsigned int dw_val_in,
8878 const char ** dw_s_out );
8879
8882DW_API int dwarf_get_LNAME_name(unsigned int dw_val_in,
8883 const char ** dw_s_out);
8886DW_API int dwarf_get_LNCT_name(unsigned int dw_val_in,
8887 const char ** dw_s_out);
8890DW_API int dwarf_get_LNE_name(unsigned int dw_val_in,
8891 const char ** dw_s_out);
8894DW_API int dwarf_get_LNS_name(unsigned int dw_val_in,
8895 const char ** dw_s_out);
8900DW_API int dwarf_get_MACINFO_name(unsigned int dw_val_in,
8901 const char ** dw_s_out);
8906DW_API int dwarf_get_MACRO_name(unsigned int dw_val_in,
8907 const char ** dw_s_out);
8910DW_API int dwarf_get_OP_name(unsigned int dw_val_in,
8911 const char ** dw_s_out);
8914DW_API int dwarf_get_ORD_name(unsigned int dw_val_in,
8915 const char ** dw_s_out);
8918DW_API int dwarf_get_RLE_name(unsigned int dw_val_in,
8919 const char ** dw_s_out);
8922DW_API int dwarf_get_SECT_name(unsigned int dw_val_in,
8923 const char ** dw_s_out);
8926DW_API int dwarf_get_TAG_name(unsigned int dw_val_in,
8927 const char ** dw_s_out);
8930DW_API int dwarf_get_UT_name(unsigned int dw_val_in,
8931 const char ** dw_s_out);
8934DW_API int dwarf_get_VIRTUALITY_name(unsigned int dw_val_in,
8935 const char ** dw_s_out);
8938DW_API int dwarf_get_VIS_name(unsigned int dw_val_in,
8939 const char ** dw_s_out);
8940
8952 const char ** dw_s_out);
9007 Dwarf_Bool dw_is_info,
9008 const char **dw_sec_name,
9009 Dwarf_Error *dw_error);
9010
9018 const char ** dw_sec_name,
9019 Dwarf_Error * dw_error);
9020
9024 const char ** dw_sec_name_out,
9025 Dwarf_Error * dw_err);
9026
9070 const char * dw_std_section_name,
9071 const char ** dw_actual_sec_name_out,
9072 Dwarf_Small * dw_marked_zcompressed,
9073 Dwarf_Small * dw_marked_zlib_compressed,
9074 Dwarf_Small * dw_marked_shf_compressed,
9075 Dwarf_Unsigned * dw_compressed_length,
9076 Dwarf_Unsigned * dw_uncompressed_length,
9077 Dwarf_Error * dw_error);
9078
9084 const char ** dw_section_name_out,
9085 Dwarf_Error * dw_error);
9086
9093 const char ** dw_section_name_out,
9094 Dwarf_Error * dw_error);
9095
9100 const char ** dw_section_name_out,
9101 Dwarf_Error * dw_error);
9102
9107 const char ** dw_section_name_out,
9108 Dwarf_Error * dw_error);
9109
9110/* These two get the offset or address size as defined
9111 by the object format (not by DWARF). */
9118 Dwarf_Half * dw_offset_size,
9119 Dwarf_Error * dw_error);
9120
9127 Dwarf_Half * dw_addr_size,
9128 Dwarf_Error * dw_error);
9129
9134 const char ** dw_section_name_out,
9135 Dwarf_Error * dw_error);
9136
9141 const char ** dw_section_name_out,
9142 Dwarf_Error * dw_error);
9143
9158 const char ** dw_section_name_out,
9159 Dwarf_Error * dw_error);
9160
9208 const char * dw_section_name,
9209 Dwarf_Addr * dw_section_addr,
9210 Dwarf_Unsigned* dw_section_size,
9211 Dwarf_Unsigned* dw_section_flags,
9212 Dwarf_Unsigned* dw_section_offset,
9213 Dwarf_Error * dw_error);
9214
9228 const char * dw_section_name,
9229 Dwarf_Addr * dw_section_addr,
9230 Dwarf_Unsigned* dw_section_size,
9231 Dwarf_Error * dw_error);
9232
9279 int dw_section_index,
9280 const char ** dw_section_name,
9281 Dwarf_Addr* dw_section_addr,
9282 Dwarf_Unsigned* dw_section_size,
9283 Dwarf_Unsigned* dw_section_flags,
9284 Dwarf_Unsigned* dw_section_offset,
9285 Dwarf_Error* dw_error);
9286
9300 int dw_section_index,
9301 const char ** dw_section_name,
9302 Dwarf_Addr* dw_section_addr,
9303 Dwarf_Unsigned* dw_section_size,
9304 Dwarf_Error* dw_error);
9305
9393 Dwarf_Small *dw_ftype,
9394 Dwarf_Small *dw_obj_pointersize,
9395 Dwarf_Bool *dw_obj_is_big_endian,
9396 Dwarf_Unsigned *dw_obj_machine, /*Elf e_machine */
9397 Dwarf_Unsigned *dw_obj_type, /* Elf e_type */
9398 Dwarf_Unsigned *dw_obj_flags,
9399 Dwarf_Small *dw_path_source,
9400 Dwarf_Unsigned *dw_ub_offset,
9401 Dwarf_Unsigned *dw_ub_count,
9402 Dwarf_Unsigned *dw_ub_index,
9403 Dwarf_Unsigned *dw_comdat_groupnumber);
9404
9413 Dwarf_Small *dw_ftype,
9414 Dwarf_Small *dw_obj_pointersize,
9415 Dwarf_Bool *dw_obj_is_big_endian,
9416 Dwarf_Unsigned *dw_obj_machine, /*architecture*/
9417 Dwarf_Unsigned *dw_obj_flags,
9418 Dwarf_Small *dw_path_source,
9419 Dwarf_Unsigned *dw_ub_offset,
9420 Dwarf_Unsigned *dw_ub_count,
9421 Dwarf_Unsigned *dw_ub_index,
9422 Dwarf_Unsigned *dw_comdat_groupnumber);
9423
9436
9456 Dwarf_Unsigned * dw_debug_info_size,
9457 Dwarf_Unsigned * dw_debug_abbrev_size,
9458 Dwarf_Unsigned * dw_debug_line_size,
9459 Dwarf_Unsigned * dw_debug_loc_size,
9460 Dwarf_Unsigned * dw_debug_aranges_size,
9461
9462 Dwarf_Unsigned * dw_debug_macinfo_size,
9463 Dwarf_Unsigned * dw_debug_pubnames_size,
9464 Dwarf_Unsigned * dw_debug_str_size,
9465 Dwarf_Unsigned * dw_debug_frame_size,
9466 Dwarf_Unsigned * dw_debug_ranges_size,
9467
9468 Dwarf_Unsigned * dw_debug_pubtypes_size,
9469 Dwarf_Unsigned * dw_debug_types_size,
9470 Dwarf_Unsigned * dw_debug_macro_size,
9471 Dwarf_Unsigned * dw_debug_str_offsets_size,
9472 Dwarf_Unsigned * dw_debug_sup_size,
9473
9474 Dwarf_Unsigned * dw_debug_cu_index_size,
9475 Dwarf_Unsigned * dw_debug_tu_index_size,
9476 Dwarf_Unsigned * dw_debug_names_size,
9477 Dwarf_Unsigned * dw_debug_loclists_size,
9478 Dwarf_Unsigned * dw_debug_rnglists_size);
9528 Dwarf_Unsigned *dw_section_count_out,
9529 Dwarf_Unsigned *dw_group_count_out,
9530 Dwarf_Unsigned *dw_selected_group_out,
9531 Dwarf_Unsigned *dw_map_entry_count_out,
9532 Dwarf_Error *dw_error);
9533
9565 Dwarf_Unsigned dw_map_entry_count,
9566 Dwarf_Unsigned *dw_group_numbers_array,
9567 Dwarf_Unsigned *dw_sec_numbers_array,
9568 const char **dw_sec_names_array,
9569 Dwarf_Error *dw_error);
9584DW_API int dwarf_encode_leb128(Dwarf_Unsigned dw_val,
9585 int *dw_nbytes,
9586 char *dw_space,
9587 int dw_splen);
9588DW_API int dwarf_encode_signed_leb128(Dwarf_Signed dw_val,
9589 int *dw_nbytes,
9590 char *dw_space,
9591 int dw_splen);
9592/* Same for LEB decoding routines.
9593 caller sets endptr to an address one past the last valid
9594 address the library should be allowed to
9595 access. */
9596DW_API int dwarf_decode_leb128(char *dw_leb,
9597 Dwarf_Unsigned *dw_leblen,
9598 Dwarf_Unsigned *dw_outval,
9599 char *dw_endptr);
9600DW_API int dwarf_decode_signed_leb128(char *dw_leb,
9601 Dwarf_Unsigned *dw_leblen,
9602 Dwarf_Signed *dw_outval,
9603 char *dw_endptr);
9620DW_API const char * dwarf_package_version(void);
9621
9637DW_API int dwarf_set_stringcheck(int dw_stringcheck);
9638
9660DW_API int dwarf_set_reloc_application(int dw_apply);
9661
9687 (void *, const void *, unsigned long);
9688
9689/* A global flag in libdwarf. Applies to all Dwarf_Debug */
9690DW_API extern Dwarf_Cmdline_Options dwarf_cmdline_options;
9691
9707 Dwarf_Cmdline_Options dw_dd_options);
9708
9727DW_API int dwarf_set_de_alloc_flag(int dw_v);
9728
9757DW_API int dwarf_library_allow_dup_attr(int dw_v);
9758
9781 Dwarf_Debug dw_dbg,
9782 Dwarf_Small dw_value);
9783
9810 Dwarf_Debug dw_dbg,
9811 Dwarf_Unsigned *dw_current_index,
9812 Dwarf_Unsigned *dw_available_count);
9813
9832DW_API int dwarf_object_detector_path_b(const char * dw_path,
9833 char *dw_outpath_buffer,
9834 unsigned long dw_outpathlen,
9835 char ** dw_gl_pathnames,
9836 unsigned int dw_gl_pathcount,
9837 unsigned int *dw_ftype,
9838 unsigned int *dw_endian,
9839 unsigned int *dw_offsetsize,
9840 Dwarf_Unsigned *dw_filesize,
9841 unsigned char *dw_pathsource,
9842 int * dw_errcode);
9843
9844/* Solely looks for dSYM */
9845DW_API int dwarf_object_detector_path_dSYM(const char * dw_path,
9846 char * dw_outpath,
9847 unsigned long dw_outpath_len,
9848 char ** dw_gl_pathnames,
9849 unsigned int dw_gl_pathcount,
9850 unsigned int *dw_ftype,
9851 unsigned int *dw_endian,
9852 unsigned int *dw_offsetsize,
9853 Dwarf_Unsigned *dw_filesize,
9854 unsigned char *dw_pathsource,
9855 int * dw_errcode);
9856
9857DW_API int dwarf_object_detector_fd(int dw_fd,
9858 unsigned int *dw_ftype,
9859 unsigned int *dw_endian,
9860 unsigned int *dw_offsetsize,
9861 Dwarf_Unsigned *dw_filesize,
9862 int *dw_errcode);
9928 enum Dwarf_Sec_Alloc_Pref dw_load_preference);
9929
9970 Dwarf_Unsigned *dw_mmap_count,
9971 Dwarf_Unsigned *dw_mmap_size,
9972 Dwarf_Unsigned *dw_malloc_count,
9973 Dwarf_Unsigned *dw_malloc_size);
9977#ifdef __cplusplus
9978}
9979#endif /* __cplusplus */
9980#endif /* _LIBDWARF_H */
int dwarf_get_ACCESS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ACCESS_name
int dwarf_get_OP_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_OP_name
int dwarf_get_RLE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_RLE_name
int dwarf_get_ADDR_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ADDR_name
int dwarf_get_ATCF_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_AT_name
int dwarf_get_FORM_CLASS_name(enum Dwarf_Form_Class dw_fc, const char **dw_s_out)
dwarf_get_FORM_CLASS_name is for a libdwarf extension. Not defined by the DWARF standard though the c...
int dwarf_get_END_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_END_name
int dwarf_get_LLE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LLE_name
int dwarf_get_VIRTUALITY_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_VIRTUALITY_name
int dwarf_get_MACRO_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_MACRO_name
int dwarf_get_CHILDREN_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CHILDREN_name
int dwarf_get_SECT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_SECT_name
int dwarf_get_EH_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_EH_name
int dwarf_get_DEFAULTED_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DEFAULTED_name
int dwarf_get_ATE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ATE_name
int dwarf_get_DS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DS_name
int dwarf_get_LNAME_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNAME
int dwarf_get_FORM_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_FORM_name
int dwarf_get_MACINFO_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_MACINFO_name
int dwarf_get_TAG_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_TAG_name
int dwarf_get_LANG_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LANG_name
int dwarf_get_IDX_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_IDX_name
int dwarf_get_GNUIKIND_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_GNUIKIND_name - libdwarf invention
int dwarf_get_DSC_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_DSC_name
int dwarf_get_children_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_children_namea - historic misspelling.
int dwarf_get_VIS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_VIS_name
int dwarf_get_ISA_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ISA_name
int dwarf_get_LNE_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNE_name
int dwarf_get_ID_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ID_name
int dwarf_get_GNUIVIS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_GNUIVIS_name - a libdwarf invention
int dwarf_get_CC_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CC_name
int dwarf_get_ORD_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_ORD_name
int dwarf_get_LNCT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNCT_name
int dwarf_get_AT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_AT_name
int dwarf_get_CFA_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_CFA_name
int dwarf_get_UT_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_UT_name
int dwarf_get_LLEX_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LLEX_name - a GNU extension.
int dwarf_get_LNS_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_LNS_name
int dwarf_get_FRAME_name(unsigned int dw_val_in, const char **dw_s_out)
This is a set of register names.
int dwarf_get_INL_name(unsigned int dw_val_in, const char **dw_s_out)
dwarf_get_INL_name
int dwarf_get_abbrev_code(Dwarf_Abbrev dw_abbrev, Dwarf_Unsigned *dw_return_code_number, Dwarf_Error *dw_error)
Get Abbreviation Code.
int dwarf_get_abbrev(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_offset, Dwarf_Abbrev *dw_returned_abbrev, Dwarf_Unsigned *dw_length, Dwarf_Unsigned *dw_attr_count, Dwarf_Error *dw_error)
Reading Abbreviation Data.
int dwarf_get_abbrev_tag(Dwarf_Abbrev dw_abbrev, Dwarf_Half *dw_return_tag_number, Dwarf_Error *dw_error)
Get abbreviation tag.
int dwarf_get_abbrev_children_flag(Dwarf_Abbrev dw_abbrev, Dwarf_Signed *dw_return_flag, Dwarf_Error *dw_error)
Get Abbrev Children Flag.
int dwarf_get_abbrev_entry_b(Dwarf_Abbrev dw_abbrev, Dwarf_Unsigned dw_indx, Dwarf_Bool dw_filter_outliers, Dwarf_Unsigned *dw_returned_attr_num, Dwarf_Unsigned *dw_returned_form, Dwarf_Signed *dw_returned_implicit_const, Dwarf_Off *dw_offset, Dwarf_Error *dw_error)
Get Abbrev Entry Details.
struct Dwarf_Xu_Index_Header_s * Dwarf_Xu_Index_Header
Definition libdwarf.h:698
struct Dwarf_Fde_s * Dwarf_Fde
Definition libdwarf.h:676
struct Dwarf_Weak_s * Dwarf_Weak
Definition libdwarf.h:658
struct Dwarf_Regtable3_s Dwarf_Regtable3
struct Dwarf_Debug_Addr_Table_s * Dwarf_Debug_Addr_Table
Definition libdwarf.h:618
struct Dwarf_Debug_s * Dwarf_Debug
Definition libdwarf.h:603
struct Dwarf_Regtable_Entry3_s Dwarf_Regtable_Entry3
struct Dwarf_Die_s * Dwarf_Die
Definition libdwarf.h:613
struct Dwarf_Dnames_Head_s * Dwarf_Dnames_Head
Definition libdwarf.h:714
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:692
struct Dwarf_Line_s * Dwarf_Line
Definition libdwarf.h:624
struct Dwarf_Abbrev_s * Dwarf_Abbrev
Definition libdwarf.h:670
struct Dwarf_Func_s * Dwarf_Func
Definition libdwarf.h:646
struct Dwarf_Block_s Dwarf_Block
struct Dwarf_Rnglists_Head_s * Dwarf_Rnglists_Head
Definition libdwarf.h:909
struct Dwarf_Global_s * Dwarf_Global
Definition libdwarf.h:630
struct Dwarf_Section_s * Dwarf_Section
Definition libdwarf.h:608
struct Dwarf_Frame_Instr_Head_s * Dwarf_Frame_Instr_Head
Definition libdwarf.h:370
struct Dwarf_Error_s * Dwarf_Error
Definition libdwarf.h:597
struct Dwarf_Gnu_Index_Head_s * Dwarf_Gnu_Index_Head
Definition libdwarf.h:357
Dwarf_Sec_Alloc_Pref
Definition libdwarf.h:808
struct Dwarf_Macro_Context_s * Dwarf_Macro_Context
Definition libdwarf.h:707
struct Dwarf_Line_Context_s * Dwarf_Line_Context
Definition libdwarf.h:702
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:639
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:681
struct Dwarf_Var_s * Dwarf_Var
Definition libdwarf.h:652
void(* Dwarf_Handler)(Dwarf_Error dw_error, Dwarf_Ptr dw_errarg)
Definition libdwarf.h:723
struct Dwarf_Arange_s * Dwarf_Arange
Definition libdwarf.h:687
struct Dwarf_Attribute_s * Dwarf_Attribute
Definition libdwarf.h:663
int dwarf_get_arange_info_b(Dwarf_Arange dw_arange, Dwarf_Unsigned *dw_segment, Dwarf_Unsigned *dw_segment_entry_size, Dwarf_Addr *dw_start, Dwarf_Unsigned *dw_length, Dwarf_Off *dw_cu_die_offset, Dwarf_Error *dw_error)
Get the data in an arange entry.
int dwarf_get_aranges(Dwarf_Debug dw_dbg, Dwarf_Arange **dw_aranges, Dwarf_Signed *dw_arange_count, Dwarf_Error *dw_error)
Get access to CUs given code addresses.
int dwarf_get_cu_die_offset(Dwarf_Arange dw_arange, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Given an arange return its CU DIE offset.
int dwarf_get_arange_cu_header_offset(Dwarf_Arange dw_arange, Dwarf_Off *dw_return_cu_header_offset, Dwarf_Error *dw_error)
Given an arange return its CU header offset.
int dwarf_get_arange(Dwarf_Arange *dw_aranges, Dwarf_Unsigned dw_arange_count, Dwarf_Addr dw_address, Dwarf_Arange *dw_returned_arange, Dwarf_Error *dw_error)
Find a range given a code address.
enum Dwarf_Form_Class dwarf_get_form_class(Dwarf_Half dw_version, Dwarf_Half dw_attrnum, Dwarf_Half dw_offset_size, Dwarf_Half dw_form)
Return the FORM_CLASS applicable. Four pieces of information are necessary to get the correct FORM_CL...
int dwarf_formaddr(Dwarf_Attribute dw_attr, Dwarf_Addr *dw_returned_addr, Dwarf_Error *dw_error)
Return the address when the attribute has form address.
void dwarf_dealloc_uncompressed_block(Dwarf_Debug dw_dbg, void *dw_value_array)
Dealloc what dwarf_uncompress_integer_block_a allocated.
int dwarf_discr_list(Dwarf_Debug dw_dbg, Dwarf_Small *dw_blockpointer, Dwarf_Unsigned dw_blocklen, Dwarf_Dsc_Head *dw_dsc_head_out, Dwarf_Unsigned *dw_dsc_array_length_out, Dwarf_Error *dw_error)
Return an array of discriminant values.
int dwarf_attr_offset(Dwarf_Die dw_die, Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Return the offset of an attribute in its section.
int dwarf_global_formref_b(Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Bool *dw_offset_is_info, Dwarf_Error *dw_error)
Return the section-relative offset of a Dwarf_Attribute.
int dwarf_formexprloc(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_return_exprlen, Dwarf_Ptr *dw_block_ptr, Dwarf_Error *dw_error)
Return a pointer-to and length-of a block of data.
int dwarf_formudata(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_returned_val, Dwarf_Error *dw_error)
Return an unsigned value.
void dwarf_dealloc_attribute(Dwarf_Attribute dw_attr)
Dealloc a Dwarf_Attribute When this call returns the dw_attr is a stale pointer.
int dwarf_uncompress_integer_block_a(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_input_length_in_bytes, void *dw_input_block, Dwarf_Unsigned *dw_value_count, Dwarf_Signed **dw_value_array, Dwarf_Error *dw_error)
Uncompress a block of sleb numbers It's not much of a compression so not much of an uncompression....
int dwarf_whatform_direct(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_initial_form, Dwarf_Error *dw_error)
Return the initial form of the Dwarf_Attribute.
int dwarf_formref(Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Bool *dw_is_info, Dwarf_Error *dw_error)
Retrieve the CU-relative offset of a reference.
int dwarf_convert_to_global_offset(Dwarf_Attribute dw_attr, Dwarf_Off dw_offset, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Convert local offset to global offset.
int dwarf_get_debug_addr_index(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_return_index, Dwarf_Error *dw_error)
Get the addr index of a Dwarf_Attribute.
int dwarf_formdata16(Dwarf_Attribute dw_attr, Dwarf_Form_Data16 *dw_returned_val, Dwarf_Error *dw_error)
Return a 16 byte Dwarf_Form_Data16 value.
int dwarf_formblock(Dwarf_Attribute dw_attr, Dwarf_Block **dw_returned_block, Dwarf_Error *dw_error)
Return an allocated filled-in Form_Block.
int dwarf_formsig8(Dwarf_Attribute dw_attr, Dwarf_Sig8 *dw_returned_sig_bytes, Dwarf_Error *dw_error)
Return an 8 byte reference form for DW_FORM_ref_sig8.
int dwarf_discr_entry_s(Dwarf_Dsc_Head dw_dsc, Dwarf_Unsigned dw_entrynum, Dwarf_Half *dw_out_type, Dwarf_Signed *dw_out_discr_low, Dwarf_Signed *dw_out_discr_high, Dwarf_Error *dw_error)
Access to a single signed discriminant list entry.
int dwarf_formsdata(Dwarf_Attribute dw_attr, Dwarf_Signed *dw_returned_val, Dwarf_Error *dw_error)
Return a signed value.
int dwarf_whatform(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_final_form, Dwarf_Error *dw_error)
Return the form of the Dwarf_Attribute.
int dwarf_formstring(Dwarf_Attribute dw_attr, char **dw_returned_string, Dwarf_Error *dw_error)
Return a pointer to a string.
int dwarf_attrlist(Dwarf_Die dw_die, Dwarf_Attribute **dw_attrbuf, Dwarf_Signed *dw_attrcount, Dwarf_Error *dw_error)
Gets the full list of attributes.
int dwarf_whatattr(Dwarf_Attribute dw_attr, Dwarf_Half *dw_returned_attrnum, Dwarf_Error *dw_error)
Return the attribute number of the Dwarf_Attribute.
int dwarf_hasform(Dwarf_Attribute dw_attr, Dwarf_Half dw_form, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Sets TRUE if a Dwarf_Attribute has the indicated FORM.
int dwarf_get_debug_str_index(Dwarf_Attribute dw_attr, Dwarf_Unsigned *dw_return_index, Dwarf_Error *dw_error)
Return a string index.
int dwarf_discr_entry_u(Dwarf_Dsc_Head dw_dsc, Dwarf_Unsigned dw_entrynum, Dwarf_Half *dw_out_type, Dwarf_Unsigned *dw_out_discr_low, Dwarf_Unsigned *dw_out_discr_high, Dwarf_Error *dw_error)
Access a single unsigned discriminant list entry.
int dwarf_formsig8_const(Dwarf_Attribute dw_attr, Dwarf_Sig8 *dw_returned_sig_bytes, Dwarf_Error *dw_error)
Return an 8 byte reference form for DW_FORM_data8.
int dwarf_global_formref(Dwarf_Attribute dw_attr, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Same as dwarf_global_formref_b except...
int dwarf_formflag(Dwarf_Attribute dw_attr, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Return the flag value of a flag form.
unsigned char Dwarf_Small
Definition libdwarf.h:204
signed long long Dwarf_Signed
Definition libdwarf.h:197
unsigned short Dwarf_Half
Definition libdwarf.h:203
unsigned long long Dwarf_Unsigned
Definition libdwarf.h:196
void * Dwarf_Ptr
Definition libdwarf.h:208
int Dwarf_Bool
Definition libdwarf.h:202
unsigned long long Dwarf_Off
Definition libdwarf.h:198
unsigned long long Dwarf_Addr
Definition libdwarf.h:199
int dwarf_die_from_hash_signature(Dwarf_Debug dw_dbg, Dwarf_Sig8 *dw_hash_sig, const char *dw_sig_type, Dwarf_Die *dw_returned_CU_die, Dwarf_Error *dw_error)
Return a CU DIE given a has signature.
int dwarf_siblingof_c(Dwarf_Die dw_die, Dwarf_Die *dw_return_siblingdie, Dwarf_Error *dw_error)
Return the next sibling DIE.
int dwarf_offdie_b(Dwarf_Debug dw_dbg, Dwarf_Off dw_offset, Dwarf_Bool dw_is_info, Dwarf_Die *dw_return_die, Dwarf_Error *dw_error)
Return DIE given global (not CU-relative) offset.
int dwarf_next_cu_header_e(Dwarf_Debug dw_dbg, Dwarf_Bool dw_is_info, Dwarf_Die *dw_cu_die, Dwarf_Unsigned *dw_cu_header_length, Dwarf_Half *dw_version_stamp, Dwarf_Off *dw_abbrev_offset, Dwarf_Half *dw_address_size, Dwarf_Half *dw_length_size, Dwarf_Half *dw_extension_size, Dwarf_Sig8 *dw_type_signature, Dwarf_Unsigned *dw_typeoffset, Dwarf_Unsigned *dw_next_cu_header_offset, Dwarf_Half *dw_header_cu_type, Dwarf_Error *dw_error)
Return information on the next CU header(e).
int dwarf_next_cu_header_d(Dwarf_Debug dw_dbg, Dwarf_Bool dw_is_info, Dwarf_Unsigned *dw_cu_header_length, Dwarf_Half *dw_version_stamp, Dwarf_Off *dw_abbrev_offset, Dwarf_Half *dw_address_size, Dwarf_Half *dw_length_size, Dwarf_Half *dw_extension_size, Dwarf_Sig8 *dw_type_signature, Dwarf_Unsigned *dw_typeoffset, Dwarf_Unsigned *dw_next_cu_header_offset, Dwarf_Half *dw_header_cu_type, Dwarf_Error *dw_error)
Return information on the next CU header(d)
Dwarf_Bool dwarf_get_die_infotypes_flag(Dwarf_Die dw_die)
Return the is_info flag.
void dwarf_dealloc_die(Dwarf_Die dw_die)
Deallocate (free) a DIE.
int dwarf_find_die_given_sig8(Dwarf_Debug dw_dbg, Dwarf_Sig8 *dw_ref, Dwarf_Die *dw_die_out, Dwarf_Bool *dw_is_info, Dwarf_Error *dw_error)
Return a DIE given a Dwarf_Sig8 hash.
int dwarf_child(Dwarf_Die dw_die, Dwarf_Die *dw_return_childdie, Dwarf_Error *dw_error)
Return the child DIE, if any. The child may be the first of a list of sibling DIEs.
int dwarf_cu_header_basics(Dwarf_Die dw_die, Dwarf_Half *dw_version, Dwarf_Bool *dw_is_info, Dwarf_Bool *dw_is_dwo, Dwarf_Half *dw_offset_size, Dwarf_Half *dw_address_size, Dwarf_Half *dw_extension_size, Dwarf_Sig8 **dw_signature, Dwarf_Off *dw_offset_of_length, Dwarf_Unsigned *dw_total_byte_length, Dwarf_Error *dw_error)
Return some CU-relative facts.
int dwarf_siblingof_b(Dwarf_Debug dw_dbg, Dwarf_Die dw_die, Dwarf_Bool dw_is_info, Dwarf_Die *dw_return_siblingdie, Dwarf_Error *dw_error)
Return the first DIE or the next sibling DIE.
void dwarf_dealloc_debug_addr_table(Dwarf_Debug_Addr_Table dw_dat)
dealloc (free) a Dwarf_Attr_Table record.
int dwarf_debug_addr_table(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_section_offset, Dwarf_Debug_Addr_Table *dw_table_header, Dwarf_Unsigned *dw_length, Dwarf_Half *dw_version, Dwarf_Small *dw_address_size, Dwarf_Unsigned *dw_at_addr_base, Dwarf_Unsigned *dw_entry_count, Dwarf_Unsigned *dw_next_table_offset, Dwarf_Error *dw_error)
Return a .debug_addr table.
int dwarf_debug_addr_by_index(Dwarf_Debug_Addr_Table dw_dat, Dwarf_Unsigned dw_entry_index, Dwarf_Unsigned *dw_address, Dwarf_Error *dw_error)
Return .debug_addr address given table index.
int dwarf_dnames_name(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_name_index, Dwarf_Unsigned *dw_bucket_number, Dwarf_Unsigned *dw_hash_value, Dwarf_Unsigned *dw_offset_to_debug_str, char **dw_ptrtostr, Dwarf_Unsigned *dw_offset_in_entrypool, Dwarf_Unsigned *dw_abbrev_number, Dwarf_Half *dw_abbrev_tag, Dwarf_Unsigned dw_array_size, Dwarf_Half *dw_idxattr_array, Dwarf_Half *dw_form_array, Dwarf_Unsigned *dw_idxattr_count, Dwarf_Error *dw_error)
Retrieve a name table entry.
int dwarf_dnames_entrypool(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_offset_in_entrypool, Dwarf_Unsigned *dw_abbrev_code, Dwarf_Half *dw_tag, Dwarf_Unsigned *dw_value_count, Dwarf_Unsigned *dw_index_of_abbrev, Dwarf_Unsigned *dw_offset_of_initial_value, Dwarf_Error *dw_error)
Return a the set of values from an entrypool entry.
int dwarf_dnames_header(Dwarf_Debug dw_dbg, Dwarf_Off dw_starting_offset, Dwarf_Dnames_Head *dw_dn, Dwarf_Off *dw_offset_of_next_table, Dwarf_Error *dw_error)
Open access to a .debug_names table.
int dwarf_dnames_offsets(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned *dw_header_offset, Dwarf_Unsigned *dw_cu_table_offset, Dwarf_Unsigned *dw_tu_local_offset, Dwarf_Unsigned *dw_foreign_tu_offset, Dwarf_Unsigned *dw_bucket_offset, Dwarf_Unsigned *dw_hashes_offset, Dwarf_Unsigned *dw_stringoffsets_offset, Dwarf_Unsigned *dw_entryoffsets_offset, Dwarf_Unsigned *dw_abbrev_table_offset, Dwarf_Unsigned *dw_entry_pool_offset, Dwarf_Error *dw_error)
Offsets from the debug names table.
int dwarf_dnames_entrypool_values(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_index_of_abbrev, Dwarf_Unsigned dw_offset_in_entrypool_of_values, Dwarf_Unsigned dw_arrays_length, Dwarf_Half *dw_array_idx_number, Dwarf_Half *dw_array_form, Dwarf_Unsigned *dw_array_of_offsets, Dwarf_Sig8 *dw_array_of_signatures, Dwarf_Bool *dw_single_cu, Dwarf_Unsigned *dw_cu_offset, Dwarf_Unsigned *dw_offset_of_next_entrypool, Dwarf_Error *dw_error)
Return the value set defined by this entry.
int dwarf_dnames_bucket(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_bucket_number, Dwarf_Unsigned *dw_index, Dwarf_Unsigned *dw_indexcount, Dwarf_Error *dw_error)
Access to bucket contents.
int dwarf_dnames_sizes(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned *dw_comp_unit_count, Dwarf_Unsigned *dw_local_type_unit_count, Dwarf_Unsigned *dw_foreign_type_unit_count, Dwarf_Unsigned *dw_bucket_count, Dwarf_Unsigned *dw_name_count, Dwarf_Unsigned *dw_abbrev_table_size, Dwarf_Unsigned *dw_entry_pool_size, Dwarf_Unsigned *dw_augmentation_string_size, char **dw_augmentation_string, Dwarf_Unsigned *dw_section_size, Dwarf_Half *dw_table_version, Dwarf_Half *dw_offset_size, Dwarf_Error *dw_error)
Sizes and counts from the debug names table.
void dwarf_dealloc_dnames(Dwarf_Dnames_Head dw_dn)
Frees all the malloc data associated with dw_dn.
int dwarf_dnames_cu_table(Dwarf_Dnames_Head dw_dn, const char *dw_type, Dwarf_Unsigned dw_index_number, Dwarf_Unsigned *dw_offset, Dwarf_Sig8 *dw_sig, Dwarf_Error *dw_error)
Each debug names cu list entry one at a time.
int dwarf_dnames_abbrevtable(Dwarf_Dnames_Head dw_dn, Dwarf_Unsigned dw_index, Dwarf_Unsigned *dw_abbrev_offset, Dwarf_Unsigned *dw_abbrev_code, Dwarf_Unsigned *dw_abbrev_tag, Dwarf_Unsigned dw_array_size, Dwarf_Half *dw_idxattr_array, Dwarf_Half *dw_form_array, Dwarf_Unsigned *dw_idxattr_count)
Access to the abbrevs table content.
int dwarf_get_debug_sup(Dwarf_Debug dw_dbg, Dwarf_Half *dw_version, Dwarf_Small *dw_is_supplementary, char **dw_filename, Dwarf_Unsigned *dw_checksum_len, Dwarf_Small **dw_checksum, Dwarf_Error *dw_error)
Return basic .debug_sup section header data.
int dwarf_validate_die_sibling(Dwarf_Die dw_sibling, Dwarf_Off *dw_offset)
Validate a sibling DIE.
int dwarf_die_CU_offset_range(Dwarf_Die dw_die, Dwarf_Off *dw_return_CU_header_offset, Dwarf_Off *dw_return_CU_length_bytes, Dwarf_Error *dw_error)
Return the offset length of the entire CU of a DIE.
int dwarf_srclang(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_lang, Dwarf_Error *dw_error)
Return the value of the DW_AT_language attribute.
int dwarf_lowpc(Dwarf_Die dw_die, Dwarf_Addr *dw_returned_addr, Dwarf_Error *dw_error)
Return the DW_AT_low_pc value.
int dwarf_die_text(Dwarf_Die dw_die, Dwarf_Half dw_attrnum, char **dw_ret_name, Dwarf_Error *dw_error)
Given DIE and attribute number return a string.
int dwarf_tag(Dwarf_Die dw_die, Dwarf_Half *dw_return_tag, Dwarf_Error *dw_error)
Get TAG value of DIE.
int dwarf_dietype_offset(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Bool *dw_is_info, Dwarf_Error *dw_error)
Return the offset from the DW_AT_type attribute.
int dwarf_get_version_of_die(Dwarf_Die dw_die, Dwarf_Half *dw_version, Dwarf_Half *dw_offset_size)
Get the version and offset size.
int dwarf_die_abbrev_children_flag(Dwarf_Die dw_die, Dwarf_Half *dw_ab_has_child)
Return TRUE if the DIE has children.
int dwarf_get_die_address_size(Dwarf_Die dw_die, Dwarf_Half *dw_addr_size, Dwarf_Error *dw_error)
Get the address size applying to a DIE.
Dwarf_Bool dwarf_addr_form_is_indexed(int dw_form)
Informs if a DW_FORM is an indexed form.
Dwarf_Unsigned dwarf_die_abbrev_code(Dwarf_Die dw_die)
Return the DIE abbrev code.
int dwarf_language_version_string(Dwarf_Unsigned dw_lang_name, int *dw_default_lower_bound, const char **dw_version_string)
Return the value of the DW_AT_language_version attribute.
int dwarf_get_cu_die_offset_given_cu_header_offset_b(Dwarf_Debug dw_dbg, Dwarf_Off dw_in_cu_header_offset, Dwarf_Bool dw_is_info, Dwarf_Off *dw_out_cu_die_offset, Dwarf_Error *dw_error)
Return the CU DIE section offset given CU header offset.
int dwarf_CU_dieoffset_given_die(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Return the CU DIE offset given any DIE.
int dwarf_debug_addr_index_to_addr(Dwarf_Die dw_die, Dwarf_Unsigned dw_index, Dwarf_Addr *dw_return_addr, Dwarf_Error *dw_error)
Extract address given address index. DWARF5.
int dwarf_arrayorder(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_order, Dwarf_Error *dw_error)
Return the value of the DW_AT_ordering attribute.
int dwarf_bitoffset(Dwarf_Die dw_die, Dwarf_Half *dw_attrnum, Dwarf_Unsigned *dw_returned_offset, Dwarf_Error *dw_error)
Return the bit offset attribute of a DIE.
int dwarf_die_abbrev_global_offset(Dwarf_Die dw_die, Dwarf_Off *dw_abbrev_offset, Dwarf_Unsigned *dw_abbrev_count, Dwarf_Error *dw_error)
Return the abbrev section offset of a DIE's abbrevs.
int dwarf_bitsize(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_size, Dwarf_Error *dw_error)
Return the value of the attribute DW_AT_bitsize.
int dwarf_bytesize(Dwarf_Die dw_die, Dwarf_Unsigned *dw_returned_size, Dwarf_Error *dw_error)
Return the value of the attribute DW_AT_byte_size.
int dwarf_offset_list(Dwarf_Debug dw_dbg, Dwarf_Off dw_offset, Dwarf_Bool dw_is_info, Dwarf_Off **dw_offbuf, Dwarf_Unsigned *dw_offcount, Dwarf_Error *dw_error)
Return an array of DIE children offsets.
int dwarf_diename(Dwarf_Die dw_die, char **dw_diename, Dwarf_Error *dw_error)
Return the string from a DW_AT_name attribute.
int dwarf_die_CU_offset(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
returns the CU relative offset of the DIE.
int dwarf_hasattr(Dwarf_Die dw_die, Dwarf_Half dw_attrnum, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Tells whether a DIE has a particular attribute.
int dwarf_dieoffset(Dwarf_Die dw_die, Dwarf_Off *dw_return_offset, Dwarf_Error *dw_error)
Return the global section offset of the DIE.
int dwarf_die_offsets(Dwarf_Die dw_die, Dwarf_Off *dw_global_offset, Dwarf_Off *dw_local_offset, Dwarf_Error *dw_error)
Return section and CU-local offsets of a DIE.
int dwarf_highpc_b(Dwarf_Die dw_die, Dwarf_Addr *dw_return_addr, Dwarf_Half *dw_return_form, enum Dwarf_Form_Class *dw_return_class, Dwarf_Error *dw_error)
Return the DW_AT_hipc address value.
int dwarf_attr(Dwarf_Die dw_die, Dwarf_Half dw_attrnum, Dwarf_Attribute *dw_returned_attr, Dwarf_Error *dw_error)
Given DIE and attribute number return a Dwarf_attribute.
void dwarf_dealloc(Dwarf_Debug dw_dbg, void *dw_space, Dwarf_Unsigned dw_type)
The generic dealloc (free) function. It requires you know the correct DW_DLA value to pass in,...
void dwarf_dealloc_error(Dwarf_Debug dw_dbg, Dwarf_Error dw_error)
Free (dealloc) an Dwarf_Error something created.
void dwarf_error_creation(Dwarf_Debug dw_dbg, Dwarf_Error *dw_error, char *dw_errmsg)
Creating an error. This is very rarely helpful. It lets the library user create a Dwarf_Error and ass...
char * dwarf_errmsg_by_number(Dwarf_Unsigned dw_errornum)
What message string is associated with the error number.
char * dwarf_errmsg(Dwarf_Error dw_error)
What message string is in the error?
Dwarf_Unsigned dwarf_errno(Dwarf_Error dw_error)
What DW_DLE code does the error have?
Dwarf_Ranges_Entry_Type
Definition libdwarf.h:234
Dwarf_Form_Class
Definition libdwarf.h:269
void dwarf_dealloc_fde_cie_list(Dwarf_Debug dw_dbg, Dwarf_Cie *dw_cie_data, Dwarf_Signed dw_cie_element_count, Dwarf_Fde *dw_fde_data, Dwarf_Signed dw_fde_element_count)
Release storage associated with FDE and CIE arrays.
int dwarf_expand_frame_instructions(Dwarf_Cie dw_cie, Dwarf_Small *dw_instructionspointer, Dwarf_Unsigned dw_length_in_bytes, Dwarf_Frame_Instr_Head *dw_head, Dwarf_Unsigned *dw_instr_count, Dwarf_Error *dw_error)
Expands CIE or FDE instructions for detailed examination. Called for CIE initial instructions and FDE...
int dwarf_get_fde_info_for_all_regs3(Dwarf_Fde dw_fde, Dwarf_Addr dw_pc_requested, Dwarf_Regtable3 *dw_reg_table, Dwarf_Addr *dw_row_pc, Dwarf_Error *dw_error)
Return information on frame registers at a given pc value.
Dwarf_Half dwarf_set_frame_rule_initial_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Rule Initial Value.
int dwarf_get_frame_instruction_a(Dwarf_Frame_Instr_Head dw_, Dwarf_Unsigned dw_instr_index, Dwarf_Unsigned *dw_instr_offset_in_instrs, Dwarf_Small *dw_cfa_operation, const char **dw_fields_description, Dwarf_Unsigned *dw_u0, Dwarf_Unsigned *dw_u1, Dwarf_Unsigned *dw_u2, Dwarf_Signed *dw_s0, Dwarf_Signed *dw_s1, Dwarf_Unsigned *dw_code_alignment_factor, Dwarf_Signed *dw_data_alignment_factor, Dwarf_Block *dw_expression_block, Dwarf_Error *dw_error)
Expands CIE or FDE instructions for detailed examination. Called for CIE initial instructions and FDE...
int dwarf_get_fde_info_for_reg3_c(Dwarf_Fde dw_fde, Dwarf_Half dw_table_column, Dwarf_Addr dw_pc_requested, Dwarf_Small *dw_value_type, Dwarf_Unsigned *dw_offset_relevant, Dwarf_Unsigned *dw_register, Dwarf_Signed *dw_offset, Dwarf_Block *dw_block_content, Dwarf_Addr *dw_row_pc_out, Dwarf_Bool *dw_has_more_rows, Dwarf_Addr *dw_subsequent_pc, Dwarf_Error *dw_error)
Return details about a particular pc and register.
Dwarf_Half dwarf_set_frame_same_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Same Value Default Invariants for setting frame registers .
int dwarf_cie_section_offset(Dwarf_Debug dw_dbg, Dwarf_Cie dw_in_cie, Dwarf_Off *dw_cie_off, Dwarf_Error *dw_error)
Use to print CIE offsets from debugging info.
Dwarf_Half dwarf_set_frame_rule_table_size(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Rule Table Size Invariants for setting frame registers .
Dwarf_Half dwarf_set_frame_cfa_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame CFA Column Invariants for setting frame registers .
void dwarf_dealloc_frame_instr_head(Dwarf_Frame_Instr_Head dw_head)
Deallocates the frame instruction data in dw_head.
int dwarf_get_fde_info_for_all_regs3_b(Dwarf_Fde dw_fde, Dwarf_Addr dw_pc_requested, Dwarf_Regtable3 *dw_reg_table, Dwarf_Addr *dw_row_pc, Dwarf_Bool *dw_has_more_rows, Dwarf_Addr *dw_subsequent_pc, Dwarf_Error *dw_error)
Return information on frame registers at a given pc value.
int dwarf_get_fde_at_pc(Dwarf_Fde *dw_fde_data, Dwarf_Addr dw_pc_of_interest, Dwarf_Fde *dw_returned_fde, Dwarf_Addr *dw_lopc, Dwarf_Addr *dw_hipc, Dwarf_Error *dw_error)
Retrieve an FDE given a pc.
int dwarf_get_fde_info_for_reg3_b(Dwarf_Fde dw_fde, Dwarf_Half dw_table_column, Dwarf_Addr dw_pc_requested, Dwarf_Small *dw_value_type, Dwarf_Unsigned *dw_offset_relevant, Dwarf_Unsigned *dw_register, Dwarf_Unsigned *dw_offset, Dwarf_Block *dw_block_content, Dwarf_Addr *dw_row_pc_out, Dwarf_Bool *dw_has_more_rows, Dwarf_Addr *dw_subsequent_pc, Dwarf_Error *dw_error)
Return details about a particular pc and register.
int dwarf_get_fde_for_die(Dwarf_Debug dw_dbg, Dwarf_Die dw_subr_die, Dwarf_Fde *dw_returned_fde, Dwarf_Error *dw_error)
Get the fde given DW_AT_MIPS_fde in a DIE.
int dwarf_get_fde_range(Dwarf_Fde dw_fde, Dwarf_Addr *dw_low_pc, Dwarf_Unsigned *dw_func_length, Dwarf_Small **dw_fde_bytes, Dwarf_Unsigned *dw_fde_byte_length, Dwarf_Off *dw_cie_offset, Dwarf_Signed *dw_cie_index, Dwarf_Off *dw_fde_offset, Dwarf_Error *dw_error)
Return the FDE data for a single FDE.
Dwarf_Half dwarf_set_frame_undefined_value(Dwarf_Debug dw_dbg, Dwarf_Half dw_value)
Frame Undefined Value Default Invariants for setting frame registers .
int dwarf_get_fde_info_for_cfa_reg3_c(Dwarf_Fde dw_fde, Dwarf_Addr dw_pc_requested, Dwarf_Small *dw_value_type, Dwarf_Unsigned *dw_offset_relevant, Dwarf_Unsigned *dw_register, Dwarf_Signed *dw_offset, Dwarf_Block *dw_block, Dwarf_Addr *dw_row_pc_out, Dwarf_Bool *dw_has_more_rows, Dwarf_Addr *dw_subsequent_pc, Dwarf_Error *dw_error)
Get the value of the CFA for a particular pc value.
int dwarf_get_frame_instruction(Dwarf_Frame_Instr_Head dw_head, Dwarf_Unsigned dw_instr_index, Dwarf_Unsigned *dw_instr_offset_in_instrs, Dwarf_Small *dw_cfa_operation, const char **dw_fields_description, Dwarf_Unsigned *dw_u0, Dwarf_Unsigned *dw_u1, Dwarf_Signed *dw_s0, Dwarf_Signed *dw_s1, Dwarf_Unsigned *dw_code_alignment_factor, Dwarf_Signed *dw_data_alignment_factor, Dwarf_Block *dw_expression_block, Dwarf_Error *dw_error)
Return information about a single instruction Fields_description means a sequence of up to three lett...
int dwarf_get_fde_instr_bytes(Dwarf_Fde dw_fde, Dwarf_Small **dw_outinstrs, Dwarf_Unsigned *dw_outlen, Dwarf_Error *dw_error)
Return length and pointer to access frame instructions.
int dwarf_get_fde_augmentation_data(Dwarf_Fde dw_fde, Dwarf_Small **dw_augdata, Dwarf_Unsigned *dw_augdata_len, Dwarf_Error *dw_error)
Return .eh_frame FDE augmentation data.
int dwarf_get_cie_of_fde(Dwarf_Fde dw_fde, Dwarf_Cie *dw_cie_returned, Dwarf_Error *dw_error)
Given FDE get CIE.
int dwarf_get_fde_exception_info(Dwarf_Fde dw_fde, Dwarf_Signed *dw_offset_into_exception_tables, Dwarf_Error *dw_error)
IRIX only access to C++ destructor tables.
int dwarf_get_fde_info_for_cfa_reg3_b(Dwarf_Fde dw_fde, Dwarf_Addr dw_pc_requested, Dwarf_Small *dw_value_type, Dwarf_Unsigned *dw_offset_relevant, Dwarf_Unsigned *dw_register, Dwarf_Unsigned *dw_offset, Dwarf_Block *dw_block, Dwarf_Addr *dw_row_pc_out, Dwarf_Bool *dw_has_more_rows, Dwarf_Addr *dw_subsequent_pc, Dwarf_Error *dw_error)
Get the value of the CFA for a particular pc value.
int dwarf_fde_section_offset(Dwarf_Debug dw_dbg, Dwarf_Fde dw_in_fde, Dwarf_Off *dw_fde_off, Dwarf_Off *dw_cie_off, Dwarf_Error *dw_error)
Return FDE and CIE offsets from debugging info.
int dwarf_get_cie_augmentation_data(Dwarf_Cie dw_cie, Dwarf_Small **dw_augdata, Dwarf_Unsigned *dw_augdata_len, Dwarf_Error *dw_error)
Return .eh_frame CIE augmentation data.
int dwarf_get_cie_info_b(Dwarf_Cie dw_cie, Dwarf_Unsigned *dw_bytes_in_cie, Dwarf_Small *dw_version, char **dw_augmenter, Dwarf_Unsigned *dw_code_alignment_factor, Dwarf_Signed *dw_data_alignment_factor, Dwarf_Half *dw_return_address_register_rule, Dwarf_Small **dw_initial_instructions, Dwarf_Unsigned *dw_initial_instructions_length, Dwarf_Half *dw_offset_size, Dwarf_Error *dw_error)
Given a CIE get access to its content.
int dwarf_get_fde_list(Dwarf_Debug dw_dbg, Dwarf_Cie **dw_cie_data, Dwarf_Signed *dw_cie_element_count, Dwarf_Fde **dw_fde_data, Dwarf_Signed *dw_fde_element_count, Dwarf_Error *dw_error)
Get lists of .debug_frame FDEs and CIEs.
int dwarf_get_cie_index(Dwarf_Cie dw_cie, Dwarf_Signed *dw_index, Dwarf_Error *dw_error)
Return CIE index given CIE.
int dwarf_get_fde_list_eh(Dwarf_Debug dw_dbg, Dwarf_Cie **dw_cie_data, Dwarf_Signed *dw_cie_element_count, Dwarf_Fde **dw_fde_data, Dwarf_Signed *dw_fde_element_count, Dwarf_Error *dw_error)
Get lists of .eh_frame FDEs and CIEs.
int dwarf_get_fde_n(Dwarf_Fde *dw_fde_data, Dwarf_Unsigned dw_fde_index, Dwarf_Fde *dw_returned_fde, Dwarf_Error *dw_error)
Retrieve an FDE from an FDE table.
int dwarf_gdbindex_symboltable_array(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_symtab_list_length, Dwarf_Error *dw_error)
Get access to the symboltable array.
int dwarf_gdbindex_cuvector_length(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_cuvector_offset, Dwarf_Unsigned *dw_innercount, Dwarf_Error *dw_error)
Get access to a cuvector.
int dwarf_gdbindex_header(Dwarf_Debug dw_dbg, Dwarf_Gdbindex *dw_gdbindexptr, Dwarf_Unsigned *dw_version, Dwarf_Unsigned *dw_cu_list_offset, Dwarf_Unsigned *dw_types_cu_list_offset, Dwarf_Unsigned *dw_address_area_offset, Dwarf_Unsigned *dw_symbol_table_offset, Dwarf_Unsigned *dw_constant_pool_offset, Dwarf_Unsigned *dw_section_size, const char **dw_section_name, Dwarf_Error *dw_error)
Open access to the .gdb_index section.
int dwarf_gdbindex_types_culist_array(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_types_list_length, Dwarf_Error *dw_error)
Return the types culist array length.
void dwarf_dealloc_gdbindex(Dwarf_Gdbindex dw_gdbindexptr)
Free (dealloc) all allocated Dwarf_Gdbindex memory It should named dwarf_dealloc_gdbindex.
int dwarf_gdbindex_culist_entry(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_entryindex, Dwarf_Unsigned *dw_cu_offset, Dwarf_Unsigned *dw_cu_length, Dwarf_Error *dw_error)
For a CU entry in the list return the offset and length.
int dwarf_gdbindex_types_culist_entry(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_types_entryindex, Dwarf_Unsigned *dw_cu_offset, Dwarf_Unsigned *dw_tu_offset, Dwarf_Unsigned *dw_type_signature, Dwarf_Error *dw_error)
For a types CU entry in the list returns the offset and length.
int dwarf_gdbindex_addressarea(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_addressarea_list_length, Dwarf_Error *dw_error)
Get access to gdbindex address area.
int dwarf_gdbindex_symboltable_entry(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_entryindex, Dwarf_Unsigned *dw_string_offset, Dwarf_Unsigned *dw_cu_vector_offset, Dwarf_Error *dw_error)
Access individual symtab entry.
int dwarf_gdbindex_addressarea_entry(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_entryindex, Dwarf_Unsigned *dw_low_address, Dwarf_Unsigned *dw_high_address, Dwarf_Unsigned *dw_cu_index, Dwarf_Error *dw_error)
Get an address area value.
int dwarf_gdbindex_culist_array(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned *dw_list_length, Dwarf_Error *dw_error)
Return the culist array length.
int dwarf_gdbindex_cuvector_instance_expand_value(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_field_value, Dwarf_Unsigned *dw_cu_index, Dwarf_Unsigned *dw_symbol_kind, Dwarf_Unsigned *dw_is_static, Dwarf_Error *dw_error)
Expand the bit fields in a cuvector entry.
int dwarf_gdbindex_string_by_offset(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_stringoffset, const char **dw_string_ptr, Dwarf_Error *dw_error)
Retrieve a symbol name from the index data.
int dwarf_gdbindex_cuvector_inner_attributes(Dwarf_Gdbindex dw_gdbindexptr, Dwarf_Unsigned dw_cuvector_offset_in, Dwarf_Unsigned dw_innerindex, Dwarf_Unsigned *dw_field_value, Dwarf_Error *dw_error)
Get access to a cuvector.
void dwarf_gnu_index_dealloc(Dwarf_Gnu_Index_Head dw_head)
Free resources of .debug_gnu_pubnames .debug_gnu_pubtypes.
int dwarf_get_gnu_index_block(Dwarf_Gnu_Index_Head dw_head, Dwarf_Unsigned dw_number, Dwarf_Unsigned *dw_block_length, Dwarf_Half *dw_version, Dwarf_Unsigned *dw_offset_into_debug_info, Dwarf_Unsigned *dw_size_of_debug_info_area, Dwarf_Unsigned *dw_count_of_index_entries, Dwarf_Error *dw_error)
Access a particular block.
int dwarf_get_gnu_index_block_entry(Dwarf_Gnu_Index_Head dw_head, Dwarf_Unsigned dw_blocknumber, Dwarf_Unsigned dw_entrynumber, Dwarf_Unsigned *dw_offset_in_debug_info, const char **dw_name_string, unsigned char *dw_flagbyte, unsigned char *dw_staticorglobal, unsigned char *dw_typeofentry, Dwarf_Error *dw_error)
Access a particular entry of a block.
int dwarf_get_gnu_index_head(Dwarf_Debug dw_dbg, Dwarf_Bool dw_which_section, Dwarf_Gnu_Index_Head *dw_head, Dwarf_Unsigned *dw_index_block_count_out, Dwarf_Error *dw_error)
Access to .debug_gnu_pubnames or .debug_gnu_pubtypes.
int dwarf_get_harmless_error_list(Dwarf_Debug dw_dbg, unsigned int dw_count, const char **dw_errmsg_ptrs_array, unsigned int *dw_newerr_count)
Get the harmless error count and content.
void dwarf_insert_harmless_error(Dwarf_Debug dw_dbg, char *dw_newerror)
Harmless Error Insertion is only for testing.
unsigned int dwarf_set_harmless_error_list_size(Dwarf_Debug dw_dbg, unsigned int dw_maxcount)
The size of the circular list of strings libdwarf holds internally may be set and reset as needed....
int dwarf_init_path_a(const char *dw_path, char *dw_true_path_out_buffer, unsigned int dw_true_path_bufferlen, unsigned int dw_groupnumber, unsigned int dw_universalnumber, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, Dwarf_Debug *dw_dbg, Dwarf_Error *dw_error)
Initialization based on path.
int dwarf_object_init_b(Dwarf_Obj_Access_Interface_a *dw_obj, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, unsigned int dw_groupnumber, Dwarf_Debug *dw_dbg, Dwarf_Error *dw_error)
Used to access DWARF information in memory or in an object format unknown to libdwarf.
int dwarf_object_finish(Dwarf_Debug dw_dbg)
Used to close the object_init dw_dbg.
int dwarf_init_path(const char *dw_path, char *dw_true_path_out_buffer, unsigned int dw_true_path_bufferlen, unsigned int dw_groupnumber, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, Dwarf_Debug *dw_dbg, Dwarf_Error *dw_error)
Initialization based on path, the most common initialization.
int dwarf_init_path_dl(const char *dw_path, char *dw_true_path_out_buffer, unsigned int dw_true_path_bufferlen, unsigned int dw_groupnumber, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, Dwarf_Debug *dw_dbg, char **dw_dl_path_array, unsigned int dw_dl_path_array_size, unsigned char *dw_dl_path_source, Dwarf_Error *dw_error)
Initialization following GNU debuglink section data.
int dwarf_get_tied_dbg(Dwarf_Debug dw_dbg, Dwarf_Debug *dw_tieddbg_out, Dwarf_Error *dw_error)
Use with split dwarf.
int dwarf_init_path_dl_a(const char *dw_path, char *dw_true_path_out_buffer, unsigned int dw_true_path_bufferlen, unsigned int dw_groupnumber, unsigned int dw_universalnumber, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, Dwarf_Debug *dw_dbg, char **dw_dl_path_array, unsigned int dw_dl_path_array_size, unsigned char *dw_dl_path_source, Dwarf_Error *dw_error)
Initialization based on path with debuglink.
int dwarf_set_tied_dbg(Dwarf_Debug dw_split_dbg, Dwarf_Debug dw_tied_dbg, Dwarf_Error *dw_error)
Use with split dwarf.
int dwarf_finish(Dwarf_Debug dw_dbg)
Close the initialized dw_dbg and free all data libdwarf has for this dw_dbg.
int dwarf_init_b(int dw_fd, unsigned int dw_groupnumber, Dwarf_Handler dw_errhand, Dwarf_Ptr dw_errarg, Dwarf_Debug *dw_dbg, Dwarf_Error *dw_error)
Initialization based on Unix/Linux (etc) fd.
int dwarf_lineno(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_linenum, Dwarf_Error *dw_error)
Read Line line register.
int dwarf_srclines_include_dir_count(Dwarf_Line_Context dw_line_context, Dwarf_Signed *dw_count, Dwarf_Error *dw_error)
Return the number of include directories in the Line Table.
int dwarf_check_lineheader_b(Dwarf_Die dw_cu_die, int *dw_errcount_out, Dwarf_Error *dw_error)
Access to detailed line table header issues.
int dwarf_lineoff_b(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_lineoffset, Dwarf_Error *dw_error)
Return a column number through the pointer.
int dwarf_linecontext(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_context, Dwarf_Error *dw_error)
Experimental Two-level line tables call contexts Experimental two level line tables....
int dwarf_srclines_version(Dwarf_Line_Context dw_line_context, Dwarf_Unsigned *dw_version, Dwarf_Small *dw_table_count, Dwarf_Error *dw_error)
The DWARF version number of this compile-unit.
int dwarf_srclines_files_indexes(Dwarf_Line_Context dw_context, Dwarf_Signed *dw_baseindex, Dwarf_Signed *dw_count, Dwarf_Signed *dw_endindex, Dwarf_Error *dw_error)
Return values easing indexing line table file numbers. Count is the real count of files array entries...
int dwarf_lineendsequence(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Read Line endsequence register flag.
int dwarf_line_is_addr_set(Dwarf_Line dw_line, Dwarf_Bool *dw_is_addr_set, Dwarf_Error *dw_error)
Is the Dwarf_Line address from DW_LNS_set_address? This is not a line register, but it is a flag set ...
struct Dwarf_Printf_Callback_Info_s dwarf_register_printf_callback(Dwarf_Debug dw_dbg, struct Dwarf_Printf_Callback_Info_s *dw_callbackinfo)
For line details this records callback details.
int dwarf_srclines_subprog_data(Dwarf_Line_Context dw_context, Dwarf_Signed dw_index, const char **dw_name, Dwarf_Unsigned *dw_decl_file, Dwarf_Unsigned *dw_decl_line, Dwarf_Error *dw_error)
Retrieve data from the line table subprog array.
int dwarf_srclines_two_level_from_linecontext(Dwarf_Line_Context dw_context, Dwarf_Line **dw_linebuf, Dwarf_Signed *dw_linecount, Dwarf_Line **dw_linebuf_actuals, Dwarf_Signed *dw_linecount_actuals, Dwarf_Error *dw_error)
Returns line table counts and data.
int dwarf_srcfiles(Dwarf_Die dw_cu_die, char ***dw_srcfiles, Dwarf_Signed *dw_filecount, Dwarf_Error *dw_error)
The list of source files from the line table header.
int dwarf_linebeginstatement(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Read Line beginstatement register.
int dwarf_line_srcfileno(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_filenum, Dwarf_Error *dw_error)
Read Line file register.
int dwarf_lineaddr(Dwarf_Line dw_line, Dwarf_Addr *dw_returned_addr, Dwarf_Error *dw_error)
Return the address of the Dwarf_Line.
int dwarf_srclines_table_offset(Dwarf_Line_Context dw_context, Dwarf_Unsigned *dw_offset, Dwarf_Error *dw_error)
Return the srclines table offset.
int dwarf_srclines_include_dir_data(Dwarf_Line_Context dw_line_context, Dwarf_Signed dw_index, const char **dw_name, Dwarf_Error *dw_error)
Return the include directories in the Line Table.
int dwarf_srclines_comp_dir(Dwarf_Line_Context dw_context, const char **dw_compilation_directory, Dwarf_Error *dw_error)
Compilation Directory name for the CU.
int dwarf_prologue_end_etc(Dwarf_Line dw_line, Dwarf_Bool *dw_prologue_end, Dwarf_Bool *dw_epilogue_begin, Dwarf_Unsigned *dw_isa, Dwarf_Unsigned *dw_discriminator, Dwarf_Error *dw_error)
Return various line table registers in one call.
int dwarf_srclines_subprog_count(Dwarf_Line_Context dw_context, Dwarf_Signed *dw_count, Dwarf_Error *dw_error)
Subprog count: Part of the two-level line table extension.
void dwarf_srclines_dealloc_b(Dwarf_Line_Context dw_context)
Dealloc the memory allocated by dwarf_srclines_b.
int dwarf_srclines_b(Dwarf_Die dw_cudie, Dwarf_Unsigned *dw_version_out, Dwarf_Small *dw_table_count, Dwarf_Line_Context *dw_linecontext, Dwarf_Error *dw_error)
Initialize Dwarf_Line_Context for line table access.
int dwarf_srclines_from_linecontext(Dwarf_Line_Context dw_linecontext, Dwarf_Line **dw_linebuf, Dwarf_Signed *dw_linecount, Dwarf_Error *dw_error)
Access source lines from line context.
int dwarf_print_lines(Dwarf_Die dw_cu_die, Dwarf_Error *dw_error, int *dw_errorcount_out)
Print line information in great detail.
int dwarf_line_subprog(Dwarf_Line, char **, char **, Dwarf_Unsigned *, Dwarf_Error *)
Two-level line tables get subprog, file, line Experimental two level line tables. Not explained here....
int dwarf_lineblock(Dwarf_Line dw_line, Dwarf_Bool *dw_returned_bool, Dwarf_Error *dw_error)
Return the basic_block line register.
int dwarf_linelogical(Dwarf_Line dw_line, Dwarf_Unsigned *dw_returned_logical, Dwarf_Error *dw_error)
Experimental Two-level logical Row Number Experimental two level line tables. Not explained here....
int dwarf_srclines_files_data_b(Dwarf_Line_Context dw_context, Dwarf_Signed dw_index_in, const char **dw_name, Dwarf_Unsigned *dw_directory_index, Dwarf_Unsigned *dw_last_mod_time, Dwarf_Unsigned *dw_file_length, Dwarf_Form_Data16 **dw_md5ptr, Dwarf_Error *dw_error)
Access data for each line table file.
int dwarf_linesrc(Dwarf_Line dw_line, char **dw_returned_name, Dwarf_Error *dw_error)
Return the file name applicable to the Dwarf_Line.
int dwarf_line_subprogno(Dwarf_Line, Dwarf_Unsigned *, Dwarf_Error *)
Two-level line tables get subprogram number Experimental two level line tables. Not explained here....
int dwarf_get_location_op_value_c(Dwarf_Locdesc_c dw_locdesc, Dwarf_Unsigned dw_index, Dwarf_Small *dw_operator_out, Dwarf_Unsigned *dw_operand1, Dwarf_Unsigned *dw_operand2, Dwarf_Unsigned *dw_operand3, Dwarf_Unsigned *dw_offset_for_branch, Dwarf_Error *dw_error)
Get the raw values from a single location operation.
int dwarf_get_loclist_head_basics(Dwarf_Loc_Head_c dw_head, Dwarf_Small *dw_lkind, Dwarf_Unsigned *dw_lle_count, Dwarf_Unsigned *dw_loclists_version, Dwarf_Unsigned *dw_loclists_index_returned, Dwarf_Unsigned *dw_bytes_total_in_rle, Dwarf_Half *dw_offset_size, Dwarf_Half *dw_address_size, Dwarf_Half *dw_segment_selector_size, Dwarf_Unsigned *dw_overall_offset_of_this_context, Dwarf_Unsigned *dw_total_length_of_this_context, Dwarf_Unsigned *dw_offset_table_offset, Dwarf_Unsigned *dw_offset_table_entrycount, Dwarf_Bool *dw_loclists_base_present, Dwarf_Unsigned *dw_loclists_base, Dwarf_Bool *dw_loclists_base_address_present, Dwarf_Unsigned *dw_loclists_base_address, Dwarf_Bool *dw_loclists_debug_addr_base_present, Dwarf_Unsigned *dw_loclists_debug_addr_base, Dwarf_Unsigned *dw_offset_this_lle_area, Dwarf_Error *dw_error)
Return basic data about a loclists head.
int dwarf_loclist_from_expr_c(Dwarf_Debug dw_dbg, Dwarf_Ptr dw_expression_in, Dwarf_Unsigned dw_expression_length, Dwarf_Half dw_address_size, Dwarf_Half dw_offset_size, Dwarf_Half dw_dwarf_version, Dwarf_Loc_Head_c *dw_loc_head, Dwarf_Unsigned *dw_listlen, Dwarf_Error *dw_error)
Generate a Dwarf_Loc_Head_c from an expression block.
int dwarf_get_loclist_offset_index_value(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_context_index, Dwarf_Unsigned dw_offsetentry_index, Dwarf_Unsigned *dw_offset_value_out, Dwarf_Unsigned *dw_global_offset_value_out, Dwarf_Error *dw_error)
Return certain loclists offsets.
int dwarf_get_locdesc_entry_e(Dwarf_Loc_Head_c dw_loclist_head, Dwarf_Unsigned dw_index, Dwarf_Small *dw_lle_value_out, Dwarf_Unsigned *dw_rawlowpc, Dwarf_Unsigned *dw_rawhipc, Dwarf_Bool *dw_debug_addr_unavailable, Dwarf_Addr *dw_lowpc_cooked, Dwarf_Addr *dw_hipc_cooked, Dwarf_Unsigned *dw_locexpr_op_count_out, Dwarf_Unsigned *dw_lle_bytecount, Dwarf_Locdesc_c *dw_locentry_out, Dwarf_Small *dw_loclist_source_out, Dwarf_Unsigned *dw_expression_offset_out, Dwarf_Unsigned *dw_locdesc_offset_out, Dwarf_Error *dw_error)
Retrieve the details(_e) of a location expression.
int dwarf_load_loclists(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_loclists_count, Dwarf_Error *dw_error)
Load Loclists.
int dwarf_get_locdesc_entry_d(Dwarf_Loc_Head_c dw_loclist_head, Dwarf_Unsigned dw_index, Dwarf_Small *dw_lle_value_out, Dwarf_Unsigned *dw_rawlowpc, Dwarf_Unsigned *dw_rawhipc, Dwarf_Bool *dw_debug_addr_unavailable, Dwarf_Addr *dw_lowpc_cooked, Dwarf_Addr *dw_hipc_cooked, Dwarf_Unsigned *dw_locexpr_op_count_out, Dwarf_Locdesc_c *dw_locentry_out, Dwarf_Small *dw_loclist_source_out, Dwarf_Unsigned *dw_expression_offset_out, Dwarf_Unsigned *dw_locdesc_offset_out, Dwarf_Error *dw_error)
Retrieve the details(_d) of a location expression.
int dwarf_get_loclist_context_basics(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_index, Dwarf_Unsigned *dw_header_offset, Dwarf_Small *dw_offset_size, Dwarf_Small *dw_extension_size, unsigned int *dw_version, Dwarf_Small *dw_address_size, Dwarf_Small *dw_segment_selector_size, Dwarf_Unsigned *dw_offset_entry_count, Dwarf_Unsigned *dw_offset_of_offset_array, Dwarf_Unsigned *dw_offset_of_first_locentry, Dwarf_Unsigned *dw_offset_past_last_locentry, Dwarf_Error *dw_error)
Return basic data about a loclists context.
int dwarf_get_loclist_lle(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_contextnumber, Dwarf_Unsigned dw_entry_offset, Dwarf_Unsigned dw_endoffset, unsigned int *dw_entrylen, unsigned int *dw_entry_kind, Dwarf_Unsigned *dw_entry_operand1, Dwarf_Unsigned *dw_entry_operand2, Dwarf_Unsigned *dw_expr_ops_blocksize, Dwarf_Unsigned *dw_expr_ops_offset, Dwarf_Small **dw_expr_opsdata, Dwarf_Error *dw_error)
Return basic data about a loclists context entry.
int dwarf_get_loclist_c(Dwarf_Attribute dw_attr, Dwarf_Loc_Head_c *dw_loclist_head, Dwarf_Unsigned *dw_locentry_count, Dwarf_Error *dw_error)
Location Lists and Expressions.
int dwarf_get_loclist_head_kind(Dwarf_Loc_Head_c dw_loclist_head, unsigned int *dw_lkind, Dwarf_Error *dw_error)
Know what kind of location data it is.
void dwarf_dealloc_loc_head_c(Dwarf_Loc_Head_c dw_head)
Dealloc (free) all memory allocated for Dwarf_Loc_Head_c.
int dwarf_get_macro_details(Dwarf_Debug dw_dbg, Dwarf_Off dw_macro_offset, Dwarf_Unsigned dw_maximum_count, Dwarf_Signed *dw_entry_count, Dwarf_Macro_Details **dw_details, Dwarf_Error *dw_error)
Getting .debug_macinfo macro details.
char * dwarf_find_macro_value_start(char *dw_macro_string)
Return a pointer to the value part of a macro.
int dwarf_get_macro_context(Dwarf_Die dw_die, Dwarf_Unsigned *dw_version_out, Dwarf_Macro_Context *dw_macro_context, Dwarf_Unsigned *dw_macro_unit_offset_out, Dwarf_Unsigned *dw_macro_ops_count_out, Dwarf_Unsigned *dw_macro_ops_data_length_out, Dwarf_Error *dw_error)
DWARF5 .debug_macro access via Dwarf_Die.
int dwarf_macro_context_head(Dwarf_Macro_Context dw_mc, Dwarf_Half *dw_version, Dwarf_Unsigned *dw_mac_offset, Dwarf_Unsigned *dw_mac_len, Dwarf_Unsigned *dw_mac_header_len, unsigned int *dw_flags, Dwarf_Bool *dw_has_line_offset, Dwarf_Unsigned *dw_line_offset, Dwarf_Bool *dw_has_offset_size_64, Dwarf_Bool *dw_has_operands_table, Dwarf_Half *dw_opcode_count, Dwarf_Error *dw_error)
Access the internal details of a Dwarf_Macro_Context.
int dwarf_get_macro_import(Dwarf_Macro_Context dw_macro_context, Dwarf_Unsigned dw_op_number, Dwarf_Unsigned *dw_target_offset, Dwarf_Error *dw_error)
Get Macro import.
int dwarf_get_macro_op(Dwarf_Macro_Context dw_macro_context, Dwarf_Unsigned dw_op_number, Dwarf_Unsigned *dw_op_start_section_offset, Dwarf_Half *dw_macro_operator, Dwarf_Half *dw_forms_count, const Dwarf_Small **dw_formcode_array, Dwarf_Error *dw_error)
Access macro operation details of a single operation.
int dwarf_get_macro_context_by_offset(Dwarf_Die dw_die, Dwarf_Unsigned dw_offset, Dwarf_Unsigned *dw_version_out, Dwarf_Macro_Context *dw_macro_context, Dwarf_Unsigned *dw_macro_ops_count_out, Dwarf_Unsigned *dw_macro_ops_data_length, Dwarf_Error *dw_error)
DWARF5 .debug_macro access via Dwarf_Die and an offset.
void dwarf_dealloc_macro_context(Dwarf_Macro_Context dw_mc)
Dealloc a macro context.
int dwarf_get_macro_startend_file(Dwarf_Macro_Context dw_macro_context, Dwarf_Unsigned dw_op_number, Dwarf_Unsigned *dw_line_number, Dwarf_Unsigned *dw_name_index_to_line_tab, const char **dw_src_file_name, Dwarf_Error *dw_error)
Get Macro start end.
int dwarf_macro_operands_table(Dwarf_Macro_Context dw_mc, Dwarf_Half dw_index, Dwarf_Half *dw_opcode_number, Dwarf_Half *dw_operand_count, const Dwarf_Small **dw_operand_array, Dwarf_Error *dw_error)
Access to the details of the opcode operands table.
int dwarf_macro_context_total_length(Dwarf_Macro_Context dw_context, Dwarf_Unsigned *dw_mac_total_len, Dwarf_Error *dw_error)
Return a macro context total length.
int dwarf_get_macro_defundef(Dwarf_Macro_Context dw_macro_context, Dwarf_Unsigned dw_op_number, Dwarf_Unsigned *dw_line_number, Dwarf_Unsigned *dw_index, Dwarf_Unsigned *dw_offset, Dwarf_Half *dw_forms_count, const char **dw_macro_string, Dwarf_Error *dw_error)
Get Macro defundef.
void(*)(void *, const void *, unsigned long) dwarf_get_endian_copy_function(Dwarf_Debug dw_dbg)
Get a pointer to the applicable swap/noswap function.
Definition libdwarf.h:9686
int dwarf_library_allow_dup_attr(int dw_v)
Eliminate libdwarf checking attribute duplication.
int dwarf_set_de_alloc_flag(int dw_v)
Eliminate libdwarf tracking of allocations Independent of any Dwarf_Debug and applicable to all whene...
int dwarf_set_reloc_application(int dw_apply)
Set libdwarf response to *.rela relocations.
int dwarf_set_stringcheck(int dw_stringcheck)
Turn off libdwarf checks of strings.
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...
const char * dwarf_package_version(void)
Return the version string in the library.
Dwarf_Small dwarf_set_default_address_size(Dwarf_Debug dw_dbg, Dwarf_Small dw_value)
Set the address size on a Dwarf_Debug.
int dwarf_get_universalbinary_count(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_current_index, Dwarf_Unsigned *dw_available_count)
Retrieve universal binary index.
int dwarf_get_frame_section_name_eh_gnu(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get GNU .eh_frame section name.
int dwarf_get_frame_section_name(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get .debug_frame section name.
int dwarf_get_section_info_by_index(Dwarf_Debug dw_dbg, int dw_section_index, const char **dw_section_name, Dwarf_Addr *dw_section_addr, Dwarf_Unsigned *dw_section_size, Dwarf_Error *dw_error)
Given a section index, get its size and address.
int dwarf_get_die_section_name(Dwarf_Debug dw_dbg, Dwarf_Bool dw_is_info, const char **dw_sec_name, Dwarf_Error *dw_error)
Get the real name a DIE section.
int dwarf_get_line_section_name_from_die(Dwarf_Die dw_die, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get the line table section name.
int dwarf_get_section_info_by_index_a(Dwarf_Debug dw_dbg, int dw_section_index, const char **dw_section_name, Dwarf_Addr *dw_section_addr, Dwarf_Unsigned *dw_section_size, Dwarf_Unsigned *dw_section_flags, Dwarf_Unsigned *dw_section_offset, Dwarf_Error *dw_error)
Given a section index, get its size and address, etc.
int dwarf_machine_architecture(Dwarf_Debug dw_dbg, Dwarf_Small *dw_ftype, Dwarf_Small *dw_obj_pointersize, Dwarf_Bool *dw_obj_is_big_endian, Dwarf_Unsigned *dw_obj_machine, Dwarf_Unsigned *dw_obj_flags, Dwarf_Small *dw_path_source, Dwarf_Unsigned *dw_ub_offset, Dwarf_Unsigned *dw_ub_count, Dwarf_Unsigned *dw_ub_index, Dwarf_Unsigned *dw_comdat_groupnumber)
Get basic object information original version.
int dwarf_get_section_info_by_name_a(Dwarf_Debug dw_dbg, const char *dw_section_name, Dwarf_Addr *dw_section_addr, Dwarf_Unsigned *dw_section_size, Dwarf_Unsigned *dw_section_flags, Dwarf_Unsigned *dw_section_offset, Dwarf_Error *dw_error)
Given a section name, get its size, address, etc.
int dwarf_get_macro_section_name(Dwarf_Debug dw_dbg, const char **dw_sec_name_out, Dwarf_Error *dw_err)
Get the real name of a .debug_macro section.
int dwarf_get_line_section_name(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get the line table section name The usual arguments and return values.
int dwarf_get_ranges_section_name(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get .debug_ranges section name The usual arguments and return values.
int dwarf_get_die_section_name_b(Dwarf_Die dw_die, const char **dw_sec_name, Dwarf_Error *dw_error)
Get the real name of a DIE section.
int dwarf_get_offset_size(Dwarf_Debug dw_dbg, Dwarf_Half *dw_offset_size, Dwarf_Error *dw_error)
Get offset size as defined by the object.
Dwarf_Unsigned dwarf_get_section_count(Dwarf_Debug dw_dbg)
Get section count (of object file sections).
int dwarf_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.
int dwarf_get_real_section_name(Dwarf_Debug dw_dbg, const char *dw_std_section_name, const char **dw_actual_sec_name_out, Dwarf_Small *dw_marked_zcompressed, Dwarf_Small *dw_marked_zlib_compressed, Dwarf_Small *dw_marked_shf_compressed, Dwarf_Unsigned *dw_compressed_length, Dwarf_Unsigned *dw_uncompressed_length, Dwarf_Error *dw_error)
Get the real name of a section.
int dwarf_get_string_section_name(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get the string table section name The usual arguments and return values.
int dwarf_get_section_max_offsets_d(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_debug_info_size, Dwarf_Unsigned *dw_debug_abbrev_size, Dwarf_Unsigned *dw_debug_line_size, Dwarf_Unsigned *dw_debug_loc_size, Dwarf_Unsigned *dw_debug_aranges_size, Dwarf_Unsigned *dw_debug_macinfo_size, Dwarf_Unsigned *dw_debug_pubnames_size, Dwarf_Unsigned *dw_debug_str_size, Dwarf_Unsigned *dw_debug_frame_size, Dwarf_Unsigned *dw_debug_ranges_size, Dwarf_Unsigned *dw_debug_pubtypes_size, Dwarf_Unsigned *dw_debug_types_size, Dwarf_Unsigned *dw_debug_macro_size, Dwarf_Unsigned *dw_debug_str_offsets_size, Dwarf_Unsigned *dw_debug_sup_size, Dwarf_Unsigned *dw_debug_cu_index_size, Dwarf_Unsigned *dw_debug_tu_index_size, Dwarf_Unsigned *dw_debug_names_size, Dwarf_Unsigned *dw_debug_loclists_size, Dwarf_Unsigned *dw_debug_rnglists_size)
Get section sizes for many sections.
int dwarf_get_section_info_by_name(Dwarf_Debug dw_dbg, const char *dw_section_name, Dwarf_Addr *dw_section_addr, Dwarf_Unsigned *dw_section_size, Dwarf_Error *dw_error)
Given a section name, get its size and address.
int dwarf_get_address_size(Dwarf_Debug dw_dbg, Dwarf_Half *dw_addr_size, Dwarf_Error *dw_error)
Get the address size as defined by the object.
int dwarf_get_aranges_section_name(Dwarf_Debug dw_dbg, const char **dw_section_name_out, Dwarf_Error *dw_error)
Get .debug_aranges section name The usual arguments.
Dwarf_Half dwarf_global_tag_number(Dwarf_Global dw_global)
Return the DW_TAG number of a global entry.
int dwarf_global_cu_offset(Dwarf_Global dw_global, Dwarf_Off *dw_cu_header_offset, Dwarf_Error *dw_error)
Return the CU header data of a global data item.
int dwarf_globals_by_type(Dwarf_Debug dw_dbg, int dw_requested_section, Dwarf_Global **dw_contents, Dwarf_Signed *dw_count, Dwarf_Error *dw_error)
Allocate Any Fast Access DWARF2-DWARF4.
int dwarf_global_name_offsets(Dwarf_Global dw_global, char **dw_returned_name, Dwarf_Off *dw_die_offset, Dwarf_Off *dw_cu_die_offset, Dwarf_Error *dw_error)
Return the name and offsets of a global entry.
int dwarf_globname(Dwarf_Global dw_global, char **dw_returned_name, Dwarf_Error *dw_error)
Return the name of a global-like data item.
int dwarf_get_pubtypes(Dwarf_Debug dw_dbg, Dwarf_Global **dw_pubtypes, Dwarf_Signed *dw_number_of_pubtypes, Dwarf_Error *dw_error)
Global debug_types access.
int dwarf_return_empty_pubnames(Dwarf_Debug dw_dbg, int dw_flag)
A flag for dwarfdump on pubnames, pubtypes etc.
void dwarf_globals_dealloc(Dwarf_Debug dw_dbg, Dwarf_Global *dw_global_like, Dwarf_Signed dw_count)
Dealloc the Dwarf_Global data.
int dwarf_global_die_offset(Dwarf_Global dw_global, Dwarf_Off *dw_die_offset, Dwarf_Error *dw_error)
Return the DIE offset of a global data item.
int dwarf_get_globals(Dwarf_Debug dw_dbg, Dwarf_Global **dw_globals, Dwarf_Signed *dw_number_of_globals, Dwarf_Error *dw_error)
Global name space operations, .debug_pubnames access.
int dwarf_get_globals_header(Dwarf_Global dw_global, int *dw_category, Dwarf_Off *dw_offset_pub_header, Dwarf_Unsigned *dw_length_size, Dwarf_Unsigned *dw_length_pub, Dwarf_Unsigned *dw_version, Dwarf_Unsigned *dw_header_info_offset, Dwarf_Unsigned *dw_info_length, Dwarf_Error *dw_error)
For more complete globals printing.
int dwarf_get_ranges_baseaddress(Dwarf_Debug dw_dbg, Dwarf_Die dw_die, Dwarf_Bool *dw_known_base, Dwarf_Unsigned *dw_baseaddress, Dwarf_Bool *dw_at_ranges_offset_present, Dwarf_Unsigned *dw_at_ranges_offset, Dwarf_Error *dw_error)
Find ranges base address.
int dwarf_get_ranges_b(Dwarf_Debug dw_dbg, Dwarf_Off dw_rangesoffset, Dwarf_Die dw_die, Dwarf_Off *dw_return_realoffset, Dwarf_Ranges **dw_rangesbuf, Dwarf_Signed *dw_rangecount, Dwarf_Unsigned *dw_bytecount, Dwarf_Error *dw_error)
Access to code ranges from a CU or just reading through the raw .debug_ranges section.
void dwarf_dealloc_ranges(Dwarf_Debug dw_dbg, Dwarf_Ranges *dw_rangesbuf, Dwarf_Signed dw_rangecount)
Dealloc the array dw_rangesbuf.
int dwarf_get_rnglist_rle(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_contextnumber, Dwarf_Unsigned dw_entry_offset, Dwarf_Unsigned dw_endoffset, unsigned int *dw_entrylen, unsigned int *dw_entry_kind, Dwarf_Unsigned *dw_entry_operand1, Dwarf_Unsigned *dw_entry_operand2, Dwarf_Error *dw_error)
Access to raw rnglists range data.
int dwarf_rnglists_get_rle_head(Dwarf_Attribute dw_attr, Dwarf_Half dw_theform, Dwarf_Unsigned dw_index_or_offset_value, Dwarf_Rnglists_Head *dw_head_out, Dwarf_Unsigned *dw_count_of_entries_in_head, Dwarf_Unsigned *dw_global_offset_of_rle_set, Dwarf_Error *dw_error)
Get Access to DWARF5 rnglists.
int dwarf_load_rnglists(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_rnglists_count, Dwarf_Error *dw_error)
Loads all .debug_rnglists headers.
int dwarf_get_rnglist_offset_index_value(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_context_index, Dwarf_Unsigned dw_offsetentry_index, Dwarf_Unsigned *dw_offset_value_out, Dwarf_Unsigned *dw_global_offset_value_out, Dwarf_Error *dw_error)
Retrieve the section offset of a rnglist.
int dwarf_get_rnglist_context_basics(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_index, Dwarf_Unsigned *dw_header_offset, Dwarf_Small *dw_offset_size, Dwarf_Small *dw_extension_size, unsigned int *dw_version, Dwarf_Small *dw_address_size, Dwarf_Small *dw_segment_selector_size, Dwarf_Unsigned *dw_offset_entry_count, Dwarf_Unsigned *dw_offset_of_offset_array, Dwarf_Unsigned *dw_offset_of_first_rangeentry, Dwarf_Unsigned *dw_offset_past_last_rangeentry, Dwarf_Error *dw_error)
Access to rnglists header data.
int dwarf_get_rnglist_head_basics(Dwarf_Rnglists_Head dw_head, Dwarf_Unsigned *dw_rle_count, Dwarf_Unsigned *dw_rnglists_version, Dwarf_Unsigned *dw_rnglists_index_returned, Dwarf_Unsigned *dw_bytes_total_in_rle, Dwarf_Half *dw_offset_size, Dwarf_Half *dw_address_size, Dwarf_Half *dw_segment_selector_size, Dwarf_Unsigned *dw_overall_offset_of_this_context, Dwarf_Unsigned *dw_total_length_of_this_context, Dwarf_Unsigned *dw_offset_table_offset, Dwarf_Unsigned *dw_offset_table_entrycount, Dwarf_Bool *dw_rnglists_base_present, Dwarf_Unsigned *dw_rnglists_base, Dwarf_Bool *dw_rnglists_base_address_present, Dwarf_Unsigned *dw_rnglists_base_address, Dwarf_Bool *dw_rnglists_debug_addr_base_present, Dwarf_Unsigned *dw_rnglists_debug_addr_base, Dwarf_Error *dw_error)
Access to internal data on rangelists.
void dwarf_dealloc_rnglists_head(Dwarf_Rnglists_Head dw_head)
Dealloc a Dwarf_Rnglists_Head.
int dwarf_get_rnglists_entry_fields_a(Dwarf_Rnglists_Head dw_head, Dwarf_Unsigned dw_entrynum, unsigned int *dw_entrylen, unsigned int *dw_rle_value_out, Dwarf_Unsigned *dw_raw1, Dwarf_Unsigned *dw_raw2, Dwarf_Bool *dw_debug_addr_unavailable, Dwarf_Unsigned *dw_cooked1, Dwarf_Unsigned *dw_cooked2, Dwarf_Error *dw_error)
Access rnglist entry details.
int dwarf_sec_group_sizes(Dwarf_Debug dw_dbg, Dwarf_Unsigned *dw_section_count_out, Dwarf_Unsigned *dw_group_count_out, Dwarf_Unsigned *dw_selected_group_out, Dwarf_Unsigned *dw_map_entry_count_out, Dwarf_Error *dw_error)
Get Section Groups data counts.
int dwarf_sec_group_map(Dwarf_Debug dw_dbg, Dwarf_Unsigned dw_map_entry_count, Dwarf_Unsigned *dw_group_numbers_array, Dwarf_Unsigned *dw_sec_numbers_array, const char **dw_sec_names_array, Dwarf_Error *dw_error)
Return a map between group numbers and section numbers.
int dwarf_get_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.
enum Dwarf_Sec_Alloc_Pref dwarf_set_load_preference(enum Dwarf_Sec_Alloc_Pref dw_load_preference)
Set/Retrieve section allocation preference.
int dwarf_get_debugfission_for_key(Dwarf_Debug dw_dbg, Dwarf_Sig8 *dw_hash_sig, const char *dw_cu_type, Dwarf_Debug_Fission_Per_CU *dw_percu_out, Dwarf_Error *dw_error)
Given a hash signature find per-cu Fission data.
int dwarf_get_xu_hash_entry(Dwarf_Xu_Index_Header dw_xuhdr, Dwarf_Unsigned dw_index, Dwarf_Sig8 *dw_hash_value, Dwarf_Unsigned *dw_index_to_sections, Dwarf_Error *dw_error)
Get a Hash Entry.
void dwarf_dealloc_xu_header(Dwarf_Xu_Index_Header dw_xuhdr)
Dealloc (free) memory associated with dw_xuhdr.
int dwarf_get_xu_index_section_type(Dwarf_Xu_Index_Header dw_xuhdr, const char **dw_typename, const char **dw_sectionname, Dwarf_Error *dw_error)
Return basic information about a Dwarf_Xu_Index_Header.
int dwarf_get_debugfission_for_die(Dwarf_Die dw_die, Dwarf_Debug_Fission_Per_CU *dw_percu_out, Dwarf_Error *dw_error)
Get debugfission data for a Dwarf_Die.
int dwarf_get_xu_section_names(Dwarf_Xu_Index_Header dw_xuhdr, Dwarf_Unsigned dw_column_index, Dwarf_Unsigned *dw_SECT_number, const char **dw_SECT_name, Dwarf_Error *dw_error)
get DW_SECT value for a column.
int dwarf_get_xu_section_offset(Dwarf_Xu_Index_Header dw_xuhdr, Dwarf_Unsigned dw_row_index, Dwarf_Unsigned dw_column_index, Dwarf_Unsigned *dw_sec_offset, Dwarf_Unsigned *dw_sec_size, Dwarf_Error *dw_error)
Get row data (section data) for a row and column.
int dwarf_get_xu_index_header(Dwarf_Debug dw_dbg, const char *dw_section_type, Dwarf_Xu_Index_Header *dw_xuhdr, Dwarf_Unsigned *dw_version_number, Dwarf_Unsigned *dw_section_count, Dwarf_Unsigned *dw_units_count, Dwarf_Unsigned *dw_hash_slots_count, const char **dw_sect_name, Dwarf_Error *dw_error)
Access a .debug_cu_index or dw_tu_index section.
int dwarf_str_offsets_statistics(Dwarf_Str_Offsets_Table dw_table_data, Dwarf_Unsigned *dw_wasted_byte_count, Dwarf_Unsigned *dw_table_count, Dwarf_Error *dw_error)
Reports final wasted-bytes count.
int dwarf_open_str_offsets_table_access(Dwarf_Debug dw_dbg, Dwarf_Str_Offsets_Table *dw_table_data, Dwarf_Error *dw_error)
Creates access to a .debug_str_offsets table.
int dwarf_next_str_offsets_table(Dwarf_Str_Offsets_Table dw_table_data, Dwarf_Unsigned *dw_unit_length, Dwarf_Unsigned *dw_unit_length_offset, Dwarf_Unsigned *dw_table_start_offset, Dwarf_Half *dw_entry_size, Dwarf_Half *dw_version, Dwarf_Half *dw_padding, Dwarf_Unsigned *dw_table_value_count, Dwarf_Error *dw_error)
Iterate through the offsets tables.
int dwarf_close_str_offsets_table_access(Dwarf_Str_Offsets_Table dw_table_data, Dwarf_Error *dw_error)
Close str_offsets access, free table_data.
int dwarf_str_offsets_value_by_index(Dwarf_Str_Offsets_Table dw_table_data, Dwarf_Unsigned dw_index_to_entry, Dwarf_Unsigned *dw_entry_value, Dwarf_Error *dw_error)
Access to an individual str offsets table entry.
int dwarf_get_str(Dwarf_Debug dw_dbg, Dwarf_Off dw_offset, char **dw_string, Dwarf_Signed *dw_strlen_of_string, Dwarf_Error *dw_error)
Reading From a String Section.
Definition libdwarf.h:330
Definition libdwarf.h:441
Definition libdwarf.h:881
Definition libdwarf.h:302
Definition libdwarf.h:733
Definition libdwarf.h:872
Definition libdwarf.h:836
Definition libdwarf.h:783
Definition libdwarf.h:413
Definition libdwarf.h:469
Definition libdwarf.h:581
Definition libdwarf.h:553
Definition libdwarf.h:313