@@ -728,30 +728,36 @@ class HLAdapter extends DebugSession {
728
728
case VPointer (_ ):
729
729
var fields = dbg .eval .getFields (value );
730
730
if ( fields != null && fields .length > 0 )
731
- return { name : name , type : tstr , value : tstr + pstr , evaluateName : evalName , variablesReference : allocValue (VValue (value , evalName )), namedVariables : fields .length };
731
+ return { name : name , type : tstr , value : tstr + pstr , evaluateName : evalName ?? " # " + tstr , variablesReference : allocValue (VValue (value , evalName )), namedVariables : fields .length };
732
732
case VEnum (c ,values ,_ ) if ( values .length > 0 ):
733
733
var str = c + " (" + [for ( v in values ) switch ( v .v ) {
734
734
case VEnum (c ,values ,_ ) if ( values .length == 0 ): c ;
735
735
case VPointer (_ ), VEnum (_ ), VArray (_ ), VMap (_ ), VBytes (_ ): " ..." ;
736
736
default : dbg .eval .valueStr (v );
737
737
}].join (" , " )+ " )" ;
738
- return { name : name , type : tstr , value : str + pstr , evaluateName : evalName , variablesReference : allocValue (VValue (value , evalName )), namedVariables : values .length };
738
+ return { name : name , type : tstr , value : str + pstr , evaluateName : evalName ?? " # " + str , variablesReference : allocValue (VValue (value , evalName )), namedVariables : values .length };
739
739
case VArray (_ , len , _ , _ ), VMap (_ , len , _ , _ ):
740
- return { name : name , type : tstr , value : dbg .eval .valueStr (value ) + pstr , evaluateName : evalName , variablesReference : len == 0 ? 0 : allocValue (VValue (value , evalName )), indexedVariables : len };
740
+ var str = dbg .eval .valueStr (value );
741
+ return { name : name , type : tstr , value : str + pstr , evaluateName : evalName ?? " #" + str , variablesReference : len == 0 ? 0 : allocValue (VValue (value , evalName )), indexedVariables : len };
741
742
case VBytes (len , _ ):
742
743
switch ( value .hint ) {
743
744
case HReadBytes (t , _ ):
744
- return { name : name , type : dbg .eval .typeStr (t ), value : dbg .eval .valueStr (value ), evaluateName : evalName , variablesReference : 0 };
745
+ var str = dbg .eval .valueStr (value );
746
+ return { name : name , type : dbg .eval .typeStr (t ), value : str , evaluateName : evalName ?? " #" + str , variablesReference : 0 };
745
747
default :
746
748
}
747
- return { name : name , type : tstr , value : tstr + " :" + len + pstr , evaluateName : evalName , variablesReference : allocValue (VValue (value , evalName )), indexedVariables : (len + 15 )>> 4 };
749
+ var str = tstr + " :" + len ;
750
+ return { name : name , type : tstr , value : str + pstr , evaluateName : evalName ?? " #" + str , variablesReference : allocValue (VValue (value , evalName )), indexedVariables : (len + 15 )>> 4 };
748
751
case VClosure (f ,context ,_ ):
749
- return { name : name , type : tstr , value : dbg .eval .funStr (f , value .hint == HPointer ) + pstr , evaluateName : evalName , variablesReference : allocValue (VValue (value , evalName )), indexedVariables : 2 };
752
+ var str = dbg .eval .funStr (f , value .hint == HPointer );
753
+ return { name : name , type : tstr , value : str + pstr , evaluateName : evalName ?? " #" + str , variablesReference : allocValue (VValue (value , evalName )), indexedVariables : 2 };
750
754
case VInlined (fields ):
751
- return { name : name , type : tstr , value : dbg .eval .valueStr (value ), evaluateName : evalName , variablesReference : fields .length == 0 ? 0 : allocValue (VValue (value , evalName )), namedVariables : fields .length };
755
+ var str = dbg .eval .valueStr (value );
756
+ return { name : name , type : tstr , value : str , evaluateName : evalName ?? " #" + str , variablesReference : fields .length == 0 ? 0 : allocValue (VValue (value , evalName )), namedVariables : fields .length };
752
757
default :
753
758
}
754
- return { name : name , type : tstr , value : dbg .eval .valueStr (value ) + pstr , evaluateName : evalName , variablesReference : 0 };
759
+ var str = dbg .eval .valueStr (value );
760
+ return { name : name , type : tstr , value : str + pstr , evaluateName : evalName ?? " #" + str , variablesReference : 0 };
755
761
}
756
762
757
763
override function variablesRequest (response : VariablesResponse , args : VariablesArguments ) {
@@ -1055,6 +1061,12 @@ class HLAdapter extends DebugSession {
1055
1061
default :
1056
1062
debug (" Unsupported command " + args .expression );
1057
1063
}
1064
+ } else if ( args .expression .charCodeAt (0 ) == ' #' .code ) {
1065
+ // Fake evalName for Copy value request
1066
+ response .body = {
1067
+ result : args .expression .substr (1 ),
1068
+ variablesReference : 0 ,
1069
+ };
1058
1070
} else {
1059
1071
var value = dbg .getValue (args .expression );
1060
1072
var v = makeVar (" " , value );
0 commit comments