Enum Class DWARFTag

java.lang.Object
java.lang.Enum<DWARFTag>
ghidra.app.util.bin.format.dwarf.DWARFTag
All Implemented Interfaces:
Serializable, Comparable<DWARFTag>, Constable

public enum DWARFTag extends Enum<DWARFTag>
Identifier/purpose of a DWARF DIE record.

Users of this enum should be tolerant of unknown tag id values. See DWARFAbbreviation's tagId.

  • Enum Constant Details

    • DW_TAG_array_type

      public static final DWARFTag DW_TAG_array_type
    • DW_TAG_class_type

      public static final DWARFTag DW_TAG_class_type
    • DW_TAG_entry_point

      public static final DWARFTag DW_TAG_entry_point
    • DW_TAG_enumeration_type

      public static final DWARFTag DW_TAG_enumeration_type
    • DW_TAG_formal_parameter

      public static final DWARFTag DW_TAG_formal_parameter
    • DW_TAG_imported_declaration

      public static final DWARFTag DW_TAG_imported_declaration
    • DW_TAG_label

      public static final DWARFTag DW_TAG_label
    • DW_TAG_lexical_block

      public static final DWARFTag DW_TAG_lexical_block
    • DW_TAG_member

      public static final DWARFTag DW_TAG_member
    • DW_TAG_pointer_type

      public static final DWARFTag DW_TAG_pointer_type
    • DW_TAG_reference_type

      public static final DWARFTag DW_TAG_reference_type
    • DW_TAG_compile_unit

      public static final DWARFTag DW_TAG_compile_unit
    • DW_TAG_string_type

      public static final DWARFTag DW_TAG_string_type
    • DW_TAG_structure_type

      public static final DWARFTag DW_TAG_structure_type
    • DW_TAG_subroutine_type

      public static final DWARFTag DW_TAG_subroutine_type
    • DW_TAG_typedef

      public static final DWARFTag DW_TAG_typedef
    • DW_TAG_union_type

      public static final DWARFTag DW_TAG_union_type
    • DW_TAG_unspecified_parameters

      public static final DWARFTag DW_TAG_unspecified_parameters
    • DW_TAG_variant

      public static final DWARFTag DW_TAG_variant
    • DW_TAG_common_block

      public static final DWARFTag DW_TAG_common_block
    • DW_TAG_common_inclusion

      public static final DWARFTag DW_TAG_common_inclusion
    • DW_TAG_inheritance

      public static final DWARFTag DW_TAG_inheritance
    • DW_TAG_inlined_subroutine

      public static final DWARFTag DW_TAG_inlined_subroutine
    • DW_TAG_module

      public static final DWARFTag DW_TAG_module
    • DW_TAG_ptr_to_member_type

      public static final DWARFTag DW_TAG_ptr_to_member_type
    • DW_TAG_set_type

      public static final DWARFTag DW_TAG_set_type
    • DW_TAG_subrange_type

      public static final DWARFTag DW_TAG_subrange_type
    • DW_TAG_with_stmt

      public static final DWARFTag DW_TAG_with_stmt
    • DW_TAG_access_declaration

      public static final DWARFTag DW_TAG_access_declaration
    • DW_TAG_base_type

      public static final DWARFTag DW_TAG_base_type
    • DW_TAG_catch_block

      public static final DWARFTag DW_TAG_catch_block
    • DW_TAG_const_type

      public static final DWARFTag DW_TAG_const_type
    • DW_TAG_constant

      public static final DWARFTag DW_TAG_constant
    • DW_TAG_enumerator

      public static final DWARFTag DW_TAG_enumerator
    • DW_TAG_file_type

      public static final DWARFTag DW_TAG_file_type
    • DW_TAG_friend

      public static final DWARFTag DW_TAG_friend
    • DW_TAG_namelist

      public static final DWARFTag DW_TAG_namelist
    • DW_TAG_namelist_item

      public static final DWARFTag DW_TAG_namelist_item
    • DW_TAG_packed_type

      public static final DWARFTag DW_TAG_packed_type
    • DW_TAG_subprogram

      public static final DWARFTag DW_TAG_subprogram
    • DW_TAG_template_type_param

      public static final DWARFTag DW_TAG_template_type_param
    • DW_TAG_template_value_param

      public static final DWARFTag DW_TAG_template_value_param
    • DW_TAG_thrown_type

      public static final DWARFTag DW_TAG_thrown_type
    • DW_TAG_try_block

      public static final DWARFTag DW_TAG_try_block
    • DW_TAG_variant_part

      public static final DWARFTag DW_TAG_variant_part
    • DW_TAG_variable

      public static final DWARFTag DW_TAG_variable
    • DW_TAG_volatile_type

      public static final DWARFTag DW_TAG_volatile_type
    • DW_TAG_dwarf_procedure

      public static final DWARFTag DW_TAG_dwarf_procedure
    • DW_TAG_restrict_type

      public static final DWARFTag DW_TAG_restrict_type
    • DW_TAG_interface_type

      public static final DWARFTag DW_TAG_interface_type
    • DW_TAG_namespace

      public static final DWARFTag DW_TAG_namespace
    • DW_TAG_imported_module

      public static final DWARFTag DW_TAG_imported_module
    • DW_TAG_unspecified_type

      public static final DWARFTag DW_TAG_unspecified_type
    • DW_TAG_partial_unit

      public static final DWARFTag DW_TAG_partial_unit
    • DW_TAG_imported_unit

      public static final DWARFTag DW_TAG_imported_unit
    • DW_TAG_mutable_type

      public static final DWARFTag DW_TAG_mutable_type
    • DW_TAG_condition

      public static final DWARFTag DW_TAG_condition
    • DW_TAG_shared_type

      public static final DWARFTag DW_TAG_shared_type
    • DW_TAG_type_unit

      public static final DWARFTag DW_TAG_type_unit
    • DW_TAG_rvalue_reference_type

      public static final DWARFTag DW_TAG_rvalue_reference_type
    • DW_TAG_template_alias

      public static final DWARFTag DW_TAG_template_alias
    • DW_TAG_coarray_type

      public static final DWARFTag DW_TAG_coarray_type
    • DW_TAG_generic_subrange

      public static final DWARFTag DW_TAG_generic_subrange
    • DW_TAG_dynamic_type

      public static final DWARFTag DW_TAG_dynamic_type
    • DW_TAG_atomic_type

      public static final DWARFTag DW_TAG_atomic_type
    • DW_TAG_call_site

      public static final DWARFTag DW_TAG_call_site
    • DW_TAG_call_site_parameter

      public static final DWARFTag DW_TAG_call_site_parameter
    • DW_TAG_skeleton_unit

      public static final DWARFTag DW_TAG_skeleton_unit
    • DW_TAG_immutable_type

      public static final DWARFTag DW_TAG_immutable_type
    • DW_TAG_lo_user

      public static final DWARFTag DW_TAG_lo_user
    • DW_TAG_MIPS_loop

      public static final DWARFTag DW_TAG_MIPS_loop
    • DW_TAG_HP_array_descriptor

      public static final DWARFTag DW_TAG_HP_array_descriptor
    • DW_TAG_HP_Bliss_field

      public static final DWARFTag DW_TAG_HP_Bliss_field
    • DW_TAG_HP_Bliss_field_set

      public static final DWARFTag DW_TAG_HP_Bliss_field_set
    • DW_TAG_format_label

      public static final DWARFTag DW_TAG_format_label
    • DW_TAG_function_template

      public static final DWARFTag DW_TAG_function_template
    • DW_TAG_class_template

      public static final DWARFTag DW_TAG_class_template
    • DW_TAG_GNU_BINCL

      public static final DWARFTag DW_TAG_GNU_BINCL
    • DW_TAG_GNU_EINCL

      public static final DWARFTag DW_TAG_GNU_EINCL
    • DW_TAG_GNU_template_template_param

      public static final DWARFTag DW_TAG_GNU_template_template_param
    • DW_TAG_GNU_template_parameter_pack

      public static final DWARFTag DW_TAG_GNU_template_parameter_pack
    • DW_TAG_GNU_formal_parameter_pack

      public static final DWARFTag DW_TAG_GNU_formal_parameter_pack
    • DW_TAG_gnu_call_site

      public static final DWARFTag DW_TAG_gnu_call_site
    • DW_TAG_gnu_call_site_parameter

      public static final DWARFTag DW_TAG_gnu_call_site_parameter
    • DW_TAG_APPLE_ptrauth_type

      public static final DWARFTag DW_TAG_APPLE_ptrauth_type
    • DW_TAG_hi_user

      public static final DWARFTag DW_TAG_hi_user
    • DW_TAG_UNKNOWN

      public static final DWARFTag DW_TAG_UNKNOWN
  • Method Details

    • values

      public static DWARFTag[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static DWARFTag valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • name

      public String name(int rawTagId)
      Returns the name of this enum, falling back to the rawTagId value if this enum is the DW_TAG_UNKNOWN value.
      Parameters:
      rawTagId - tag id that corresponds to actual tag id found in the DWARF data
      Returns:
      string name of this enum
    • getId

      public int getId()
    • isType

      public boolean isType()
    • isNamedType

      public boolean isNamedType()
    • isNameSpaceContainer

      public boolean isNameSpaceContainer()
      Returns true if the children of this DIE are within a new namespace.

      Ie. Namespaces, subprogram, class, interface, struct, union, enum

      Returns:
      true if the children of this DIE are within a new namespace
    • isStructureType

      public boolean isStructureType()
      Returns true if this DIE defines a structure-like element (class, struct, interface, union).
      Returns:
      true if this DIE defines a structure-like element (class, struct, interface, union)
    • isFuncDefType

      public boolean isFuncDefType()
    • getContainerTypeName

      public String getContainerTypeName()
      Returns a string that describes what kind of object is specified by the DIEAggregate.

      Used to create a name for anonymous types.

      Returns:
      String describing the type of the DIEA.
    • getSymbolType

      public SymbolType getSymbolType()
      Returns the SymbolType that corresponds to a DWARF tag

      The mapping between tag type and SymbolType is not exact. There is no matching SymbolType for a DWARF static variable, so "LOCAL_VAR" is used currently.

      This mainly is used in constructing a NamespacePath, and the only critical usage there is Namespace vs. Class vs. everything else.

      Returns:
      SymbolType
    • of

      public static DWARFTag of(int tagId)