(self, addr, size)
return ret
Get a list of abstract locations that is within the range of [addr, addr + size]

        This implementation is pretty slow. But since this method won't be called frequently, we can live with the bad
        implementation for now.

        :param addr:    Starting address of the memory region.
        :param size:    Size of the memory region, in bytes.
        :return:        A list of covered AbstractLocation objects, or an empty list if there is none.
Get a list of abstract locations that is within the range of [addr, addr + size]
Get a list of abstract locations that is within the range of [ addr addr + size ]
def get_abstract_locations(self, addr, size):
        """
        Get a list of abstract locations that is within the range of [addr, addr + size]

        This implementation is pretty slow. But since this method won't be called frequently, we can live with the bad
        implementation for now.

        :param addr:    Starting address of the memory region.
        :param size:    Size of the memory region, in bytes.
        :return:        A list of covered AbstractLocation objects, or an empty list if there is none.
        """

        ret = [ ]
        for aloc in self.alocs.values():
            for seg in aloc.segments:
                if seg.offset >= addr and seg.offset < addr + size:
                    ret.append(aloc)
                    break

        return ret
def get_abstract_locations ( self , addr , size ) : ret = [ ] for aloc in self . alocs . values ( ) : for seg in aloc . segments : if seg . offset >= addr and seg . offset < addr + size : ret . append ( aloc ) break return ret