@Override
  protected ValueLabelRenderer getValueLabelRenderer() {
    LabelRenderer labelRenderer = new LabelRenderer() {
      @Override
      public String calcLabel(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener labelListener)
        throws EvaluateException {
        if (evaluationContext instanceof EvaluationContextImpl && !((EvaluationContextImpl)evaluationContext).isEvaluationPossible()) {
          Value value = descriptor.getValue();
          if (value instanceof ArrayReference) {
            // TODO: read charset from the target vm
            byte[] bytes = DebuggerUtilsImpl.readBytesArray(value);
            if (bytes != null) {
              return new String(bytes, StandardCharsets.UTF_8);
            }
          }
        }
        return super.calcLabel(descriptor, evaluationContext, labelListener);
      }
    };
    labelRenderer.setLabelExpression(new TextWithImportsImpl(CodeFragmentKind.EXPRESSION, "new String(this)"));
    return labelRenderer;
  }
@Override
  protected ValueLabelRenderer getValueLabelRenderer()