00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #ifndef _LIBDWARF_H
00042 #define _LIBDWARF_H
00043 #ifdef __cplusplus
00044 extern "C" {
00045 #endif
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066 #ifdef __SGI_FAST_LIBELF
00067 struct elf_sgi;
00068 typedef struct elf_sgi* dwarf_elf_handle;
00069 #else
00070 struct Elf;
00071 typedef struct Elf* dwarf_elf_handle;
00072 #endif
00073
00074
00075
00076
00077
00078
00079 #if (_MIPS_SZLONG == 64)
00080
00081
00082
00083
00084 typedef int Dwarf_Bool;
00085 typedef unsigned long Dwarf_Off;
00086 typedef unsigned long Dwarf_Unsigned;
00087 typedef unsigned short Dwarf_Half;
00088 typedef unsigned char Dwarf_Small;
00089 typedef signed long Dwarf_Signed;
00090 typedef unsigned long Dwarf_Addr;
00091 #else
00092
00093
00094
00095 typedef int Dwarf_Bool;
00096 typedef unsigned long long Dwarf_Off;
00097 typedef unsigned long long Dwarf_Unsigned;
00098 typedef unsigned short Dwarf_Half;
00099 typedef unsigned char Dwarf_Small;
00100 typedef signed long long Dwarf_Signed;
00101 typedef unsigned long long Dwarf_Addr;
00102 #endif
00103 typedef void* Dwarf_Ptr;
00104
00105
00106
00107 typedef struct {
00108 Dwarf_Unsigned bl_len;
00109 Dwarf_Ptr bl_data;
00110 Dwarf_Small bl_from_loclist;
00111 Dwarf_Unsigned bl_section_offset;
00112
00113 } Dwarf_Block;
00114
00115
00116
00117
00118 typedef struct {
00119 Dwarf_Small lr_atom;
00120 Dwarf_Unsigned lr_number;
00121 Dwarf_Unsigned lr_number2;
00122 Dwarf_Unsigned lr_offset;
00123 } Dwarf_Loc;
00124
00125
00126
00127
00128 typedef struct {
00129 Dwarf_Addr ld_lopc;
00130 Dwarf_Addr ld_hipc;
00131 Dwarf_Half ld_cents;
00132 Dwarf_Loc* ld_s;
00133 Dwarf_Small ld_from_loclist;
00134
00135
00136 Dwarf_Unsigned ld_section_offset;
00137
00138 } Dwarf_Locdesc;
00139
00140
00141
00142 typedef struct {
00143 Dwarf_Small fp_base_op;
00144 Dwarf_Small fp_extended_op;
00145 Dwarf_Half fp_register;
00146 Dwarf_Unsigned fp_offset;
00147 Dwarf_Off fp_instr_offset;
00148 } Dwarf_Frame_Op;
00149
00150
00151
00152
00153 #define DW_REG_TABLE_SIZE 66
00154 typedef struct {
00155 struct {
00156 Dwarf_Small dw_offset_relevant;
00157 Dwarf_Half dw_regnum;
00158 Dwarf_Addr dw_offset;
00159 } rules[DW_REG_TABLE_SIZE];
00160 } Dwarf_Regtable;
00161
00162
00163
00164
00165
00166
00167
00168
00169 enum Dwarf_Rel_Type {
00170 dwarf_drt_none,
00171 dwarf_drt_data_reloc,
00172 dwarf_drt_segment_rel,
00173 #ifdef KEY
00174 dwarf_drt_module,
00175 dwarf_drt_imported_declaration,
00176
00177 dwarf_drt_cie_begin,
00178 dwarf_drt_fde_begin,
00179 #endif
00180 dwarf_drt_cie_label,
00181 dwarf_drt_data_reloc_by_str_id,
00182 dwarf_drt_first_of_length_pair_create_second,
00183
00184
00185 dwarf_drt_first_of_length_pair,
00186
00187
00188 dwarf_drt_second_of_length_pair
00189 };
00190 typedef struct Dwarf_Relocation_Data_s * Dwarf_Relocation_Data;
00191 struct Dwarf_Relocation_Data_s {
00192 unsigned char drd_type;
00193
00194 unsigned char drd_length;
00195
00196
00197 Dwarf_Unsigned drd_offset;
00198 Dwarf_Unsigned drd_symbol_index;
00199 };
00200
00201
00202 typedef struct Dwarf_Debug_s* Dwarf_Debug;
00203 typedef struct Dwarf_Die_s* Dwarf_Die;
00204 typedef struct Dwarf_Line_s* Dwarf_Line;
00205 typedef struct Dwarf_Global_s* Dwarf_Global;
00206 typedef struct Dwarf_Func_s* Dwarf_Func;
00207 typedef struct Dwarf_Type_s* Dwarf_Type;
00208 typedef struct Dwarf_Var_s* Dwarf_Var;
00209 typedef struct Dwarf_Weak_s* Dwarf_Weak;
00210 typedef struct Dwarf_Error_s* Dwarf_Error;
00211 typedef struct Dwarf_Attribute_s* Dwarf_Attribute;
00212 typedef struct Dwarf_Abbrev_s* Dwarf_Abbrev;
00213 typedef struct Dwarf_Fde_s* Dwarf_Fde;
00214 typedef struct Dwarf_Cie_s* Dwarf_Cie;
00215 typedef struct Dwarf_Arange_s* Dwarf_Arange;
00216
00217
00218 typedef struct Dwarf_P_Debug_s* Dwarf_P_Debug;
00219 typedef struct Dwarf_P_Die_s* Dwarf_P_Die;
00220 typedef struct Dwarf_P_Attribute_s* Dwarf_P_Attribute;
00221 typedef struct Dwarf_P_Fde_s* Dwarf_P_Fde;
00222 typedef struct Dwarf_P_Expr_s* Dwarf_P_Expr;
00223 typedef Dwarf_Unsigned Dwarf_Tag;
00224
00225
00226
00227
00228 typedef void (*Dwarf_Handler)(Dwarf_Error , Dwarf_Ptr );
00229
00230
00231
00232
00233
00234
00235 #define DW_DLA_STRING 0x01
00236 #define DW_DLA_LOC 0x02
00237 #define DW_DLA_LOCDESC 0x03
00238 #define DW_DLA_ELLIST 0x04
00239 #define DW_DLA_BOUNDS 0x05
00240 #define DW_DLA_BLOCK 0x06
00241 #define DW_DLA_DEBUG 0x07
00242 #define DW_DLA_DIE 0x08
00243 #define DW_DLA_LINE 0x09
00244 #define DW_DLA_ATTR 0x0a
00245 #define DW_DLA_TYPE 0x0b
00246 #define DW_DLA_SUBSCR 0x0c
00247 #define DW_DLA_GLOBAL 0x0d
00248 #define DW_DLA_ERROR 0x0e
00249 #define DW_DLA_LIST 0x0f
00250 #define DW_DLA_LINEBUF 0x10
00251 #define DW_DLA_ARANGE 0x11
00252 #define DW_DLA_ABBREV 0x12
00253 #define DW_DLA_FRAME_OP 0x13
00254 #define DW_DLA_CIE 0x14
00255 #define DW_DLA_FDE 0x15
00256 #define DW_DLA_LOC_BLOCK 0x16
00257 #define DW_DLA_FRAME_BLOCK 0x17
00258 #define DW_DLA_FUNC 0x18
00259 #define DW_DLA_TYPENAME 0x19
00260 #define DW_DLA_VAR 0x1a
00261 #define DW_DLA_WEAK 0x1b
00262 #define DW_DLA_ADDR 0x1c
00263
00264
00265 #define DW_CIE_AUGMENTER_STRING_V0 "z"
00266
00267
00268
00269 #define DW_DLC_READ 0
00270 #define DW_DLC_WRITE 1
00271 #define DW_DLC_RDWR 2
00272
00273
00274
00275 #define DW_DLC_SIZE_64 0x40000000
00276 #define DW_DLC_SIZE_32 0x20000000
00277
00278
00279
00280 #define DW_DLC_ISA_MIPS 0x00000000
00281 #define DW_DLC_ISA_IA64 0x01000000
00282 #define DW_DLC_STREAM_RELOCATIONS 0x02000000
00283 #define DW_DLC_SYMBOLIC_RELOCATIONS 0x04000000
00284 #define DW_DLC_TARGET_BIGENDIAN 0x08000000
00285 #define DW_DLC_TARGET_LITTLEENDIAN 0x00100000
00286
00287
00288
00289 #define DW_DLS_BACKWARD -1
00290 #define DW_DLS_NOSLIDE 0
00291 #define DW_DLS_FORWARD 1
00292
00293
00294
00295 #define DW_DLE_NE 0
00296 #define DW_DLE_VMM 1
00297 #define DW_DLE_MAP 2
00298 #define DW_DLE_LEE 3
00299 #define DW_DLE_NDS 4
00300 #define DW_DLE_NLS 5
00301 #define DW_DLE_ID 6
00302 #define DW_DLE_IOF 7
00303 #define DW_DLE_MAF 8
00304 #define DW_DLE_IA 9
00305 #define DW_DLE_MDE 10
00306 #define DW_DLE_MLE 11
00307 #define DW_DLE_FNO 12
00308 #define DW_DLE_FNR 13
00309 #define DW_DLE_FWA 14
00310 #define DW_DLE_NOB 15
00311 #define DW_DLE_MOF 16
00312 #define DW_DLE_EOLL 17
00313 #define DW_DLE_NOLL 18
00314 #define DW_DLE_BADOFF 19
00315 #define DW_DLE_EOS 20
00316 #define DW_DLE_ATRUNC 21
00317 #define DW_DLE_BADBITC 22
00318
00319
00320 #define DW_DLE_DBG_ALLOC 23
00321 #define DW_DLE_FSTAT_ERROR 24
00322 #define DW_DLE_FSTAT_MODE_ERROR 25
00323 #define DW_DLE_INIT_ACCESS_WRONG 26
00324 #define DW_DLE_ELF_BEGIN_ERROR 27
00325 #define DW_DLE_ELF_GETEHDR_ERROR 28
00326 #define DW_DLE_ELF_GETSHDR_ERROR 29
00327 #define DW_DLE_ELF_STRPTR_ERROR 30
00328 #define DW_DLE_DEBUG_INFO_DUPLICATE 31
00329 #define DW_DLE_DEBUG_INFO_NULL 32
00330 #define DW_DLE_DEBUG_ABBREV_DUPLICATE 33
00331 #define DW_DLE_DEBUG_ABBREV_NULL 34
00332 #define DW_DLE_DEBUG_ARANGES_DUPLICATE 35
00333 #define DW_DLE_DEBUG_ARANGES_NULL 36
00334 #define DW_DLE_DEBUG_LINE_DUPLICATE 37
00335 #define DW_DLE_DEBUG_LINE_NULL 38
00336 #define DW_DLE_DEBUG_LOC_DUPLICATE 39
00337 #define DW_DLE_DEBUG_LOC_NULL 40
00338 #define DW_DLE_DEBUG_MACINFO_DUPLICATE 41
00339 #define DW_DLE_DEBUG_MACINFO_NULL 42
00340 #define DW_DLE_DEBUG_PUBNAMES_DUPLICATE 43
00341 #define DW_DLE_DEBUG_PUBNAMES_NULL 44
00342 #define DW_DLE_DEBUG_STR_DUPLICATE 45
00343 #define DW_DLE_DEBUG_STR_NULL 46
00344 #define DW_DLE_CU_LENGTH_ERROR 47
00345 #define DW_DLE_VERSION_STAMP_ERROR 48
00346 #define DW_DLE_ABBREV_OFFSET_ERROR 49
00347 #define DW_DLE_ADDRESS_SIZE_ERROR 50
00348 #define DW_DLE_DEBUG_INFO_PTR_NULL 51
00349 #define DW_DLE_DIE_NULL 52
00350 #define DW_DLE_STRING_OFFSET_BAD 53
00351 #define DW_DLE_DEBUG_LINE_LENGTH_BAD 54
00352 #define DW_DLE_LINE_PROLOG_LENGTH_BAD 55
00353 #define DW_DLE_LINE_NUM_OPERANDS_BAD 56
00354 #define DW_DLE_LINE_SET_ADDR_ERROR 57
00355 #define DW_DLE_LINE_EXT_OPCODE_BAD 58
00356 #define DW_DLE_DWARF_LINE_NULL 59
00357 #define DW_DLE_INCL_DIR_NUM_BAD 60
00358 #define DW_DLE_LINE_FILE_NUM_BAD 61
00359 #define DW_DLE_ALLOC_FAIL 62
00360 #define DW_DLE_NO_CALLBACK_FUNC 63
00361 #define DW_DLE_SECT_ALLOC 64
00362 #define DW_DLE_FILE_ENTRY_ALLOC 65
00363 #define DW_DLE_LINE_ALLOC 66
00364 #define DW_DLE_FPGM_ALLOC 67
00365 #define DW_DLE_INCDIR_ALLOC 68
00366 #define DW_DLE_STRING_ALLOC 69
00367 #define DW_DLE_CHUNK_ALLOC 70
00368 #define DW_DLE_BYTEOFF_ERR 71
00369 #define DW_DLE_CIE_ALLOC 72
00370 #define DW_DLE_FDE_ALLOC 73
00371 #define DW_DLE_REGNO_OVFL 74
00372 #define DW_DLE_CIE_OFFS_ALLOC 75
00373 #define DW_DLE_WRONG_ADDRESS 76
00374 #define DW_DLE_EXTRA_NEIGHBORS 77
00375 #define DW_DLE_WRONG_TAG 78
00376 #define DW_DLE_DIE_ALLOC 79
00377 #define DW_DLE_PARENT_EXISTS 80
00378 #define DW_DLE_DBG_NULL 81
00379 #define DW_DLE_DEBUGLINE_ERROR 82
00380 #define DW_DLE_DEBUGFRAME_ERROR 83
00381 #define DW_DLE_DEBUGINFO_ERROR 84
00382 #define DW_DLE_ATTR_ALLOC 85
00383 #define DW_DLE_ABBREV_ALLOC 86
00384 #define DW_DLE_OFFSET_UFLW 87
00385 #define DW_DLE_ELF_SECT_ERR 88
00386 #define DW_DLE_DEBUG_FRAME_LENGTH_BAD 89
00387 #define DW_DLE_FRAME_VERSION_BAD 90
00388 #define DW_DLE_CIE_RET_ADDR_REG_ERROR 91
00389 #define DW_DLE_FDE_NULL 92
00390 #define DW_DLE_FDE_DBG_NULL 93
00391 #define DW_DLE_CIE_NULL 94
00392 #define DW_DLE_CIE_DBG_NULL 95
00393 #define DW_DLE_FRAME_TABLE_COL_BAD 96
00394 #define DW_DLE_PC_NOT_IN_FDE_RANGE 97
00395 #define DW_DLE_CIE_INSTR_EXEC_ERROR 98
00396 #define DW_DLE_FRAME_INSTR_EXEC_ERROR 99
00397 #define DW_DLE_FDE_PTR_NULL 100
00398 #define DW_DLE_RET_OP_LIST_NULL 101
00399 #define DW_DLE_LINE_CONTEXT_NULL 102
00400 #define DW_DLE_DBG_NO_CU_CONTEXT 103
00401 #define DW_DLE_DIE_NO_CU_CONTEXT 104
00402 #define DW_DLE_FIRST_DIE_NOT_CU 105
00403 #define DW_DLE_NEXT_DIE_PTR_NULL 106
00404 #define DW_DLE_DEBUG_FRAME_DUPLICATE 107
00405 #define DW_DLE_DEBUG_FRAME_NULL 108
00406 #define DW_DLE_ABBREV_DECODE_ERROR 109
00407 #define DW_DLE_DWARF_ABBREV_NULL 110
00408 #define DW_DLE_ATTR_NULL 111
00409 #define DW_DLE_DIE_BAD 112
00410 #define DW_DLE_DIE_ABBREV_BAD 113
00411 #define DW_DLE_ATTR_FORM_BAD 114
00412 #define DW_DLE_ATTR_NO_CU_CONTEXT 115
00413 #define DW_DLE_ATTR_FORM_SIZE_BAD 116
00414 #define DW_DLE_ATTR_DBG_NULL 117
00415 #define DW_DLE_BAD_REF_FORM 118
00416 #define DW_DLE_ATTR_FORM_OFFSET_BAD 119
00417 #define DW_DLE_LINE_OFFSET_BAD 120
00418 #define DW_DLE_DEBUG_STR_OFFSET_BAD 121
00419 #define DW_DLE_STRING_PTR_NULL 122
00420 #define DW_DLE_PUBNAMES_VERSION_ERROR 123
00421 #define DW_DLE_PUBNAMES_LENGTH_BAD 124
00422 #define DW_DLE_GLOBAL_NULL 125
00423 #define DW_DLE_GLOBAL_CONTEXT_NULL 126
00424 #define DW_DLE_DIR_INDEX_BAD 127
00425 #define DW_DLE_LOC_EXPR_BAD 128
00426 #define DW_DLE_DIE_LOC_EXPR_BAD 129
00427 #define DW_DLE_ADDR_ALLOC 130
00428 #define DW_DLE_OFFSET_BAD 131
00429 #define DW_DLE_MAKE_CU_CONTEXT_FAIL 132
00430 #define DW_DLE_REL_ALLOC 133
00431 #define DW_DLE_ARANGE_OFFSET_BAD 134
00432 #define DW_DLE_SEGMENT_SIZE_BAD 135
00433 #define DW_DLE_ARANGE_LENGTH_BAD 136
00434 #define DW_DLE_ARANGE_DECODE_ERROR 137
00435 #define DW_DLE_ARANGES_NULL 138
00436 #define DW_DLE_ARANGE_NULL 139
00437 #define DW_DLE_NO_FILE_NAME 140
00438 #define DW_DLE_NO_COMP_DIR 141
00439 #define DW_DLE_CU_ADDRESS_SIZE_BAD 142
00440 #define DW_DLE_INPUT_ATTR_BAD 143
00441 #define DW_DLE_EXPR_NULL 144
00442 #define DW_DLE_BAD_EXPR_OPCODE 145
00443 #define DW_DLE_EXPR_LENGTH_BAD 146
00444 #define DW_DLE_MULTIPLE_RELOC_IN_EXPR 147
00445 #define DW_DLE_ELF_GETIDENT_ERROR 148
00446 #define DW_DLE_NO_AT_MIPS_FDE 149
00447 #define DW_DLE_NO_CIE_FOR_FDE 150
00448 #define DW_DLE_DIE_ABBREV_LIST_NULL 151
00449 #define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE 152
00450 #define DW_DLE_DEBUG_FUNCNAMES_NULL 153
00451 #define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR 154
00452 #define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD 155
00453 #define DW_DLE_FUNC_NULL 156
00454 #define DW_DLE_FUNC_CONTEXT_NULL 157
00455 #define DW_DLE_DEBUG_TYPENAMES_DUPLICATE 158
00456 #define DW_DLE_DEBUG_TYPENAMES_NULL 159
00457 #define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR 160
00458 #define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD 161
00459 #define DW_DLE_TYPE_NULL 162
00460 #define DW_DLE_TYPE_CONTEXT_NULL 163
00461 #define DW_DLE_DEBUG_VARNAMES_DUPLICATE 164
00462 #define DW_DLE_DEBUG_VARNAMES_NULL 165
00463 #define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR 166
00464 #define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD 167
00465 #define DW_DLE_VAR_NULL 168
00466 #define DW_DLE_VAR_CONTEXT_NULL 169
00467 #define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE 170
00468 #define DW_DLE_DEBUG_WEAKNAMES_NULL 171
00469 #define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR 172
00470 #define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD 173
00471 #define DW_DLE_WEAK_NULL 174
00472 #define DW_DLE_WEAK_CONTEXT_NULL 175
00473 #define DW_DLE_LOCDESC_COUNT_WRONG 176
00474 #define DW_DLE_MACINFO_STRING_NULL 177
00475 #define DW_DLE_MACINFO_STRING_EMPTY 178
00476 #define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE 179
00477 #define DW_DLE_MACINFO_MALLOC_FAIL 180
00478 #define DW_DLE_DEBUGMACINFO_ERROR 181
00479 #define DW_DLE_DEBUG_MACRO_LENGTH_BAD 182
00480 #define DW_DLE_DEBUG_MACRO_MAX_BAD 183
00481 #define DW_DLE_DEBUG_MACRO_INTERNAL_ERR 184
00482 #define DW_DLE_DEBUG_MACRO_MALLOC_SPACE 185
00483 #define DW_DLE_DEBUG_MACRO_INCONSISTENT 186
00484 #define DW_DLE_DF_NO_CIE_AUGMENTATION 187
00485 #define DW_DLE_DF_REG_NUM_TOO_HIGH 188
00486 #define DW_DLE_DF_MAKE_INSTR_NO_INIT 189
00487 #define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC 190
00488 #define DW_DLE_DF_POP_EMPTY_STACK 191
00489 #define DW_DLE_DF_ALLOC_FAIL 192
00490 #define DW_DLE_DF_FRAME_DECODING_ERROR 193
00491 #define DW_DLE_DEBUG_LOC_SECTION_SHORT 194
00492 #define DW_DLE_LAST_CHILD_ISNT 195
00493
00494
00495 #define DW_DLE_LAST 195
00496 #define DW_DLE_LO_USER 0x10000
00497
00498
00499
00500
00501
00502
00503 #define DW_FRAME_UNDEFINED_VAL 1034
00504
00505
00506
00507
00508
00509
00510 #define DW_FRAME_SAME_VAL 1035
00511
00512
00513
00514
00515
00516 #define DW_DLV_BADADDR (~(Dwarf_Addr)0)
00517
00518
00519 #define DW_DLV_NOCOUNT ((Dwarf_Signed)-1)
00520
00521
00522 #define DW_DLV_BADOFFSET (~(Dwarf_Off)0)
00523
00524
00525
00526 #define DW_DLV_NO_ENTRY -1
00527 #define DW_DLV_OK 0
00528 #define DW_DLV_ERROR 1
00529
00530
00531
00532
00533 #define DW_DLX_NO_EH_OFFSET (-1LL)
00534
00535
00536 #define DW_DLX_EH_OFFSET_UNAVAILABLE (-2LL)
00537
00538
00539
00540
00541
00542
00543 int dwarf_init(int ,
00544 Dwarf_Unsigned ,
00545 Dwarf_Handler ,
00546 Dwarf_Ptr ,
00547 Dwarf_Debug * ,
00548 Dwarf_Error* );
00549
00550
00551 int dwarf_elf_init(dwarf_elf_handle ,
00552 Dwarf_Unsigned ,
00553 Dwarf_Handler ,
00554 Dwarf_Ptr ,
00555 Dwarf_Debug * ,
00556 Dwarf_Error* );
00557
00558
00559 void dwarf_print_memory_stats(Dwarf_Debug );
00560
00561
00562 int dwarf_get_elf(Dwarf_Debug ,
00563 dwarf_elf_handle* ,
00564 Dwarf_Error* );
00565
00566 int dwarf_finish(Dwarf_Debug , Dwarf_Error* );
00567
00568
00569 int dwarf_next_cu_header(Dwarf_Debug ,
00570 Dwarf_Unsigned* ,
00571 Dwarf_Half* ,
00572 Dwarf_Off* ,
00573 Dwarf_Half* ,
00574 Dwarf_Unsigned* ,
00575 Dwarf_Error* );
00576
00577 int dwarf_siblingof(Dwarf_Debug ,
00578 Dwarf_Die ,
00579 Dwarf_Die* ,
00580 Dwarf_Error* );
00581
00582 int dwarf_child(Dwarf_Die ,
00583 Dwarf_Die* ,
00584 Dwarf_Error* );
00585
00586
00587 int dwarf_offdie(Dwarf_Debug ,
00588 Dwarf_Off ,
00589 Dwarf_Die* ,
00590 Dwarf_Error* );
00591
00592
00593 int dwarf_pcfile(Dwarf_Debug ,
00594 Dwarf_Addr ,
00595 Dwarf_Die* ,
00596 Dwarf_Error* );
00597
00598
00599 int dwarf_pcsubr(Dwarf_Debug ,
00600 Dwarf_Addr ,
00601 Dwarf_Die* ,
00602 Dwarf_Error* );
00603
00604
00605 int dwarf_pcscope(Dwarf_Debug ,
00606 Dwarf_Addr ,
00607 Dwarf_Die* ,
00608 Dwarf_Error* );
00609
00610
00611 int dwarf_tag(Dwarf_Die ,
00612 Dwarf_Half* ,
00613 Dwarf_Error* );
00614
00615
00616 int dwarf_dieoffset(Dwarf_Die ,
00617 Dwarf_Off* ,
00618 Dwarf_Error* );
00619
00620 int dwarf_die_CU_offset(Dwarf_Die ,
00621 Dwarf_Off* ,
00622 Dwarf_Error* );
00623
00624 int dwarf_attr (Dwarf_Die ,
00625 Dwarf_Half ,
00626 Dwarf_Attribute * ,
00627 Dwarf_Error* );
00628
00629 int dwarf_diename(Dwarf_Die ,
00630 char ** ,
00631 Dwarf_Error* );
00632
00633
00634 int dwarf_hasattr(Dwarf_Die ,
00635 Dwarf_Half ,
00636 Dwarf_Bool * ,
00637 Dwarf_Error* );
00638
00639
00640 int dwarf_loclist_n(Dwarf_Attribute ,
00641 Dwarf_Locdesc*** ,
00642 Dwarf_Signed * ,
00643 Dwarf_Error* );
00644
00645 int dwarf_loclist(Dwarf_Attribute ,
00646 Dwarf_Locdesc** ,
00647 Dwarf_Signed * ,
00648 Dwarf_Error* );
00649
00650
00651 int dwarf_stringlen(Dwarf_Die ,
00652 Dwarf_Locdesc ** ,
00653 Dwarf_Error* );
00654
00655
00656 int dwarf_subscrcnt(Dwarf_Die ,
00657 Dwarf_Signed * ,
00658 Dwarf_Error* );
00659
00660
00661 int dwarf_nthsubscr(Dwarf_Die ,
00662 Dwarf_Unsigned ,
00663 Dwarf_Die * ,
00664 Dwarf_Error* );
00665
00666 int dwarf_lowpc(Dwarf_Die ,
00667 Dwarf_Addr * ,
00668 Dwarf_Error* );
00669
00670 int dwarf_highpc(Dwarf_Die ,
00671 Dwarf_Addr * ,
00672 Dwarf_Error* );
00673
00674 int dwarf_bytesize(Dwarf_Die ,
00675 Dwarf_Unsigned * ,
00676 Dwarf_Error* );
00677
00678
00679 int dwarf_isbitfield(Dwarf_Die ,
00680 Dwarf_Bool * ,
00681 Dwarf_Error* );
00682
00683 int dwarf_bitsize(Dwarf_Die ,
00684 Dwarf_Unsigned * ,
00685 Dwarf_Error* );
00686
00687 int dwarf_bitoffset(Dwarf_Die ,
00688 Dwarf_Unsigned * ,
00689 Dwarf_Error* );
00690
00691 int dwarf_srclang(Dwarf_Die ,
00692 Dwarf_Unsigned * ,
00693 Dwarf_Error* );
00694
00695 int dwarf_arrayorder(Dwarf_Die ,
00696 Dwarf_Unsigned * ,
00697 Dwarf_Error* );
00698
00699
00700
00701
00702 int dwarf_attrlist(Dwarf_Die ,
00703 Dwarf_Attribute** ,
00704 Dwarf_Signed * ,
00705 Dwarf_Error* );
00706
00707
00708 int dwarf_hasform(Dwarf_Attribute ,
00709 Dwarf_Half ,
00710 Dwarf_Bool * ,
00711 Dwarf_Error* );
00712
00713 int dwarf_whatform(Dwarf_Attribute ,
00714 Dwarf_Half * ,
00715 Dwarf_Error* );
00716
00717 int dwarf_whatform_direct(Dwarf_Attribute ,
00718 Dwarf_Half * ,
00719 Dwarf_Error* );
00720
00721 int dwarf_whatattr(Dwarf_Attribute ,
00722 Dwarf_Half * ,
00723 Dwarf_Error* );
00724
00725
00726
00727
00728
00729
00730
00731 int dwarf_formref(Dwarf_Attribute ,
00732 Dwarf_Off* ,
00733 Dwarf_Error* );
00734
00735
00736 int dwarf_global_formref(Dwarf_Attribute ,
00737 Dwarf_Off* ,
00738 Dwarf_Error* );
00739
00740 int dwarf_formaddr(Dwarf_Attribute ,
00741 Dwarf_Addr * ,
00742 Dwarf_Error* );
00743
00744 int dwarf_formflag(Dwarf_Attribute ,
00745 Dwarf_Bool * ,
00746 Dwarf_Error* );
00747
00748 int dwarf_formudata(Dwarf_Attribute ,
00749 Dwarf_Unsigned * ,
00750 Dwarf_Error* );
00751
00752 int dwarf_formsdata(Dwarf_Attribute ,
00753 Dwarf_Signed * ,
00754 Dwarf_Error* );
00755
00756 int dwarf_formblock(Dwarf_Attribute ,
00757 Dwarf_Block ** ,
00758 Dwarf_Error* );
00759
00760 int dwarf_formstring(Dwarf_Attribute ,
00761 char ** ,
00762 Dwarf_Error* );
00763
00764
00765
00766
00767
00768 int dwarf_srclines(Dwarf_Die ,
00769 Dwarf_Line** ,
00770 Dwarf_Signed * ,
00771 Dwarf_Error* );
00772
00773 int dwarf_srcfiles(Dwarf_Die ,
00774 char*** ,
00775 Dwarf_Signed * ,
00776 Dwarf_Error* );
00777
00778
00779 int dwarf_dieline(Dwarf_Die ,
00780 Dwarf_Line * ,
00781 Dwarf_Error * );
00782
00783 int dwarf_linebeginstatement(Dwarf_Line ,
00784 Dwarf_Bool * ,
00785 Dwarf_Error* );
00786
00787 int dwarf_lineendsequence(Dwarf_Line ,
00788 Dwarf_Bool * ,
00789 Dwarf_Error* );
00790
00791 int dwarf_lineno(Dwarf_Line ,
00792 Dwarf_Unsigned * ,
00793 Dwarf_Error* );
00794
00795 int dwarf_lineaddr(Dwarf_Line ,
00796 Dwarf_Addr * ,
00797 Dwarf_Error* );
00798
00799 int dwarf_lineoff(Dwarf_Line ,
00800 Dwarf_Signed * ,
00801 Dwarf_Error* );
00802
00803 int dwarf_linesrc(Dwarf_Line ,
00804 char ** ,
00805 Dwarf_Error* );
00806
00807 int dwarf_lineblock(Dwarf_Line ,
00808 Dwarf_Bool * ,
00809 Dwarf_Error* );
00810
00811
00812
00813 int dwarf_pclines(Dwarf_Debug ,
00814 Dwarf_Addr ,
00815 Dwarf_Line** ,
00816 Dwarf_Signed * ,
00817 Dwarf_Signed ,
00818 Dwarf_Error* );
00819
00820
00821
00822 int dwarf_get_globals(Dwarf_Debug ,
00823 Dwarf_Global** ,
00824 Dwarf_Signed * ,
00825 Dwarf_Error* );
00826
00827 int dwarf_globname(Dwarf_Global ,
00828 char ** ,
00829 Dwarf_Error* );
00830
00831 int dwarf_global_die_offset(Dwarf_Global ,
00832 Dwarf_Off* ,
00833 Dwarf_Error * );
00834
00835 int dwarf_get_cu_die_offset_given_cu_header_offset(
00836 Dwarf_Debug ,
00837 Dwarf_Off ,
00838 Dwarf_Off * ,
00839 Dwarf_Error * );
00840 #ifdef __sgi
00841 #pragma optional dwarf_get_cu_die_offset_given_cu_header_offset
00842 #endif
00843
00844 int dwarf_global_cu_offset(Dwarf_Global ,
00845 Dwarf_Off* ,
00846 Dwarf_Error* );
00847
00848 int dwarf_global_name_offsets(Dwarf_Global ,
00849 char ** ,
00850 Dwarf_Off* ,
00851 Dwarf_Off* ,
00852 Dwarf_Error* );
00853
00854
00855 int dwarf_get_funcs(Dwarf_Debug ,
00856 Dwarf_Func** ,
00857 Dwarf_Signed * ,
00858 Dwarf_Error* );
00859
00860 int dwarf_funcname(Dwarf_Func ,
00861 char ** ,
00862 Dwarf_Error* );
00863
00864 int dwarf_func_die_offset(Dwarf_Func ,
00865 Dwarf_Off* ,
00866 Dwarf_Error* );
00867
00868 int dwarf_func_cu_offset(Dwarf_Func ,
00869 Dwarf_Off* ,
00870 Dwarf_Error* );
00871
00872 int dwarf_func_name_offsets(Dwarf_Func ,
00873 char ** ,
00874 Dwarf_Off* ,
00875 Dwarf_Off* ,
00876 Dwarf_Error* );
00877
00878
00879 int dwarf_get_types(Dwarf_Debug ,
00880 Dwarf_Type** ,
00881 Dwarf_Signed * ,
00882 Dwarf_Error* );
00883
00884 int dwarf_typename(Dwarf_Type ,
00885 char ** ,
00886 Dwarf_Error* );
00887
00888 int dwarf_type_die_offset(Dwarf_Type ,
00889 Dwarf_Off* ,
00890 Dwarf_Error* );
00891
00892 int dwarf_type_cu_offset(Dwarf_Type ,
00893 Dwarf_Off* ,
00894 Dwarf_Error* );
00895
00896 int dwarf_type_name_offsets(Dwarf_Type ,
00897 char ** ,
00898 Dwarf_Off* ,
00899 Dwarf_Off* ,
00900 Dwarf_Error* );
00901
00902
00903 int dwarf_get_vars(Dwarf_Debug ,
00904 Dwarf_Var** ,
00905 Dwarf_Signed * ,
00906 Dwarf_Error* );
00907
00908 int dwarf_varname(Dwarf_Var ,
00909 char ** ,
00910 Dwarf_Error* );
00911
00912 int dwarf_var_die_offset(Dwarf_Var ,
00913 Dwarf_Off* ,
00914 Dwarf_Error* );
00915
00916 int dwarf_var_cu_offset(Dwarf_Var ,
00917 Dwarf_Off* ,
00918 Dwarf_Error* );
00919
00920 int dwarf_var_name_offsets(Dwarf_Var ,
00921 char ** ,
00922 Dwarf_Off* ,
00923 Dwarf_Off* ,
00924 Dwarf_Error* );
00925
00926
00927 int dwarf_get_weaks(Dwarf_Debug ,
00928 Dwarf_Weak** ,
00929 Dwarf_Signed * ,
00930 Dwarf_Error* );
00931
00932 int dwarf_weakname(Dwarf_Weak ,
00933 char ** ,
00934 Dwarf_Error* );
00935
00936 int dwarf_weak_die_offset(Dwarf_Weak ,
00937 Dwarf_Off* ,
00938 Dwarf_Error* );
00939
00940 int dwarf_weak_cu_offset(Dwarf_Weak ,
00941 Dwarf_Off* ,
00942 Dwarf_Error* );
00943
00944 int dwarf_weak_name_offsets(Dwarf_Weak ,
00945 char ** ,
00946 Dwarf_Off* ,
00947 Dwarf_Off* ,
00948 Dwarf_Error* );
00949
00950
00951
00952 int dwarf_get_loclist_entry(Dwarf_Debug ,
00953 Dwarf_Unsigned ,
00954 Dwarf_Addr* ,
00955 Dwarf_Addr* ,
00956 Dwarf_Ptr* ,
00957 Dwarf_Unsigned* ,
00958 Dwarf_Unsigned* ,
00959 Dwarf_Error* );
00960
00961
00962 int dwarf_get_abbrev(Dwarf_Debug ,
00963 Dwarf_Unsigned ,
00964 Dwarf_Abbrev * ,
00965 Dwarf_Unsigned* ,
00966 Dwarf_Unsigned* ,
00967 Dwarf_Error* );
00968
00969 int dwarf_get_abbrev_tag(Dwarf_Abbrev ,
00970 Dwarf_Half* ,
00971 Dwarf_Error* );
00972 int dwarf_get_abbrev_code(Dwarf_Abbrev ,
00973 Dwarf_Unsigned* ,
00974 Dwarf_Error* );
00975
00976 int dwarf_get_abbrev_children_flag(Dwarf_Abbrev ,
00977 Dwarf_Signed* ,
00978 Dwarf_Error* );
00979
00980 int dwarf_get_abbrev_entry(Dwarf_Abbrev ,
00981 Dwarf_Signed ,
00982 Dwarf_Half * ,
00983 Dwarf_Signed* ,
00984 Dwarf_Off* ,
00985 Dwarf_Error* );
00986
00987
00988 int dwarf_get_str(Dwarf_Debug ,
00989 Dwarf_Off ,
00990 char** ,
00991 Dwarf_Signed * ,
00992 Dwarf_Error* );
00993
00994
00995 int dwarf_get_fde_list_eh(
00996 Dwarf_Debug ,
00997 Dwarf_Cie ** ,
00998 Dwarf_Signed * ,
00999 Dwarf_Fde ** ,
01000 Dwarf_Signed * ,
01001 Dwarf_Error * );
01002
01003
01004
01005 int dwarf_get_fde_list(Dwarf_Debug ,
01006 Dwarf_Cie** ,
01007 Dwarf_Signed* ,
01008 Dwarf_Fde** ,
01009 Dwarf_Signed* ,
01010 Dwarf_Error* );
01011
01012
01013 int dwarf_get_fde_range(Dwarf_Fde ,
01014 Dwarf_Addr* ,
01015 Dwarf_Unsigned* ,
01016 Dwarf_Ptr* ,
01017 Dwarf_Unsigned* ,
01018 Dwarf_Off* ,
01019 Dwarf_Signed* ,
01020 Dwarf_Off* ,
01021 Dwarf_Error* );
01022
01023 int dwarf_get_fde_exception_info(Dwarf_Fde ,
01024 Dwarf_Signed* ,
01025 Dwarf_Error* );
01026
01027 int dwarf_get_cie_of_fde(Dwarf_Fde ,
01028 Dwarf_Cie * ,
01029 Dwarf_Error* );
01030
01031 int dwarf_get_cie_info(Dwarf_Cie ,
01032 Dwarf_Unsigned * ,
01033 Dwarf_Small* ,
01034 char ** ,
01035 Dwarf_Unsigned* ,
01036 Dwarf_Signed* ,
01037 Dwarf_Half* ,
01038 Dwarf_Ptr* ,
01039 Dwarf_Unsigned* ,
01040 Dwarf_Error* );
01041
01042 int dwarf_get_fde_instr_bytes(Dwarf_Fde ,
01043 Dwarf_Ptr * , Dwarf_Unsigned * ,
01044 Dwarf_Error * );
01045
01046 int dwarf_get_fde_info_for_all_regs(Dwarf_Fde ,
01047 Dwarf_Addr ,
01048 Dwarf_Regtable* ,
01049 Dwarf_Addr* ,
01050 Dwarf_Error* );
01051
01052 int dwarf_get_fde_info_for_reg(Dwarf_Fde ,
01053 Dwarf_Half ,
01054 Dwarf_Addr ,
01055 Dwarf_Signed* ,
01056 Dwarf_Signed* ,
01057 Dwarf_Signed* ,
01058 Dwarf_Addr* ,
01059 Dwarf_Error* );
01060
01061 int dwarf_get_fde_for_die(Dwarf_Debug ,
01062 Dwarf_Die ,
01063 Dwarf_Fde * ,
01064 Dwarf_Error* );
01065
01066 int dwarf_get_fde_n(Dwarf_Fde* ,
01067 Dwarf_Unsigned ,
01068 Dwarf_Fde * ,
01069 Dwarf_Error* );
01070
01071 int dwarf_get_fde_at_pc(Dwarf_Fde* ,
01072 Dwarf_Addr ,
01073 Dwarf_Fde * ,
01074 Dwarf_Addr* ,
01075 Dwarf_Addr* ,
01076 Dwarf_Error* );
01077
01078 int dwarf_expand_frame_instructions(Dwarf_Debug ,
01079 Dwarf_Ptr ,
01080 Dwarf_Unsigned ,
01081 Dwarf_Frame_Op** ,
01082 Dwarf_Signed* ,
01083 Dwarf_Error* );
01084
01085
01086 int dwarf_get_aranges(Dwarf_Debug ,
01087 Dwarf_Arange** ,
01088 Dwarf_Signed * ,
01089 Dwarf_Error* );
01090
01091
01092
01093 int dwarf_get_arange(
01094 Dwarf_Arange* ,
01095 Dwarf_Unsigned ,
01096 Dwarf_Addr ,
01097 Dwarf_Arange * ,
01098 Dwarf_Error* );
01099
01100 int dwarf_get_cu_die_offset(
01101 Dwarf_Arange ,
01102 Dwarf_Off* ,
01103 Dwarf_Error* );
01104
01105 int dwarf_get_arange_cu_header_offset(
01106 Dwarf_Arange ,
01107 Dwarf_Off* ,
01108 Dwarf_Error* );
01109 #ifdef __sgi
01110 #pragma optional dwarf_get_arange_cu_header_offset
01111 #endif
01112
01113 int dwarf_get_arange_info(
01114 Dwarf_Arange ,
01115 Dwarf_Addr* ,
01116 Dwarf_Unsigned* ,
01117 Dwarf_Off* ,
01118 Dwarf_Error* );
01119
01120
01121
01122
01123 struct Dwarf_Macro_Details_s {
01124 Dwarf_Off dmd_offset;
01125
01126 Dwarf_Small dmd_type;
01127 Dwarf_Signed dmd_lineno;
01128
01129
01130
01131
01132 Dwarf_Signed dmd_fileindex;
01133
01134
01135 char * dmd_macro;
01136
01137
01138 };
01139
01140
01141
01142
01143 int _dwarf_print_lines(Dwarf_Die cu_die,Dwarf_Error * );
01144
01145
01146
01147
01148
01149
01150
01151
01152 int _dwarf_ld_sort_lines(
01153 void * orig_buffer,
01154 unsigned long buffer_len,
01155 int is_64_bit,
01156 int *any_change,
01157 int * err_code);
01158
01159
01160
01161
01162 int _dwarf_fde_section_offset(Dwarf_Debug dbg,Dwarf_Fde in_fde,
01163 Dwarf_Off *fde_off, Dwarf_Off *cie_off,
01164 Dwarf_Error *err);
01165
01166
01167
01168
01169 int _dwarf_cie_section_offset(Dwarf_Debug dbg,Dwarf_Cie in_cie,
01170 Dwarf_Off *cie_off,
01171 Dwarf_Error *err);
01172
01173
01174
01175
01176 typedef struct Dwarf_Macro_Details_s Dwarf_Macro_Details;
01177
01178 int dwarf_get_macro(Dwarf_Debug ,
01179 char * ,
01180 Dwarf_Addr ,
01181 char ** ,
01182 Dwarf_Error * );
01183
01184 int dwarf_get_all_defined_macros(Dwarf_Debug ,
01185 Dwarf_Addr ,
01186 Dwarf_Signed * ,
01187 char *** ,
01188 Dwarf_Error * );
01189
01190 char *dwarf_find_macro_value_start(char * );
01191
01192 int dwarf_get_macro_details(Dwarf_Debug ,
01193 Dwarf_Off ,
01194 Dwarf_Unsigned ,
01195 Dwarf_Signed * ,
01196 Dwarf_Macro_Details ** ,
01197 Dwarf_Error * );
01198
01199
01200 int dwarf_get_address_size(Dwarf_Debug ,
01201 Dwarf_Half * ,
01202 Dwarf_Error * );
01203
01204
01205 Dwarf_Unsigned dwarf_errno(Dwarf_Error );
01206
01207 char* dwarf_errmsg(Dwarf_Error );
01208
01209
01210
01211
01212
01213
01214
01215
01216
01217
01218 int dwarf_set_stringcheck(int );
01219
01220
01221 Dwarf_Handler dwarf_seterrhand(Dwarf_Debug , Dwarf_Handler );
01222
01223
01224 Dwarf_Ptr dwarf_seterrarg(Dwarf_Debug , Dwarf_Ptr );
01225
01226 void dwarf_dealloc(Dwarf_Debug , void* ,
01227 Dwarf_Unsigned );
01228
01229
01230
01231 typedef int (*Dwarf_Callback_Func)(
01232 char* ,
01233 int ,
01234 Dwarf_Unsigned ,
01235 Dwarf_Unsigned ,
01236 Dwarf_Unsigned ,
01237 Dwarf_Unsigned ,
01238 int* ,
01239 int* );
01240
01241 Dwarf_P_Debug dwarf_producer_init(
01242 Dwarf_Unsigned ,
01243 Dwarf_Callback_Func ,
01244 Dwarf_Handler ,
01245 Dwarf_Ptr ,
01246 Dwarf_Error* );
01247
01248 typedef int (*Dwarf_Callback_Func_b)(
01249 char* ,
01250 int ,
01251 Dwarf_Unsigned ,
01252 Dwarf_Unsigned ,
01253 Dwarf_Unsigned ,
01254 Dwarf_Unsigned ,
01255 Dwarf_Unsigned* ,
01256 int* );
01257
01258
01259 Dwarf_P_Debug dwarf_producer_init_b(
01260 Dwarf_Unsigned ,
01261 Dwarf_Callback_Func_b ,
01262 Dwarf_Handler ,
01263 Dwarf_Ptr ,
01264 Dwarf_Error * );
01265
01266
01267 Dwarf_Signed dwarf_transform_to_disk_form(Dwarf_P_Debug ,
01268 Dwarf_Error* );
01269
01270 Dwarf_Ptr dwarf_get_section_bytes(Dwarf_P_Debug ,
01271 Dwarf_Signed ,
01272 Dwarf_Signed* ,
01273 Dwarf_Unsigned* ,
01274 Dwarf_Error* );
01275
01276 int dwarf_get_relocation_info_count(
01277 Dwarf_P_Debug ,
01278 Dwarf_Unsigned * ,
01279 int * ,
01280 Dwarf_Error* );
01281
01282 int dwarf_get_relocation_info(
01283 Dwarf_P_Debug ,
01284 Dwarf_Signed * ,
01285 Dwarf_Signed * ,
01286 Dwarf_Unsigned * ,
01287 Dwarf_Relocation_Data * ,
01288 Dwarf_Error* );
01289
01290
01291
01292 #define DWARF_DRD_BUFFER_VERSION 2
01293
01294 void dwarf_reset_section_bytes(Dwarf_P_Debug );
01295
01296 Dwarf_Unsigned dwarf_producer_finish(Dwarf_P_Debug ,
01297 Dwarf_Error* );
01298
01299
01300 Dwarf_P_Attribute dwarf_add_AT_targ_address(Dwarf_P_Debug ,
01301 Dwarf_P_Die ,
01302 Dwarf_Half ,
01303 Dwarf_Unsigned ,
01304 Dwarf_Signed ,
01305 Dwarf_Error* );
01306
01307 Dwarf_P_Attribute dwarf_add_AT_targ_address_b(Dwarf_P_Debug ,
01308 Dwarf_P_Die ,
01309 Dwarf_Half ,
01310 Dwarf_Unsigned ,
01311 Dwarf_Unsigned ,
01312 Dwarf_Error* );
01313
01314 Dwarf_P_Attribute dwarf_add_AT_unsigned_const(Dwarf_P_Debug ,
01315 Dwarf_P_Die ,
01316 Dwarf_Half ,
01317 Dwarf_Unsigned ,
01318 Dwarf_Error* );
01319
01320 Dwarf_P_Attribute dwarf_add_AT_signed_const(Dwarf_P_Debug ,
01321 Dwarf_P_Die ,
01322 Dwarf_Half ,
01323 Dwarf_Signed ,
01324 Dwarf_Error* );
01325
01326 Dwarf_P_Attribute dwarf_add_AT_reference(Dwarf_P_Debug ,
01327 Dwarf_P_Die ,
01328 Dwarf_Half ,
01329 Dwarf_P_Die ,
01330 Dwarf_Error* );
01331
01332 Dwarf_P_Attribute dwarf_add_AT_const_value_string(Dwarf_P_Die ,
01333 char* ,
01334 Dwarf_Error* );
01335
01336 Dwarf_P_Attribute dwarf_add_AT_location_expr(Dwarf_P_Debug ,
01337 Dwarf_P_Die ,
01338 Dwarf_Half ,
01339 Dwarf_P_Expr ,
01340 Dwarf_Error* );
01341
01342 Dwarf_P_Attribute dwarf_add_AT_string(Dwarf_P_Debug ,
01343 Dwarf_P_Die ,
01344 Dwarf_Half ,
01345 const char* ,
01346 Dwarf_Error* );
01347
01348 Dwarf_P_Attribute dwarf_add_AT_flag(Dwarf_P_Debug ,
01349 Dwarf_P_Die ,
01350 Dwarf_Half ,
01351 Dwarf_Small ,
01352 Dwarf_Error* );
01353
01354 Dwarf_P_Attribute dwarf_add_AT_producer(Dwarf_P_Die ,
01355 char* ,
01356 Dwarf_Error* );
01357
01358 Dwarf_P_Attribute dwarf_add_AT_const_value_signedint(Dwarf_P_Die ,
01359 Dwarf_Signed ,
01360 Dwarf_Error* );
01361
01362 Dwarf_P_Attribute dwarf_add_AT_const_value_unsignedint(
01363 Dwarf_P_Die ,
01364 Dwarf_Unsigned ,
01365 Dwarf_Error* );
01366
01367 Dwarf_P_Attribute dwarf_add_AT_comp_dir(Dwarf_P_Die ,
01368 char* ,
01369 Dwarf_Error* );
01370
01371 Dwarf_P_Attribute dwarf_add_AT_name(Dwarf_P_Die ,
01372 char* ,
01373 Dwarf_Error* );
01374
01375
01376 Dwarf_Unsigned dwarf_add_directory_decl(Dwarf_P_Debug ,
01377 const char* ,
01378 Dwarf_Error* );
01379
01380 Dwarf_Unsigned dwarf_add_file_decl(Dwarf_P_Debug ,
01381 const char* ,
01382 Dwarf_Unsigned ,
01383 Dwarf_Unsigned ,
01384 Dwarf_Unsigned ,
01385 Dwarf_Error* );
01386
01387 Dwarf_Unsigned dwarf_add_line_entry(Dwarf_P_Debug ,
01388 Dwarf_Unsigned ,
01389 Dwarf_Addr ,
01390 Dwarf_Unsigned ,
01391 Dwarf_Signed ,
01392 Dwarf_Bool ,
01393 Dwarf_Bool ,
01394 Dwarf_Error* );
01395
01396 Dwarf_Unsigned dwarf_lne_set_address(Dwarf_P_Debug ,
01397 Dwarf_Unsigned ,
01398 Dwarf_Unsigned ,
01399 Dwarf_Error* );
01400
01401 Dwarf_Unsigned dwarf_lne_end_sequence(Dwarf_P_Debug ,
01402 Dwarf_Addr ,
01403 Dwarf_Error* );
01404
01405
01406 Dwarf_Unsigned dwarf_add_frame_cie(Dwarf_P_Debug ,
01407 const char* ,
01408 Dwarf_Small ,
01409 Dwarf_Small ,
01410 Dwarf_Small ,
01411 Dwarf_Ptr ,
01412 Dwarf_Unsigned ,
01413 Dwarf_Error* );
01414
01415 Dwarf_Unsigned dwarf_add_frame_fde(
01416 Dwarf_P_Debug ,
01417 Dwarf_P_Fde ,
01418 Dwarf_P_Die ,
01419 Dwarf_Unsigned ,
01420 Dwarf_Unsigned ,
01421 Dwarf_Unsigned ,
01422 Dwarf_Unsigned ,
01423 Dwarf_Error* );
01424
01425 Dwarf_Unsigned dwarf_add_frame_fde_b(
01426 Dwarf_P_Debug ,
01427 Dwarf_P_Fde ,
01428 Dwarf_P_Die ,
01429 Dwarf_Unsigned ,
01430 Dwarf_Addr ,
01431 Dwarf_Unsigned ,
01432 Dwarf_Unsigned ,
01433 Dwarf_Unsigned ,
01434 Dwarf_Addr ,
01435 Dwarf_Error* );
01436
01437 Dwarf_Unsigned dwarf_add_frame_info_b(
01438 Dwarf_P_Debug dbg ,
01439 Dwarf_P_Fde ,
01440 Dwarf_P_Die ,
01441 Dwarf_Unsigned ,
01442 Dwarf_Addr ,
01443 Dwarf_Unsigned ,
01444 Dwarf_Unsigned ,
01445 Dwarf_Unsigned ,
01446 Dwarf_Addr ,
01447 Dwarf_Signed ,
01448 Dwarf_Unsigned ,
01449 Dwarf_Error* );
01450
01451 Dwarf_Unsigned dwarf_add_frame_info(
01452 Dwarf_P_Debug dbg ,
01453 Dwarf_P_Fde ,
01454 Dwarf_P_Die ,
01455 Dwarf_Unsigned ,
01456 Dwarf_Addr ,
01457 Dwarf_Unsigned ,
01458 Dwarf_Unsigned ,
01459 Dwarf_Signed ,
01460 Dwarf_Unsigned ,
01461 Dwarf_Error* );
01462
01463 Dwarf_P_Fde dwarf_add_fde_inst(
01464 Dwarf_P_Fde ,
01465 Dwarf_Small ,
01466 Dwarf_Unsigned ,
01467 Dwarf_Unsigned ,
01468 Dwarf_Error* );
01469
01470 Dwarf_P_Fde dwarf_add_fde_inst_with_signed_offset(
01471 Dwarf_P_Fde ,
01472 Dwarf_Small ,
01473 Dwarf_Unsigned ,
01474 Dwarf_Signed ,
01475 Dwarf_Error* );
01476
01477 Dwarf_P_Fde dwarf_new_fde(Dwarf_P_Debug , Dwarf_Error* );
01478
01479 Dwarf_P_Fde dwarf_fde_cfa_offset(
01480 Dwarf_P_Fde ,
01481 Dwarf_Unsigned ,
01482 Dwarf_Signed ,
01483 Dwarf_Error* );
01484
01485
01486 Dwarf_P_Die dwarf_new_die(
01487 Dwarf_P_Debug ,
01488 Dwarf_Tag ,
01489 Dwarf_P_Die ,
01490 Dwarf_P_Die ,
01491 Dwarf_P_Die ,
01492 Dwarf_P_Die ,
01493 Dwarf_Error* );
01494
01495 Dwarf_Unsigned dwarf_add_die_to_debug(
01496 Dwarf_P_Debug ,
01497 Dwarf_P_Die ,
01498 Dwarf_Error* );
01499
01500 Dwarf_P_Die dwarf_die_link(
01501 Dwarf_P_Die ,
01502 Dwarf_P_Die ,
01503 Dwarf_P_Die ,
01504 Dwarf_P_Die ,
01505 Dwarf_P_Die ,
01506 Dwarf_Error* );
01507
01508
01509 Dwarf_P_Expr dwarf_new_expr(Dwarf_P_Debug , Dwarf_Error* );
01510
01511 Dwarf_Unsigned dwarf_add_expr_gen(
01512 Dwarf_P_Expr ,
01513 Dwarf_Small ,
01514 Dwarf_Unsigned ,
01515 Dwarf_Unsigned ,
01516 Dwarf_Error* );
01517
01518 Dwarf_Unsigned dwarf_add_expr_addr(
01519 Dwarf_P_Expr ,
01520 Dwarf_Unsigned ,
01521 Dwarf_Signed ,
01522 Dwarf_Error* );
01523
01524 Dwarf_Unsigned dwarf_add_expr_addr_b(
01525 Dwarf_P_Expr ,
01526 Dwarf_Unsigned ,
01527 Dwarf_Unsigned ,
01528 Dwarf_Error* );
01529
01530 Dwarf_Unsigned dwarf_expr_current_offset(
01531 Dwarf_P_Expr ,
01532 Dwarf_Error* );
01533
01534 Dwarf_Addr dwarf_expr_into_block(
01535 Dwarf_P_Expr ,
01536 Dwarf_Unsigned* ,
01537 Dwarf_Error* );
01538
01539 Dwarf_Unsigned dwarf_add_arange(Dwarf_P_Debug ,
01540 Dwarf_Addr ,
01541 Dwarf_Unsigned ,
01542 Dwarf_Signed ,
01543 Dwarf_Error* );
01544
01545 Dwarf_Unsigned dwarf_add_arange_b(
01546 Dwarf_P_Debug ,
01547 Dwarf_Addr ,
01548 Dwarf_Unsigned ,
01549 Dwarf_Unsigned ,
01550 Dwarf_Unsigned ,
01551 Dwarf_Addr ,
01552 Dwarf_Error * );
01553
01554 Dwarf_Unsigned dwarf_add_pubname(
01555 Dwarf_P_Debug ,
01556 Dwarf_P_Die ,
01557 char* ,
01558 Dwarf_Error* );
01559
01560 Dwarf_Unsigned dwarf_add_funcname(
01561 Dwarf_P_Debug ,
01562 Dwarf_P_Die ,
01563 char* ,
01564 Dwarf_Error* );
01565
01566 Dwarf_Unsigned dwarf_add_typename(
01567 Dwarf_P_Debug ,
01568 Dwarf_P_Die ,
01569 char* ,
01570 Dwarf_Error* );
01571
01572 Dwarf_Unsigned dwarf_add_varname(
01573 Dwarf_P_Debug ,
01574 Dwarf_P_Die ,
01575 char* ,
01576 Dwarf_Error* );
01577
01578 Dwarf_Unsigned dwarf_add_weakname(
01579 Dwarf_P_Debug ,
01580 Dwarf_P_Die ,
01581 char* ,
01582 Dwarf_Error* );
01583
01584
01585
01586
01587
01588 int dwarf_def_macro(Dwarf_P_Debug ,
01589 Dwarf_Unsigned ,
01590 char * ,
01591 char * ,
01592 Dwarf_Error* );
01593
01594 int dwarf_undef_macro(Dwarf_P_Debug ,
01595 Dwarf_Unsigned ,
01596 char * ,
01597 Dwarf_Error* );
01598
01599 int dwarf_start_macro_file(Dwarf_P_Debug ,
01600 Dwarf_Unsigned ,
01601 Dwarf_Unsigned ,
01602 Dwarf_Error* );
01603
01604 int dwarf_end_macro_file(Dwarf_P_Debug ,
01605 Dwarf_Error* );
01606
01607 int dwarf_vendor_ext(Dwarf_P_Debug ,
01608 Dwarf_Unsigned ,
01609 char * ,
01610 Dwarf_Error* );
01611
01612
01613
01614
01615 void dwarf_p_dealloc(void* , Dwarf_Unsigned );
01616
01617 int dwarf_attr_offset(Dwarf_Die ,
01618 Dwarf_Attribute ,
01619 Dwarf_Off * ,
01620 Dwarf_Error * );
01621
01622
01623 #ifdef __cplusplus
01624 }
01625 #endif
01626 #endif
01627