code: def resolve_compound_variable_fields(dbg, thread_id, frame_id, scope, attrs):
      
  
      var = getVariable(dbg, thread_id, frame_id, scope, attrs)
  
      try:
          _type, _typeName, resolver = get_type(var)
          return _typeName, resolver.get_dictionary(var)
      except:
          pydev_log.exception('Error evaluating: thread_id: %s\nframe_id: %s\nscope: %s\nattrs: %s.',
              thread_id, frame_id, scope, attrs)
docs: Resolve compound variable in debugger scopes by its name and attributes
  
      :param thread_id: id of the variable's thread
      :param frame_id: id of the variable's frame
      :param scope: can be BY_ID, EXPRESSION, GLOBAL, LOCAL, FRAME
      :param attrs: after reaching the proper scope, we have to get the attributes until we find
              the proper location (i.e.: obj\tattr1\tattr2)
      :return: a dictionary of variables's fields