File: //lib/python3.9/site-packages/elftools/dwarf/__pycache__/structs.cpython-39.pyc
a
�#�_P2 � @ s� d dl mZmZmZmZmZmZmZmZm Z m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZ ddlT G dd� de �Z!G dd� de�Z"d S )
� )�UBInt8�UBInt16�UBInt32�UBInt64�ULInt8�ULInt16�ULInt32�ULInt64�SBInt8�SBInt16�SBInt32�SBInt64�SLInt8�SLInt16�SLInt32�SLInt64�Adapter�Struct�ConstructError�If�Enum�Array�
PrefixedArray�CString�Embed�StaticField)�RepeatUntilExcluding�ULEB128�SLEB128� )�*c @ sz e Zd ZdZddd�Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� ZdS )�DWARFStructsao Exposes Construct structs suitable for parsing information from DWARF
sections. Each compile unit in DWARF info can have its own structs
object. Keep in mind that these structs have to be given a name (by
calling them with a name) before being used for parsing (like other
Construct structs). Those that should be used without a name are marked
by (+).
Accessible attributes (mostly as described in chapter 7 of the DWARF
spec v3):
Dwarf_[u]int{8,16,32,64):
Data chunks of the common sizes
Dwarf_offset:
32-bit or 64-bit word, depending on dwarf_format
Dwarf_length:
32-bit or 64-bit word, depending on dwarf_format
Dwarf_target_addr:
32-bit or 64-bit word, depending on address size
Dwarf_initial_length:
"Initial length field" encoding
section 7.4
Dwarf_{u,s}leb128:
ULEB128 and SLEB128 variable-length encoding
Dwarf_CU_header (+):
Compilation unit header
Dwarf_abbrev_declaration (+):
Abbreviation table declaration - doesn't include the initial
code, only the contents.
Dwarf_dw_form (+):
A dictionary mapping 'DW_FORM_*' keys into construct Structs
that parse such forms. These Structs have already been given
dummy names.
Dwarf_lineprog_header (+):
Line program header
Dwarf_lineprog_file_entry (+):
A single file entry in a line program header or instruction
Dwarf_CIE_header (+):
A call-frame CIE
Dwarf_FDE_header (+):
A call-frame FDE
See also the documentation of public methods.
r c C sL |dks|dksJ �|dks(|dks(J �|| _ || _|| _|| _| �� dS )a{ dwarf_version:
Numeric DWARF version
little_endian:
True if the file is little endian, False if big
dwarf_format:
DWARF Format: 32 or 64-bit (see spec section 7.4)
address_size:
Target machine address size, in bytes (4 or 8). (See spec
section 7.5.1)
� �@ � � N)�
little_endian�dwarf_format�address_size�
dwarf_version�_create_structs)�selfr&