com.cmpware.elf
Class Dwarf2

java.lang.Object
  extended by com.cmpware.elf.Dwarf2

public class Dwarf2
extends java.lang.Object

This describes an ELF / DWARF2 debug section interpretation.

Copyright (c) 2004, 2005, 2006, 2007 Cmpware, Inc. All Rights Reserved.

Author:
SAG

Field Summary
static java.lang.String copyright
          Copyright string
static int DW_ACCESS_private
           
static int DW_ACCESS_protected
           
static int DW_ACCESS_public
           
static int DW_AT_abstract_origin
           
static int DW_AT_accessibility
           
static int DW_AT_address_class
           
static int DW_AT_artificial
           
static int DW_AT_base_types
           
static int DW_AT_bit_offset
           
static int DW_AT_bit_size
           
static int DW_AT_byte_size
           
static int DW_AT_calling_convention
           
static int DW_AT_common_reference
           
static int DW_AT_comp_dir
           
static int DW_AT_const_value
           
static int DW_AT_containing_type
           
static int DW_AT_count
           
static int DW_AT_data_member_location
           
static int DW_AT_decl_column
           
static int DW_AT_decl_file
           
static int DW_AT_decl_line
           
static int DW_AT_declaration
           
static int DW_AT_default_value
           
static int DW_AT_discr
           
static int DW_AT_discr_list
           
static int DW_AT_discr_value
           
static int DW_AT_encoding
           
static int DW_AT_external
           
static int DW_AT_frame_base
           
static int DW_AT_friend
           
static int DW_AT_hi_user
           
static int DW_AT_high_pc
           
static int DW_AT_identifier_case
           
static int DW_AT_import
           
static int DW_AT_inline
           
static int DW_AT_is_optional
           
static int DW_AT_language
           
static int DW_AT_lo_user
           
static int DW_AT_location
           
static int DW_AT_low_pc
           
static int DW_AT_lower_bound
           
static int DW_AT_macro_info
           
static int DW_AT_name
           
static int DW_AT_namelist_item
           
static int DW_AT_null
           
static int DW_AT_ordering
           
static int DW_AT_priority
           
static int DW_AT_producer
           
static int DW_AT_prototyped
           
static int DW_AT_return_addr
           
static int DW_AT_segment
           
static int DW_AT_sibling
           
static int DW_AT_specification
           
static int DW_AT_start_scope
           
static int DW_AT_static_link
           
static int DW_AT_stmt_list
           
static int DW_AT_stride_size
           
static int DW_AT_string_length
           
static int DW_AT_type
           
static int DW_AT_upper_bound
           
static int DW_AT_use_location
           
static int DW_AT_variable_parameter
           
static int DW_AT_virtuality
           
static int DW_AT_visibility
           
static int DW_AT_vtable_elem_location
           
static int DW_ATE_address
           
static int DW_ATE_boolean
           
static int DW_ATE_complex_float
           
static int DW_ATE_float
           
static int DW_ATE_hi_user
           
static int DW_ATE_lo_user
           
static int DW_ATE_signed
           
static int DW_ATE_signed_char
           
static int DW_ATE_unsigned
           
static int DW_ATE_unsigned_char
           
static int DW_CC_hi_user
           
static int DW_CC_lo_user
           
static int DW_CC_nocall
           
static int DW_CC_normal
           
static int DW_CC_program
           
static int DW_CFA_advance_loc
           
static int DW_CFA_advance_loc1
           
static int DW_CFA_advance_loc2
           
static int DW_CFA_advance_loc4
           
static int DW_CFA_def_cfa
           
static int DW_CFA_def_cfa_offset
           
static int DW_CFA_def_cfa_register
           
static int DW_CFA_hi_user
           
static int DW_CFA_lo_user
           
static int DW_CFA_nop
           
static int DW_CFA_offset
           
static int DW_CFA_offset_extended
           
static int DW_CFA_register
           
static int DW_CFA_remember_state
           
static int DW_CFA_restore
           
static int DW_CFA_restore_extended
           
static int DW_CFA_restore_state
           
static int DW_CFA_same_value
           
static int DW_CFA_set_loc
           
static int DW_CFA_undefined
           
static int DW_CHILDREN_no
           
static int DW_CHILDREN_yes
           
static int DW_DSC_label
           
static int DW_DSC_range
           
static int DW_FORM_addr
           
static int DW_FORM_block
           
static int DW_FORM_block1
           
static int DW_FORM_block2
           
static int DW_FORM_block4
           
static int DW_FORM_data1
           
static int DW_FORM_data2
           
static int DW_FORM_data4
           
static int DW_FORM_data8
           
static int DW_FORM_flag
           
static int DW_FORM_indirect
           
static int DW_FORM_ref_addr
           
static int DW_FORM_ref_udata
           
