code: def Regions(self,
                skip_mapped_files=False,
                skip_shared_regions=False,
                skip_executable_regions=False,
                skip_readonly_regions=False):
      
      try:
        maps_file = open("/proc/" + str(self.pid) + "/maps", "r")
      except OSError as e:
        raise process_error.ProcessError(e)
  
      with maps_file:
        for line in maps_file:
          m = self.maps_re.match(line)
          if not m:
            continue
          start = int(m.group(1), 16)
          end = int(m.group(2), 16)
          region_protec = m.group(3)
          inode = int(m.group(6))
  
          if "r" in region_protec:
            if skip_mapped_files and inode != 0:
              continue
            if skip_shared_regions and "s" in region_protec:
              continue
            if skip_executable_regions and "x" in region_protec:
              continue
            if skip_readonly_regions and "w" not in region_protec:
              continue
            yield start, end - start
docs: Returns an iterator over the readable regions for this process.