[ Root System Explorer ]
Location:
Root
/
lib
/
python3.9
/
site-packages
/
elftools
/
dwarf
/
__pycache__
+ Folder
+ File
Upload
Editing: aranges.cpython-39.opt-1.pyc
a �#�_| � @ sR d dl Z d dlmZ ddlmZ d dlmZ d dlZedd�ZG dd � d e �Z dS ) � N)� namedtuple� )�struct_parse)�bisect_right�ARangeEntryzKbegin_addr length info_offset unit_length version address_size segment_sizec @ s0 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd S )�ARangesz� ARanges table in DWARF stream, size: A stream holding the .debug_aranges section, and its size structs: A DWARFStructs instance for parsing the data c C sD || _ || _|| _| �� | _| jjdd� d� dd� | jD �| _d S )Nc S s | j S )N�� begin_addr)�entry� r �:/usr/lib/python3.9/site-packages/elftools/dwarf/aranges.py�<lambda>) � z"ARanges.__init__.<locals>.<lambda>)�keyc S s g | ] }|j �qS r r )�.0r r r r � <listcomp>, r z$ARanges.__init__.<locals>.<listcomp>)�stream�size�structs�_get_entries�entries�sort�keys)�selfr r r r r r �__init__ s zARanges.__init__c C sF | j t| j|�d }|j| kr4|j|j k r>n n|jS dS dS )z� Given an address, get the offset of the CU it belongs to, where 'offset' refers to the offset in the .debug_info section. � N)r r r r �length�info_offset)r �addr�tupr r r �cu_offset_at_addr/ s "zARanges.cu_offset_at_addrc C s@ | j �d� g }d}|| jk �r<t| jj| j |�}| �|d �}|d dk�r|d d }| j �� }tt � |t|� �| �}| j �|� t|d�| j �}t|d�| j �} |dks�| dk�r&|�t || |d |d |d |d |d d �� t|d�| j �}t|d�| j �} q�n|d dk�r&td��||j | j�� }q|S )zS Populate self.entries with ARangeEntry tuples for each range of addresses r �address_size�segment_sizer r r Zdebug_info_offset�unit_length�version)r r r r# r$ r! r"