static int DW_FORM_ref1
           
static int DW_FORM_ref2
           
static int DW_FORM_ref4
           
static int DW_FORM_ref8
           
static int DW_FORM_sdata
           
static int DW_FORM_string
           
static int DW_FORM_strp
           
static int DW_FORM_udata
           
static int DW_ID_case_insensitive
           
static int DW_ID_case_sensitive
           
static int DW_ID_down_case
           
static int DW_ID_up_case
           
static int DW_INL_declared_inlined
           
static int DW_INL_declared_not_inlined
           
static int DW_INL_inlined
           
static int DW_INL_not_inlined
           
static int DW_LANG_Ada83
           
static int DW_LANG_C
           
static int DW_LANG_C_plus_plus
           
static int DW_LANG_C89
           
static int DW_LANG_Cobol74
           
static int DW_LANG_Cobol85
           
static int DW_LANG_Fortran77
           
static int DW_LANG_Fortran90
           
static int DW_LANG_hi_user
           
static int DW_LANG_lo_user
           
static int DW_LANG_Modula2
           
static int DW_LANG_Pascal83
           
static int DW_MACINFO_define
           
static int DW_MACINFO_end_file
           
static int DW_MACINFO_start_file
           
static int DW_MACINFO_undef
           
static int DW_MACINFO_vendor_ext
           
static int DW_ORD_col_major
           
static int DW_ORD_row_major
           
static int DW_TAG_access_declaration
           
static int DW_TAG_array_type
           
static int DW_TAG_base_type
           
static int DW_TAG_catch_block
           
static int DW_TAG_class_type
           
static int DW_TAG_common_block
           
static int DW_TAG_common_inclusion
           
static int DW_TAG_compile_unit
           
static int DW_TAG_const_type
           
static int DW_TAG_constant
           
static int DW_TAG_entry_point
           
static int DW_TAG_enumeration_type
           
static int DW_TAG_enumerator
           
static int DW_TAG_file_type
           
static int DW_TAG_formal_parameter
           
static int DW_TAG_friend
           
static int DW_TAG_hi_user
           
static int DW_TAG_imported_declaration
           
static int DW_TAG_inheritance
           
static int DW_TAG_inlined_subroutine
           
static int DW_TAG_label
           
static int DW_TAG_lexical_block
           
static int DW_TAG_lo_user
           
static int DW_TAG_member
           
static int DW_TAG_module
           
static int DW_TAG_namelist
           
static int DW_TAG_namelist_item
           
static int DW_TAG_null
           
static int DW_TAG_packed_type
           
static int DW_TAG_pointer_type
           
static int DW_TAG_ptr_to_member_type
           
static int DW_TAG_reference_type
           
static int DW_TAG_set_type
           
static int DW_TAG_string_type
           
static int DW_TAG_structure_type
           
static int DW_TAG_subprogram
           
static int DW_TAG_subrange_type
           
static int DW_TAG_subroutine_type
           
static int DW_TAG_template_type_param
           
static int DW_TAG_template_value_param
           
static int DW_TAG_thrown_type
           
static int DW_TAG_try_block
           
static int DW_TAG_typedef
           
static int DW_TAG_union_type
           
static int DW_TAG_unspecified_parameters
           
static int DW_TAG_variable
           
static int DW_TAG_variant
           
static int DW_TAG_variant_part
           
static int DW_TAG_volatile_type
           
static int DW_TAG_with_stmt
           
static int DW_VIRTUALITY_none
           
static int DW_VIRTUALITY_pure_virtual
           
static int DW_VIRTUALITY_virtual
           
static int DW_VIS_exported
           
static int DW_VIS_local
           
static int DW_VIS_qualified
           
(package private)  Dwarf2VariableInfo variables
          The DWARF2 variable info for this file
 
Constructor Summary
Dwarf2()
          Constructor
 
Method Summary
 int addrBytes()
          This method returns the number of bytes in an address.
static java.lang.String attributeData(int attrFormCode, java.lang.Object o)
          This method returns a string representation of the attribute data.
static java.lang.String attributeName(int attribute)
          This method returns a DWARF attribute name given the attribute code.
static java.lang.String baseTypeName(int baseType)
          This method returns a DWARF2 base type name given the base type code.
static java.lang.String callFrameOpName(int instr)
          This method returns a DWARF2 call frame instruction name given the call frame instruction code.
