!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~,(see Section 7.5.3 of DWARF3 specification)  reference  reference  reference  reference  reference  reference  constant string  constant flag  constant block block string 4constant, lineptr, loclistptr, macptr, rangelistptr 4constant, lineptr, loclistptr, macptr, rangelistptr  constant block block address user extension flag flag flag  constant  reference flag flag flag string  constant  constant  reference  constant  constant string  constant  constant  constant !address, flag, reference, string  rangelistptr  reference flag address block, constant, reference block block, constant, reference  block, constant, reference  block, loclistptr   constant  flag  block, loclistptr  reference block, loclistptr  reference block, loclistptr  reference block macptr  constant  reference block, loclistptr flag  constant block flag  constant  constant  constant block, constant, loclistptr  block, constant, reference ! constant " reference #flag $ constant % constant & reference 'block, constant, reference ( constant ) constant *block, loclistptr +flag ,string -block, constant, reference .flag / constant 0 reference 1 reference 2block, constant, string 3string 4 reference 5block, loclistptr 6 reference 7 constant 8 constant 9 reference : constant ;address <address =lineptr >block, constant, reference ?block, constant, reference @block, constant, reference A constant Bstring Cblock, loclistptr D reference EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Implementation defined Marks end of file [Marks start of file with the line where the file was included from and a source file index !Line number and undefined symbol /Line number and defined symbol with definition   tThe dwarf information entries form a graph of nodes tagged with attributes. Please refer to the DWARF specification s for semantics. Although it looks like a tree, there can be attributes which have adjacency information which will  introduce cross-branch edges. "Unique identifier for this entry. Unique identifier of this entry' s parent.  Unique identifiers of this entry' s children. FUnique identifier of the left sibling in the DIE tree, if one exists. GUnique identifier of the right sibling in the DIE tree, if one exists.  Type tag. Attribute tag and value pairs. TDecoder used to decode this entry. May be needed to further parse attribute values.    JType containing functions and data needed for decoding DWARF information. !True for little endian encoding.  True for 64-bit DWARF encoding. ,True for 64-bit pointers on target machine. !Largest permissible file offset. $Largest permissible target address. "Action for reading a 16-bit word. "Action for reading a 32-bit word. "Action for reading a 64-bit word. 0Action for reading a offset for the DWARF file. 5Action for reading a pointer for the target machine. mUtility function for retrieving the list of values for a specified attribute from a DWARF information entry. `Parses the .debug_info section (as ByteString) using the .debug_abbrev and .debug_str sections. ?True for little endian target addresses. False for big endian. (ByteString for the .debug_info section. *ByteString for the .debug_abbrev section. 'ByteString for the .debug_str section. LA map from the unique ids to their corresponding DWARF information entries. uParses the .debug_pubnames section (as ByteString) into a map from a value name to a debug info id in the DwarfInfo. tParses the .debug_pubtypes section (as ByteString) into a map from a type name to a debug info id in the DwarfInfo. Parses the .debug_aranges section (as ByteString) into a map from an address range to a debug info id that indexes the DwarfInfo. gRetrieves the line information for a DIE from a given substring of the .debug_line section. The offset W into the .debug_line section is obtained from the DW_AT_stmt_list attribute of a DIE. xRetrieves the macro information for a compilation unit from a given substring of the .debug_macinfo section. The offset l into the .debug_macinfo section is obtained from the DW_AT_macro_info attribute of a compilation unit DIE. AParse the .debug_frame section into a list of DW_CIEFDE records. 3True for little endian data. False for big endian. DTrue for 64-bit target addresses. False of 32-bit target addresses. )ByteString for the .debug_frame section. Retrieves the non-contiguous address ranges for a compilation unit from a given substring of the .debug_ranges section. The offset g into the .debug_ranges section is obtained from the DW_AT_ranges attribute of a compilation unit DIE. J Left results are base address entries. Right results are address ranges. eRetrieves the location list expressions from a given substring of the .debug_loc section. The offset ` into the .debug_loc section is obtained from an attribute of class loclistptr for a given DIE. d Left results are base address entries. Right results are address ranges and a location expression. dParse a ByteString into a DWARF opcode. This will be needed for further decoding of DIE attributes.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~N~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPOE~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      >MLKJIHGFEDCBA@?8=<;:947650321,/.-(+*)'&%$#"!       '&%$#"!  !"#$%&'(+*))*+,/.--./032112347655678=<;:99:;<=>MLKJIHGFEDCBA@??@ABCDEFGHIJKLMN~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPOOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~WDCBA@?>=<;:9876543210/.-,+*)('&%$#"!            !"#$%&'()*+,-./0123456789:;<=>?@ABCDE9~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       dwarf-0.2 Data.DwarfDW_DSC DW_DSC_range DW_DSC_labelDW_ORDDW_ORD_col_majorDW_ORD_row_majorDW_INLDW_INL_declared_inlinedDW_INL_declared_not_inlinedDW_INL_inlinedDW_INL_not_inlinedDW_CC DW_CC_nocall DW_CC_program DW_CC_normalDW_IDDW_ID_case_insensitiveDW_ID_down_case DW_ID_up_caseDW_ID_case_sensitiveDW_LANG DW_LANG_D DW_LANG_UPCDW_LANG_ObjC_plus_plus DW_LANG_ObjC DW_LANG_PLIDW_LANG_Fortran95 DW_LANG_Ada95 DW_LANG_C99 DW_LANG_JavaDW_LANG_Modula2DW_LANG_Pascal83DW_LANG_Fortran90DW_LANG_Fortran77DW_LANG_Cobol85DW_LANG_Cobol74DW_LANG_C_plus_plus DW_LANG_Ada83 DW_LANG_C DW_LANG_C89 DW_VIRTUALITYDW_VIRTUALITY_pure_virtualDW_VIRTUALITY_virtualDW_VIRTUALITY_noneDW_VISDW_VIS_qualifiedDW_VIS_exported DW_VIS_local DW_ACCESSDW_ACCESS_privateDW_ACCESS_protectedDW_ACCESS_publicDW_END DW_END_little DW_END_bigDW_END_defaultDW_DSDW_DS_trailing_separateDW_DS_leading_separateDW_DS_trailing_overpunchDW_DS_leading_overpunchDW_DS_unsignedDW_ATEDW_ATE_decimal_floatDW_ATE_unsigned_fixedDW_ATE_signed_fixed DW_ATE_editedDW_ATE_numeric_stringDW_ATE_packed_decimalDW_ATE_imaginary_floatDW_ATE_unsigned_charDW_ATE_unsignedDW_ATE_signed_char DW_ATE_signed DW_ATE_floatDW_ATE_complex_floatDW_ATE_booleanDW_ATE_addressDW_OPDW_OP_bit_pieceDW_OP_call_frame_cfaDW_OP_form_tls_addressDW_OP_call_ref DW_OP_call4 DW_OP_call2DW_OP_push_object_address DW_OP_nopDW_OP_xderef_sizeDW_OP_deref_size DW_OP_piece DW_OP_bregx DW_OP_fbreg DW_OP_regx DW_OP_breg31 DW_OP_breg30 DW_OP_breg29 DW_OP_breg28 DW_OP_breg27 DW_OP_breg26 DW_OP_breg25 DW_OP_breg24 DW_OP_breg23 DW_OP_breg22 DW_OP_breg21 DW_OP_breg20 DW_OP_breg19 DW_OP_breg18 DW_OP_breg17 DW_OP_breg16 DW_OP_breg15 DW_OP_breg14 DW_OP_breg13 DW_OP_breg12 DW_OP_breg11 DW_OP_breg10 DW_OP_breg9 DW_OP_breg8 DW_OP_breg7 DW_OP_breg6 DW_OP_breg5 DW_OP_breg4 DW_OP_breg3 DW_OP_breg2 DW_OP_breg1 DW_OP_breg0 DW_OP_reg31 DW_OP_reg30 DW_OP_reg29 DW_OP_reg28 DW_OP_reg27 DW_OP_reg26 DW_OP_reg25 DW_OP_reg24 DW_OP_reg23 DW_OP_reg22 DW_OP_reg21 DW_OP_reg20 DW_OP_reg19 DW_OP_reg18 DW_OP_reg17 DW_OP_reg16 DW_OP_reg15 DW_OP_reg14 DW_OP_reg13 DW_OP_reg12 DW_OP_reg11 DW_OP_reg10 DW_OP_reg9 DW_OP_reg8 DW_OP_reg7 DW_OP_reg6 DW_OP_reg5 DW_OP_reg4 DW_OP_reg3 DW_OP_reg2 DW_OP_reg1 DW_OP_reg0 DW_OP_lit31 DW_OP_lit30 DW_OP_lit29 DW_OP_lit28 DW_OP_lit27 DW_OP_lit26 DW_OP_lit25 DW_OP_lit24 DW_OP_lit23 DW_OP_lit22 DW_OP_lit21 DW_OP_lit20 DW_OP_lit19 DW_OP_lit18 DW_OP_lit17 DW_OP_lit16 DW_OP_lit15 DW_OP_lit14 DW_OP_lit13 DW_OP_lit12 DW_OP_lit11 DW_OP_lit10 DW_OP_lit9 DW_OP_lit8 DW_OP_lit7 DW_OP_lit6 DW_OP_lit5 DW_OP_lit4 DW_OP_lit3 DW_OP_lit2 DW_OP_lit1 DW_OP_lit0DW_OP_neDW_OP_ltDW_OP_leDW_OP_gtDW_OP_geDW_OP_eq DW_OP_bra DW_OP_skip DW_OP_xor DW_OP_shra DW_OP_shr DW_OP_shlDW_OP_plus_uconst DW_OP_plusDW_OP_or DW_OP_not DW_OP_neg DW_OP_mul DW_OP_mod DW_OP_minus DW_OP_div DW_OP_and DW_OP_abs DW_OP_xderef DW_OP_rot DW_OP_swap DW_OP_pick DW_OP_over DW_OP_drop DW_OP_dup DW_OP_consts DW_OP_constu DW_OP_const8s DW_OP_const8u DW_OP_const4s DW_OP_const4u DW_OP_const2s DW_OP_const2u DW_OP_const1s DW_OP_const1u DW_OP_deref DW_OP_addrDW_ATVAL DW_ATVAL_BOOL DW_ATVAL_BLOBDW_ATVAL_STRING DW_ATVAL_UINT DW_ATVAL_INTDW_AT DW_AT_userDW_AT_recursive DW_AT_pureDW_AT_elementalDW_AT_endianityDW_AT_object_pointerDW_AT_explicitDW_AT_threads_scaled DW_AT_mutableDW_AT_picture_stringDW_AT_digit_countDW_AT_decimal_sign DW_AT_smallDW_AT_decimal_scaleDW_AT_binary_scaleDW_AT_descriptionDW_AT_call_lineDW_AT_call_fileDW_AT_call_columnDW_AT_trampoline DW_AT_rangesDW_AT_extensionDW_AT_use_UTF8DW_AT_entry_pcDW_AT_byte_strideDW_AT_data_locationDW_AT_associatedDW_AT_allocatedDW_AT_vtable_elem_locationDW_AT_virtualityDW_AT_variable_parameterDW_AT_use_location DW_AT_typeDW_AT_static_linkDW_AT_specification DW_AT_segmentDW_AT_priorityDW_AT_namelist_itemDW_AT_macro_infoDW_AT_identifier_case DW_AT_friendDW_AT_frame_baseDW_AT_externalDW_AT_encodingDW_AT_discr_listDW_AT_declarationDW_AT_decl_lineDW_AT_decl_fileDW_AT_decl_columnDW_AT_data_member_location DW_AT_countDW_AT_calling_conventionDW_AT_base_typesDW_AT_artificialDW_AT_address_classDW_AT_accessibilityDW_AT_abstract_originDW_AT_upper_boundDW_AT_bit_strideDW_AT_start_scopeDW_AT_return_addrDW_AT_prototypedDW_AT_producerDW_AT_lower_boundDW_AT_is_optional DW_AT_inlineDW_AT_default_valueDW_AT_containing_typeDW_AT_const_valueDW_AT_comp_dirDW_AT_common_referenceDW_AT_string_length DW_AT_importDW_AT_visibilityDW_AT_discr_value DW_AT_discrDW_AT_language DW_AT_high_pc DW_AT_low_pcDW_AT_stmt_listDW_AT_bit_sizeDW_AT_bit_offsetDW_AT_byte_sizeDW_AT_ordering DW_AT_nameDW_AT_location DW_AT_siblingDW_TAGDW_TAG_shared_typeDW_TAG_conditionDW_TAG_imported_unitDW_TAG_partial_unitDW_TAG_unspecified_typeDW_TAG_imported_moduleDW_TAG_namespaceDW_TAG_interface_typeDW_TAG_restrict_typeDW_TAG_dwarf_procedureDW_TAG_volatile_typeDW_TAG_variableDW_TAG_variant_partDW_TAG_try_blockDW_TAG_thrown_typeDW_TAG_template_value_parameterDW_TAG_template_type_parameterDW_TAG_subprogramDW_TAG_packed_typeDW_TAG_namelist_itemDW_TAG_namelist DW_TAG_friendDW_TAG_file_typeDW_TAG_enumeratorDW_TAG_constantDW_TAG_const_typeDW_TAG_catch_blockDW_TAG_base_typeDW_TAG_access_declarationDW_TAG_with_stmtDW_TAG_subrange_typeDW_TAG_set_typeDW_TAG_ptr_to_member_type DW_TAG_moduleDW_TAG_inlined_subroutineDW_TAG_inheritanceDW_TAG_common_inclusionDW_TAG_common_blockDW_TAG_variantDW_TAG_unspecified_parametersDW_TAG_union_typeDW_TAG_typedefDW_TAG_subroutine_typeDW_TAG_structure_typeDW_TAG_string_typeDW_TAG_compile_unitDW_TAG_reference_typeDW_TAG_pointer_type DW_TAG_memberDW_TAG_lexical_block DW_TAG_labelDW_TAG_imported_declarationDW_TAG_formal_parameterDW_TAG_enumeration_typeDW_TAG_entry_pointDW_TAG_class_typeDW_TAG_array_type DW_CIEFDEDW_FDE fdeCiePointerfdeInitialLocationfdeAddressRangefdeInstructionsDW_CIEcieAugmentationcieCodeAlignmentFactorcieDataAlignmentFactorcieReturnAddressRegistercieInitialInstructionsDW_CFADW_CFA_val_expressionDW_CFA_val_offset_sfDW_CFA_val_offsetDW_CFA_def_cfa_offset_sfDW_CFA_def_cfa_sfDW_CFA_offset_extended_sfDW_CFA_expressionDW_CFA_def_cfa_expressionDW_CFA_def_cfa_offsetDW_CFA_def_cfa_registerDW_CFA_def_cfaDW_CFA_restore_stateDW_CFA_remember_stateDW_CFA_registerDW_CFA_same_valueDW_CFA_undefinedDW_CFA_restore_extendedDW_CFA_offset_extendedDW_CFA_advance_loc4DW_CFA_advance_loc2DW_CFA_advance_loc1DW_CFA_set_loc DW_CFA_nopDW_CFA_restore DW_CFA_offsetDW_CFA_advance_loc DW_MACINFODW_MACINFO_vendor_extDW_MACINFO_end_fileDW_MACINFO_start_fileDW_MACINFO_undefDW_MACINFO_defineDW_LNE lnmAddresslnmFilelnmLine lnmColumn lnmStatement lnmBasicBlocklnmEndSequencelnmPrologueEndlnmEpilogueBeginlnmISAlnmFilesDIEdieId dieParent dieChildrendieSiblingLeftdieSiblingRightdieTag dieAttributes dieReader DwarfReader littleEndiandwarf64target64 largestOffsetlargestTargetAddress getWord16 getWord32 getWord64getDwarfOffsetgetDwarfTargetAddress!?parseDwarfInfoparseDwarfPubnamesparseDwarfPubtypesparseDwarfLineparseDwarfMacInfoparseDwarfFrameparseDwarfRanges parseDwarfLoc parseDW_OPdw_atedw_dsdw_end dw_accessdw_vis dw_virtualitydw_langdw_ccdw_inldw_orddw_dscDW_FORMDW_FORM_indirectDW_FORM_ref_udata DW_FORM_ref8 DW_FORM_ref4 DW_FORM_ref2 DW_FORM_ref1DW_FORM_ref_addr DW_FORM_udata DW_FORM_strp DW_FORM_sdata DW_FORM_flag DW_FORM_data1DW_FORM_block1 DW_FORM_blockDW_FORM_string DW_FORM_data8 DW_FORM_data4 DW_FORM_data2DW_FORM_block4DW_FORM_block2 DW_FORM_addrDW_LNIDW_LNE_define_fileDW_LNE_set_addressDW_LNE_end_sequenceDW_LNS_set_isaDW_LNS_set_epilogue_beginDW_LNS_set_prologue_endDW_LNS_fixed_advance_pcDW_LNS_const_add_pcDW_LNS_set_basic_blockDW_LNS_negate_stmtDW_LNS_set_columnDW_LNS_set_fileDW_LNS_advance_lineDW_LNS_advance_pc DW_LNS_copyDW_LNI_special DW_ABBREV abbrevNum abbrevTagabbrevChildrenabbrevAttrFormsDwarfEndianSizeReaderDwarfEndianReadergetWhilegetNullTerminatedString getSLEB128 getULEB128getDwarfUnitLength getAbbrevListgetNameLookupEntriesgetNameLookupTableparseDwarfArangesstepLineMachinegetWhileNotEmpty