':return:'

@property
def main_executable_regions(self):

    if (self._main_executable_regions is None):
        self._main_executable_regions = []
        obj = self.project.loader.main_object
        if obj.sections:
            for sec in obj.sections:
                if sec.is_executable:
                    min_addr = sec.min_addr
                    max_addr = (sec.max_addr + 1)
                    if ((max_addr <= min_addr) or (min_addr == 0)):
                        continue
                    self._main_executable_regions.append((min_addr, max_addr))
        else:
            for seg in obj.segments:
                if seg.is_executable:
                    min_addr = seg.min_addr
                    max_addr = (seg.max_addr + 1)
                    self._main_executable_regions.append((min_addr, max_addr))
    return self._main_executable_regions