static java.lang.String formName(int form)
          This method returns a DWARF2 form name given the form code.
 int getAddr(java.lang.String dirName, java.lang.String fileName, int lineNumber)
          This method returns the address associated with a particular line number in a file.
 java.util.Vector getErrorList()
          This method returns the list of errors.
 LocationList getLocationList(int offset)
          This method returns the Location List associated with an offset value in the .debug_loc section.
 java.lang.String getSourceDirName(int addr)
          This method takes in an address (often the Program Counter of a running program) and returns the directory of the file containing the source code for this portion of the code.
 java.lang.String getSourceFileName(int addr)
          This method takes in an address (often the Program Counter of a running program) and returns the name of the file containing the source code for this portion of the code.
 int getSourceLine(int addr)
          This method returns the line number in the source code file given a memory address of an instruction.
 Tag[] getTags()
          This method returns an array of Tags containing all the DWARF2 tags.
 Scope getVariables()
          This method returns the variables in this file as the top level (file) Scope.
static java.lang.String hasChildrenName(int hasChildren)
          This method returns a DWARF2 "has children" name for the given "has children" code.
 boolean isDwarf2()
          This method returns true if valid DWARF2 information was found and false otherwise.
static java.lang.String languageName(int lang)
          This method returns a DWARF2 language name given the language code.
 void load(Elf elf)
          This constructor loads the DWARF2 data structures with the sections from the ELF file data.
 void setError(java.lang.String s)
          This method adds an error message to the list of errors.
 void setErrorList(java.util.Vector errorList)
          This method sets the error list vector.
static int SLEB128(ElfInputStream lebis)
          This method returns a signed LEB128 integer.
 boolean swapBytes()
          This method returns true if byte swapping is necessary when interpreting the DWARF2 data and false otherwise.
static java.lang.String tagName(int tag)
          This method returns a DWARF2 tag name given the tag code.
 java.lang.String toString()
          This method returns a string representation of the DWARF data.
static int ULEB128(ElfInputStream lebis)
          This method returns an unsigned LEB128 integer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

copyright

public static final java.lang.String copyright
Copyright string

See Also:
Constant Field Values

DW_TAG_null

public static final int DW_TAG_null
See Also:
Constant Field Values

DW_TAG_array_type

public static final int DW_TAG_array_type
See Also:
Constant Field Values

DW_TAG_class_type

public static final int DW_TAG_class_type
See Also:
Constant Field Values

DW_TAG_entry_point

public static final int DW_TAG_entry_point
See Also:
Constant Field Values

DW_TAG_enumeration_type

public static final int DW_TAG_enumeration_type
See Also:
Constant Field Values

DW_TAG_formal_parameter

public static final int DW_TAG_formal_parameter
See Also:
Constant Field Values

DW_TAG_imported_declaration

public static final int DW_TAG_imported_declaration
See Also:
Constant Field Values

DW_TAG_label

public static final int DW_TAG_label
See Also:
Constant Field Values

DW_TAG_lexical_block

public static final int DW_TAG_lexical_block
See Also:
Constant Field Values

DW_TAG_member

public static final int DW_TAG_member
See Also:
Constant Field Values

DW_TAG_pointer_type

public static final int DW_TAG_pointer_type
See Also:
Constant Field Values

DW_TAG_reference_type

public static final int DW_TAG_reference_type
See Also:
Constant Field Values

DW_TAG_compile_unit

public static final int DW_TAG_compile_unit
See Also:
Constant Field Values

DW_TAG_string_type

public static final int DW_TAG_string_type
See Also:
Constant Field Values

DW_TAG_structure_type

public static final int DW_TAG_structure_type
See Also:
Constant Field Values

DW_TAG_subroutine_type

public static final int DW_TAG_subroutine_type
See Also:
Constant Field Values

DW_TAG_typedef

public static final int DW_TAG_typedef
See Also:
Constant Field Values

DW_TAG_union_type

public static final int DW_TAG_union_type
See Also:
Constant Field Values

DW_TAG_unspecified_parameters

public static final int DW_TAG_unspecified_parameters
See Also:
Constant Field Values

DW_TAG_variant

public static final int DW_TAG_variant
See Also:
Constant Field Values

DW_TAG_common_block

public static final int DW_TAG_common_block
See Also:
Constant Field Values

DW_TAG_common_inclusion

public static final int DW_TAG_common_inclusion
See Also:
Constant Field Values

DW_TAG_inheritance

public static final int DW_TAG_inheritance
See Also:
Constant Field Values

DW_TAG_inlined_subroutine

public static final int DW_TAG_inlined_subroutine
See Also:
Constant Field Values

DW_TAG_module

public static final int DW_TAG_module
See Also:
Constant Field Values

DW_TAG_ptr_to_member_type

public static final int DW_TAG_ptr_to_member_type
See Also:
Constant Field Values

DW_TAG_set_type

public static final int DW_TAG_set_type
See Also:
Constant Field Values

DW_TAG_subrange_type

public static final int DW_TAG_subrange_type
See Also:
Constant Field Values

DW_TAG_with_stmt

public static final int DW_TAG_with_stmt
See Also:
Constant Field Values

DW_TAG_access_declaration

public static final int DW_TAG_access_declaration
See Also:
Constant Field Values

