docs: def get_current_frame_data(self):
          """
          Get all date about the current execution frame
  
          :return: current frame data
          :rtype: dict
          :raises AttributeError: if the debugger does hold any execution frame.
          :raises IOError: if source code for the current execution frame is not accessible.
          """
          filename = self.curframe.f_code.co_filename
          lines, start_line = inspect.findsource(self.curframe)
          if sys.version_info[0] == 2:
              lines = [line.decode('utf-8') for line in lines]
          return {
              'dirname': os.path.dirname(os.path.abspath(filename)) + os.path.sep,
              'filename': os.path.basename(filename),
              'file_listing': ''.join(lines),
              'current_line': self.curframe.f_lineno,
              'breakpoints': self.get_file_breaks(filename),
              'globals': self.get_globals(),
              'locals': self.get_locals()
          }