ValueLabelRenderer () { 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; }