DW_TAG_base_type

public static final int DW_TAG_base_type
See Also:
Constant Field Values

DW_TAG_catch_block

public static final int DW_TAG_catch_block
See Also:
Constant Field Values

DW_TAG_const_type

public static final int DW_TAG_const_type
See Also:
Constant Field Values

DW_TAG_constant

public static final int DW_TAG_constant
See Also:
Constant Field Values

DW_TAG_enumerator

public static final int DW_TAG_enumerator
See Also:
Constant Field Values

DW_TAG_file_type

public static final int DW_TAG_file_type
See Also:
Constant Field Values

DW_TAG_friend

public static final int DW_TAG_friend
See Also:
Constant Field Values

DW_TAG_namelist

public static final int DW_TAG_namelist
See Also:
Constant Field Values

DW_TAG_namelist_item

public static final int DW_TAG_namelist_item
See Also:
Constant Field Values

DW_TAG_packed_type

public static final int DW_TAG_packed_type
See Also:
Constant Field Values

DW_TAG_subprogram

public static final int DW_TAG_subprogram
See Also:
Constant Field Values

DW_TAG_template_type_param

public static final int DW_TAG_template_type_param
See Also:
Constant Field Values

DW_TAG_template_value_param

public static final int DW_TAG_template_value_param
See Also:
Constant Field Values

DW_TAG_thrown_type

public static final int DW_TAG_thrown_type
See Also:
Constant Field Values

DW_TAG_try_block

public static final int DW_TAG_try_block
See Also:
Constant Field Values

DW_TAG_variant_part

public static final int DW_TAG_variant_part
See Also:
Constant Field Values

DW_TAG_variable

public static final int DW_TAG_variable
See Also:
Constant Field Values

DW_TAG_volatile_type

public static final int DW_TAG_volatile_type
See Also:
Constant Field Values

DW_TAG_lo_user

public static final int DW_TAG_lo_user
See Also:
Constant Field Values

DW_TAG_hi_user

public static final int DW_TAG_hi_user
See Also:
Constant Field Values

DW_CHILDREN_no

public static final int DW_CHILDREN_no
See Also:
Constant Field Values

DW_CHILDREN_yes

public static final int DW_CHILDREN_yes
See Also:
Constant Field Values

DW_AT_null

public static final int DW_AT_null
See Also:
Constant Field Values

DW_AT_sibling

public static final int DW_AT_sibling
See Also:
Constant Field Values

DW_AT_location

public static final int DW_AT_location
See Also:
Constant Field Values

DW_AT_name

public static final int DW_AT_name
See Also:
Constant Field Values

DW_AT_ordering

public static final int DW_AT_ordering
See Also:
Constant Field Values

DW_AT_byte_size

public static final int DW_AT_byte_size
See Also:
Constant Field Values

DW_AT_bit_offset

public static final int DW_AT_bit_offset
See Also:
Constant Field Values

DW_AT_bit_size

public static final int DW_AT_bit_size
See Also:
Constant Field Values

DW_AT_stmt_list

public static final int DW_AT_stmt_list
See Also:
Constant Field Values

DW_AT_low_pc

public static final int DW_AT_low_pc
See Also:
Constant Field Values

DW_AT_high_pc

public static final int DW_AT_high_pc
See Also:
Constant Field Values

DW_AT_language

public static final int DW_AT_language
See Also:
Constant Field Values

DW_AT_discr

public static final int DW_AT_discr
See Also:
Constant Field Values

DW_AT_discr_value

public static final int DW_AT_discr_value
See Also:
Constant Field Values

DW_AT_visibility

public static final int DW_AT_visibility
See Also:
Constant Field Values

DW_AT_import

public static final int DW_AT_import
See Also:
Constant Field Values

DW_AT_string_length

public static final int DW_AT_string_length
See Also:
Constant Field Values

DW_AT_common_reference

public static final int DW_AT_common_reference
See Also:
Constant Field Values

DW_AT_comp_dir

public static final int DW_AT_comp_dir
See Also:
Constant Field Values

DW_AT_const_value

public static final int DW_AT_const_value
See Also:
Constant Field Values

DW_AT_containing_type

public static final int DW_AT_containing_type
See Also:
Constant Field Values

DW_AT_default_value

public static final int DW_AT_default_value
See Also:
Constant Field Values

DW_AT_inline

public static final int DW_AT_inline
See Also:
Constant Field Values

DW_AT_is_optional

public static final int DW_AT_is_optional
See Also:
Constant Field Values

DW_AT_lower_bound

public static final int DW_AT_lower_bound
See Also:
Constant Field Values

DW_AT_producer

public static final int DW_AT_producer
See Also:
Constant Field Values

DW_AT_prototyped

public static final int DW_AT_prototyped
See Also:
Constant Field Values

DW_AT_return_addr

