parameters: (addr, size)
docstring: Read data with specified size  from the specified meomory
docstring_summary: Read data with specified size  from the specified meomory
docstring_tokens: Read data with specified size from the specified meomory
function: def read_from_memory(addr, size):
      """Read data with specified size  from the specified meomory"""
      inferior = get_inferior()
      # actually we can check the addr more securely
      # ( check the address is inside the enclave)
      if inferior == -1 or addr == 0:
          print ("Error happens in read_from_memory: addr = {0:x}".format(int(addr)))
          return None
      try:
          string = inferior.read_memory(addr, size)
          return string
      except gdb.MemoryError:
          print ("Can't access memory at {0:x}.".format(int(addr)))
          return None
function_tokens: def read_from_memory ( addr , size ) : inferior = get_inferior ( ) # actually we can check the addr more securely # ( check the address is inside the enclave) if inferior == - 1 or addr == 0 : print ( "Error happens in read_from_memory: addr = {0:x}" . format ( int ( addr ) ) ) return None try : string = inferior . read_memory ( addr , size ) return string except gdb . MemoryError : print ( "Can't access memory at {0:x}." . format ( int ( addr ) ) ) return None