code: def blocks(self):
          
  
          for block_addr, block in self._local_blocks.items():
              try:
                  yield self._get_block(block_addr, size=block.size,
                                        byte_string=block.bytestr if isinstance(block, BlockNode) else None)
              except (SimEngineError, SimMemoryError):
                  pass
docs: An iterator of all local blocks in the current function.
  
          :return: angr.lifter.Block instances.