public static final int DW_AT_return_addr
See Also:
Constant Field Values

DW_AT_start_scope

public static final int DW_AT_start_scope
See Also:
Constant Field Values

DW_AT_stride_size

public static final int DW_AT_stride_size
See Also:
Constant Field Values

DW_AT_upper_bound

public static final int DW_AT_upper_bound
See Also:
Constant Field Values

DW_AT_abstract_origin

public static final int DW_AT_abstract_origin
See Also:
Constant Field Values

DW_AT_accessibility

public static final int DW_AT_accessibility
See Also:
Constant Field Values

DW_AT_address_class

public static final int DW_AT_address_class
See Also:
Constant Field Values

DW_AT_artificial

public static final int DW_AT_artificial
See Also:
Constant Field Values

DW_AT_base_types

public static final int DW_AT_base_types
See Also:
Constant Field Values

DW_AT_calling_convention

public static final int DW_AT_calling_convention
See Also:
Constant Field Values

DW_AT_count

public static final int DW_AT_count
See Also:
Constant Field Values

DW_AT_data_member_location

public static final int DW_AT_data_member_location
See Also:
Constant Field Values

DW_AT_decl_column

public static final int DW_AT_decl_column
See Also:
Constant Field Values

DW_AT_decl_file

public static final int DW_AT_decl_file
See Also:
Constant Field Values

DW_AT_decl_line

public static final int DW_AT_decl_line
See Also:
Constant Field Values

DW_AT_declaration

public static final int DW_AT_declaration
See Also:
Constant Field Values

DW_AT_discr_list

public static final int DW_AT_discr_list
See Also:
Constant Field Values

DW_AT_encoding

public static final int DW_AT_encoding
See Also:
Constant Field Values

DW_AT_external

public static final int DW_AT_external
See Also:
Constant Field Values

DW_AT_frame_base

public static final int DW_AT_frame_base
See Also:
Constant Field Values

DW_AT_friend

public static final int DW_AT_friend
See Also:
Constant Field Values

DW_AT_identifier_case

public static final int DW_AT_identifier_case
See Also:
Constant Field Values

DW_AT_macro_info

public static final int DW_AT_macro_info
See Also:
Constant Field Values

DW_AT_namelist_item

public static final int DW_AT_namelist_item
See Also:
Constant Field Values

DW_AT_priority

public static final int DW_AT_priority
See Also:
Constant Field Values

DW_AT_segment

public static final int DW_AT_segment
See Also:
Constant Field Values

DW_AT_specification

public static final int DW_AT_specification
See Also:
Constant Field Values

DW_AT_static_link

public static final int DW_AT_static_link
See Also:
Constant Field Values

DW_AT_type

public static final int DW_AT_type
See Also:
Constant Field Values

DW_AT_use_location

public static final int DW_AT_use_location
See Also:
Constant Field Values

DW_AT_variable_parameter

public static final int DW_AT_variable_parameter
See Also:
Constant Field Values

DW_AT_virtuality

public static final int DW_AT_virtuality
See Also:
Constant Field Values

DW_AT_vtable_elem_location

public static final int DW_AT_vtable_elem_location
See Also:
Constant Field Values

DW_AT_lo_user

public static final int DW_AT_lo_user
See Also:
Constant Field Values

DW_AT_hi_user

public static final int DW_AT_hi_user
See Also:
Constant Field Values

DW_FORM_addr

public static final int DW_FORM_addr
See Also:
Constant Field Values

DW_FORM_block2

public static final int DW_FORM_block2
See Also:
Constant Field Values

DW_FORM_block4

public static final int DW_FORM_block4
See Also:
Constant Field Values

DW_FORM_data2

public static final int DW_FORM_data2
See Also:
Constant Field Values

DW_FORM_data4

public static final int DW_FORM_data4
See Also:
Constant Field Values

DW_FORM_data8

public static final int DW_FORM_data8
See Also:
Constant Field Values

DW_FORM_string

public static final int DW_FORM_string
See Also:
Constant Field Values

DW_FORM_block

public static final int DW_FORM_block
See Also:
Constant Field Values

DW_FORM_block1

public static final int DW_FORM_block1
See Also:
Constant Field Values

DW_FORM_data1

public static final int DW_FORM_data1
See Also:
Constant Field Values

DW_FORM_flag

public static final int DW_FORM_flag
See Also:
Constant Field Values

DW_FORM_sdata

public static final int DW_FORM_sdata
See Also:
Constant Field Values

DW_FORM_strp

public static final int DW_FORM_strp
See Also:
Constant Field Values

DW_FORM_udata

public static final int DW_FORM_udata
See Also:
Constant Field Values

DW_FORM_ref_addr

public static final int DW_FORM_ref_addr
See Also:
Constant Field Values

DW_FORM_ref1

