(addr: Union[int,Bits], bits)
Convert address of different types to a list of mapping between region IDs and offsets (strided intervals).

        :param addr: Address to convert
        :return: A list of mapping between region IDs and offsets.
        :rtype: dict
Convert address of different types to a list of mapping between region IDs and offsets (strided intervals).
Convert address of different types to a list of mapping between region IDs and offsets ( strided intervals ) .
def _normalize_address_type(addr: Union[int,Bits], bits) -> Generator[Tuple[str,StridedInterval],None,None]:
        """
        Convert address of different types to a list of mapping between region IDs and offsets (strided intervals).

        :param addr: Address to convert
        :return: A list of mapping between region IDs and offsets.
        :rtype: dict
        """

        if isinstance(addr, int):
            addr_e = claripy.BVV(addr, bits)
        else:
            addr_e = _raw_ast(addr)

        if isinstance(addr_e, (claripy.bv.BVV, claripy.vsa.StridedInterval, claripy.vsa.ValueSet)):
            raise SimMemoryError('_normalize_address_type() does not take claripy models.')

        if isinstance(addr_e, claripy.ast.Base):
            if not isinstance(addr_e._model_vsa, ValueSet):
                # Convert it to a ValueSet first by annotating it
                addr_e = addr_e.annotate(RegionAnnotation('global', 0, addr_e._model_vsa))

            for region, offset in addr_e._model_vsa.items():
                yield region, offset

        else:
            raise SimAbstractMemoryError('Unsupported address type %s' % type(addr_e))
def _normalize_address_type ( addr : Union [ int , Bits ] , bits ) -> Generator [ Tuple [ str , StridedInterval ] , None , None ] : if isinstance ( addr , int ) : addr_e = claripy . BVV ( addr , bits ) else : addr_e = _raw_ast ( addr ) if isinstance ( addr_e , ( claripy . bv . BVV , claripy . vsa . StridedInterval , claripy . vsa . ValueSet ) ) : raise SimMemoryError ( '_normalize_address_type() does not take claripy models.' ) if isinstance ( addr_e , claripy . ast . Base ) : if not isinstance ( addr_e . _model_vsa , ValueSet ) : # Convert it to a ValueSet first by annotating it addr_e = addr_e . annotate ( RegionAnnotation ( 'global' , 0 , addr_e . _model_vsa ) ) for region , offset in addr_e . _model_vsa . items ( ) : yield region , offset else : raise SimAbstractMemoryError ( 'Unsupported address type %s' % type ( addr_e ) )