public static final int DW_FORM_ref1
See Also:
Constant Field Values

DW_FORM_ref2

public static final int DW_FORM_ref2
See Also:
Constant Field Values

DW_FORM_ref4

public static final int DW_FORM_ref4
See Also:
Constant Field Values

DW_FORM_ref8

public static final int DW_FORM_ref8
See Also:
Constant Field Values

DW_FORM_ref_udata

public static final int DW_FORM_ref_udata
See Also:
Constant Field Values

DW_FORM_indirect

public static final int DW_FORM_indirect
See Also:
Constant Field Values

DW_ATE_address

public static final int DW_ATE_address
See Also:
Constant Field Values

DW_ATE_boolean

public static final int DW_ATE_boolean
See Also:
Constant Field Values

DW_ATE_complex_float

public static final int DW_ATE_complex_float
See Also:
Constant Field Values

DW_ATE_float

public static final int DW_ATE_float
See Also:
Constant Field Values

DW_ATE_signed

public static final int DW_ATE_signed
See Also:
Constant Field Values

DW_ATE_signed_char

public static final int DW_ATE_signed_char
See Also:
Constant Field Values

DW_ATE_unsigned

public static final int DW_ATE_unsigned
See Also:
Constant Field Values

DW_ATE_unsigned_char

public static final int DW_ATE_unsigned_char
See Also:
Constant Field Values

DW_ATE_lo_user

public static final int DW_ATE_lo_user
See Also:
Constant Field Values

DW_ATE_hi_user

public static final int DW_ATE_hi_user
See Also:
Constant Field Values

DW_ACCESS_public

public static final int DW_ACCESS_public
See Also:
Constant Field Values

DW_ACCESS_protected

public static final int DW_ACCESS_protected
See Also:
Constant Field Values

DW_ACCESS_private

public static final int DW_ACCESS_private
See Also:
Constant Field Values

DW_VIS_local

public static final int DW_VIS_local
See Also:
Constant Field Values

DW_VIS_exported

public static final int DW_VIS_exported
See Also:
Constant Field Values

DW_VIS_qualified

public static final int DW_VIS_qualified
See Also:
Constant Field Values

DW_VIRTUALITY_none

public static final int DW_VIRTUALITY_none
See Also:
Constant Field Values

DW_VIRTUALITY_virtual

public static final int DW_VIRTUALITY_virtual
See Also:
Constant Field Values

DW_VIRTUALITY_pure_virtual

public static final int DW_VIRTUALITY_pure_virtual
See Also:
Constant Field Values

DW_LANG_C89

public static final int DW_LANG_C89
See Also:
Constant Field Values

DW_LANG_C

public static final int DW_LANG_C
See Also:
Constant Field Values

DW_LANG_Ada83

public static final int DW_LANG_Ada83
See Also:
Constant Field Values

DW_LANG_C_plus_plus

public static final int DW_LANG_C_plus_plus
See Also:
Constant Field Values

DW_LANG_Cobol74

public static final int DW_LANG_Cobol74
See Also:
Constant Field Values

DW_LANG_Cobol85

public static final int DW_LANG_Cobol85
See Also:
Constant Field Values

DW_LANG_Fortran77

public static final int DW_LANG_Fortran77
See Also:
Constant Field Values

DW_LANG_Fortran90

public static final int DW_LANG_Fortran90
See Also:
Constant Field Values

DW_LANG_Pascal83

public static final int DW_LANG_Pascal83
See Also:
Constant Field Values

DW_LANG_Modula2

public static final int DW_LANG_Modula2
See Also:
Constant Field Values

DW_LANG_lo_user

public static final int DW_LANG_lo_user
See Also:
Constant Field Values

DW_LANG_hi_user

public static final int DW_LANG_hi_user
See Also:
Constant Field Values

DW_ID_case_sensitive

public static final int DW_ID_case_sensitive
See Also:
Constant Field Values

DW_ID_up_case

public static final int DW_ID_up_case
See Also:
Constant Field Values

DW_ID_down_case

public static final int DW_ID_down_case
See Also:
Constant Field Values

DW_ID_case_insensitive

public static final int DW_ID_case_insensitive
See Also:
Constant Field Values

DW_CC_normal

public static final int DW_CC_normal
See Also:
Constant Field Values

DW_CC_program

public static final int DW_CC_program
See Also:
Constant Field Values

DW_CC_nocall

public static final int DW_CC_nocall
See Also:
Constant Field Values

DW_CC_lo_user

public static final int DW_CC_lo_user
See Also:
Constant Field Values

DW_CC_hi_user

public static final int DW_CC_hi_user
See Also:
Constant Field Values

DW_INL_not_inlined

public static final int DW_INL_not_inlined
See Also:
Constant Field Values

DW_INL_inlined

public static final int DW_INL_inlined
See Also:
Constant Field Values

DW_INL_declared_not_inlined

public static final int DW_INL_declared_not_inlined
See Also:
Constant Field Values

DW_INL_declared_inlined

public static final int DW_INL_declared_inlined
See Also:
Constant Field Values

DW_ORD_row_major

public static final int DW_ORD_row_major
See Also:
Constant Field Values

DW_ORD_col_major

public static final int DW_ORD_col_major
See Also:
Constant Field Values

DW_DSC_label

public static final int DW_DSC_label
See Also:
Constant Field Values

DW_DSC_range

public static final int DW_DSC_range
See Also:
Constant Field Values

DW_MACINFO_define

public static final int DW_MACINFO_define
See Also:
Constant Field Values

DW_MACINFO_undef

public static final int DW_MACINFO_undef
See Also:
Constant Field Values

DW_MACINFO_start_file

public static final int DW_MACINFO_start_file
See Also:
Constant Field Values

DW_MACINFO_end_file

public static final int DW_MACINFO_end_file
See Also:
Constant Field Values

DW_MACINFO_vendor_ext

public static final int DW_MACINFO_vendor_ext
See Also:
Constant Field Values

DW_CFA_advance_loc

public static final int DW_CFA_advance_loc
See Also:
Constant Field Values

DW_CFA_offset

public static final int DW_CFA_offset
See Also:
Constant Field Values

DW_CFA_restore

public static final int DW_CFA_restore
See Also:
Constant Field Values

DW_CFA_set_loc

public static final int DW_CFA_set_loc
See Also:
Constant Field Values

DW_CFA_advance_loc1

public static final int DW_CFA_advance_loc1
See Also:
Constant Field Values

DW_CFA_advance_loc2

public static final int DW_CFA_advance_loc2
See Also:
Constant Field Values

DW_CFA_advance_loc4

public static final int DW_CFA_advance_loc4
See Also:
Constant Field Values

DW_CFA_offset_extended

public static final int DW_CFA_offset_extended
See Also:
Constant Field Values

DW_CFA_restore_extended

public static final int DW_CFA_restore_extended
See Also:
Constant Field Values

DW_CFA_undefined

public static final int DW_CFA_undefined
See Also:
Constant Field Values

DW_CFA_same_value

public static final int DW_CFA_same_value
See Also:
Constant Field Values

DW_CFA_register

public static final int DW_CFA_register
See Also:
Constant Field Values

DW_CFA_remember_state

public static final int DW_CFA_remember_state
See Also:
Constant Field Values

DW_CFA_restore_state

public static final int DW_CFA_restore_state
See Also:
Constant Field Values

DW_CFA_def_cfa

public static final int DW_CFA_def_cfa
See Also:
Constant Field Values

DW_CFA_def_cfa_register

public static final int DW_CFA_def_cfa_register
See Also:
Constant Field Values

DW_CFA_def_cfa_offset

public static final int DW_CFA_def_cfa_offset
See Also:
Constant Field Values

DW_CFA_nop

public static final int DW_CFA_nop
See Also:
Constant Field Values

DW_CFA_lo_user

public static final int DW_CFA_lo_user
See Also:
Constant Field Values

DW_CFA_hi_user

public static final int DW_CFA_hi_user
See Also:
Constant Field Values

variables

Dwarf2VariableInfo variables
The DWARF2 variable info for this file

Constructor Detail

Dwarf2

public Dwarf2()
Constructor

Method Detail

load

public void load(Elf elf)
This constructor loads the DWARF2 data structures with the sections from the ELF file data.

Parameters:
elf - The data loaded from an ELF file.

getSourceFileName

public java.lang.String getSourceFileName(int addr)
This method takes in an address (often the Program Counter of a running program) and returns the name of the file containing the source code for this portion of the code. a null string ("") is returned the address does not correspond to any known source code file.

Parameters:
addr - The address.
Returns:
This method returns the name of the source code file associated with a particular program counter / memory address.

getSourceDirName

public java.lang.String getSourceDirName(int addr)
This method takes in an address (often the Program Counter of a running program) and returns the directory of the file containing the source code for this portion of the code. a null string ("") is returned the address does not correspond to any known source code file.

Parameters:
addr - The address.
Returns:
This method returns the directory of the source code file associated with a particular program counter / memory address.

getSourceLine

public int getSourceLine(int addr)
This method returns the line number in the source code file given a memory address of an instruction. If the mapping could not be performed, a zero is returned.

Parameters:
addr - The program counter / memory address of an instruction.
Returns:
This method returns the line number in the source code file given a memory address of an instruction.

getAddr

public int getAddr(java.lang.String dirName,
                   java.lang.String fileName,
                   int lineNumber)
This method returns the address associated with a particular line number in a file.

Parameters:
dirName - The directory name.
fileName - The file name.
lineNumber - The line number.
Returns:
This method returns the address associated with a particular line number in a file.

getVariables

public Scope getVariables()
This method returns the variables in this file as the top level (file) Scope.

Returns:
This method returns the variables in this file as the top level (file) Scope.

isDwarf2

public boolean isDwarf2()
This method returns true if valid DWARF2 information was found and false otherwise.

Returns:
This method returns true if valid DWARF2 information was found and false otherwise.

getErrorList

public java.util.Vector getErrorList()
This method returns the list of errors.

Returns:
This method returns the list of errors.

setErrorList

public void setErrorList(java.util.Vector errorList)
This method sets the error list vector. This permits errors to easily be gathered in one place.

Parameters:
errorList - The error list vector.

getTags

public Tag[] getTags()
This method returns an array of Tags containing all the DWARF2 tags.

Returns:
This method returns an array of Tags containing all the DWARF2 tags.

getLocationList

public LocationList getLocationList(int offset)
This method returns the Location List associated with an offset value in the .debug_loc section.

Parameters:
offset - the offset in the .debug_loc section.
Returns:
This method returns the Location List associated with an offset value in the .debug_loc section.

swapBytes

public boolean swapBytes()
This method returns true if byte swapping is necessary when interpreting the DWARF2 data and false otherwise.

Returns:
This method returns true if byte swapping is necessary when interpreting the DWARF2 data and false otherwise.

addrBytes

public int addrBytes()
This method returns the number of bytes in an address. This this typically 4 (for 32-bit machines) or 8 (for 64-bit machines).

Returns:
This method returns the number of byte in an address.

setError

public void setError(java.lang.String s)
This method adds an error message to the list of errors.

Parameters:
s - the error string.

toString

public java.lang.String toString()
This method returns a string representation of the DWARF data.

Overrides:
toString in class java.lang.Object
Returns:
This method returns a string representation of the DWARF data.

ULEB128

public static int ULEB128(ElfInputStream lebis)
                   throws java.io.IOException
This method returns an unsigned LEB128 integer.

Parameters:
lebis - The LEB128 input stream.
Returns:
This method returns an unsigned LEB128 integer.
Throws:
java.io.IOException - if there was an error reading the ULEB128 data.

SLEB128

public static int SLEB128(ElfInputStream lebis)
                   throws java.io.IOException
This method returns a signed LEB128 integer.

Parameters:
lebis - The LEB128 input stream.
Returns:
This method returns a signed LEB128 integer.
Throws:
java.io.IOException - if there was an error reading the ULEB128 data.

attributeData

public static java.lang.String attributeData(int attrFormCode,
                                             java.lang.Object o)
This method returns a string representation of the attribute data.

Parameters:
attrFormCode - The attribute form code.
o - The object containing tha attribute. This may be an Integer, Long, byte array of String.
Returns:
This method returns a string representation of the attribute data.

tagName

public static java.lang.String tagName(int tag)
This method returns a DWARF2 tag name given the tag code. This is used primarily for debug.

Parameters:
tag - The tag code.
Returns:
This method returns a DWARF2 tag name given the tag code. This is used primarily for debug.

hasChildrenName

public static java.lang.String hasChildrenName(int hasChildren)
This method returns a DWARF2 "has children" name for the given "has children" code. This is used primarily for debug.

Parameters:
hasChildren - The "has children" code.
Returns:
This method returns a DWARF2 "has children" name for the given "has children" code. This is used primarily for debug.

attributeName

public static java.lang.String attributeName(int attribute)
This method returns a DWARF attribute name given the attribute code. This is used primarily for debug.

Parameters:
attribute - The attribute code.
Returns:
This method returns a DWARF attribute name given the attribute code. This is used primarily for debug.

formName

public static java.lang.String formName(int form)
This method returns a DWARF2 form name given the form code. This is used primarily for debug.

Parameters:
form - The form code.
Returns:
This method returns a DWARF2 form name given the form code. This is used primarily for debug.

baseTypeName

public static java.lang.String baseTypeName(int baseType)
This method returns a DWARF2 base type name given the base type code. This is used primarily for debug.

Parameters:
baseType - The base type code.
Returns:
This method returns a DWARF2 base type name given the base type code. This is used primarily for debug.

languageName

public static java.lang.String languageName(int lang)
This method returns a DWARF2 language name given the language code. This is used primarily for debug.

Parameters:
lang - The language code.
Returns:
This method returns a DWARF2 language name given the language code. This is used primarily for debug.

callFrameOpName

public static java.lang.String callFrameOpName(int instr)
This method returns a DWARF2 call frame instruction name given the call frame instruction code. This is used primarily for debug.

Parameters:
instr - The call frame instruction code.
Returns:
This method returns a DWARF2 call frame instruction name given the call frame instruction code. This is used primarily for debug.