Skip to content

c# record classes can not be debugged #11

@thekatze

Description

@thekatze
public class Test {
    private record class Vector3(float X, float Y, float Z);
    private record class VectorScaler(Vector3 vec, float multiplier)
    {
        public Vector3 Apply()
        {
            return new Vector3(vec.X * multiplier, vec.Y * multiplier, vec.Z * multiplier);
        }
    }

    public void Run()
    {
        var vector = new Vector3(5, 10, 50);

        var doubler = new VectorScaler(vector, 2.0f);
        var halver = new VectorScaler(vector, 0.5f);

        var undoer = new VectorScaler(doubler.Apply(), 0.5f);
        undoer.Apply();
        halver.Apply();
    }
}

Resulting error message:

dapviz::dap_client: Failed parsing DAP response: {"body":{"variables":[{"evaluateName":"vector.EqualityContract.DeclaringMethod._exceptionMethod","name":"_exceptionMethod","type":"System.Reflection.MethodBase","value":"null","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._message","name":"_message","type":"string","value":"\"Method may only be called on a Type for which Type.IsGenericParameter is true.\"","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._data","name":"_data","type":"System.Collections.IDictionary","value":"null","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._innerException","name":"_innerException","namedVariables":1,"type":"System.Exception","value":"null","variablesReference":62},{"evaluateName":"vector.EqualityContract.DeclaringMethod._helpURL","name":"_helpURL","type":"string","value":"null","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._stackTrace","name":"_stackTrace","namedVariables":48,"type":"sbyte[]","value":"{sbyte[48]}","variablesReference":63},{"evaluateName":"vector.EqualityContract.DeclaringMethod._watsonBuckets","name":"_watsonBuckets","type":"byte[]","value":"null","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._stackTraceString","name":"_stackTraceString","type":"string","value":"null","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._remoteStackTraceString","name":"_remoteStackTraceString","type":"string","value":"null","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._source","name":"_source","type":"string","value":"null","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._ipForWatsonBuckets","name":"_ipForWatsonBuckets","type":"UIntPtr","value":"0","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._xptrs","name":"_xptrs","type":"IntPtr","value":"0","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._xcode","name":"_xcode","type":"int","value":"-532462766","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod._HResult","name":"_HResult","type":"int","value":"-2146233079","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod.TargetSite","name":"TargetSite","namedVariables":76,"type":"System.Reflection.RuntimeMethodInfo","value":"{System.Reflection.RuntimeMethodInfo}","variablesReference":64},{"evaluateName":"vector.EqualityContract.DeclaringMethod.HasBeenThrown","name":"HasBeenThrown","type":"bool","value":"true","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod.SerializationWatsonBuckets","name":"SerializationWatsonBuckets","type":"object","value":"null","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod.Message","name":"Message","type":"string","value":"\"Method may only be called on a Type for which Type.IsGenericParameter is true.\"","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod.Data","name":"Data","namedVariables":11,"type":"System.Collections.ListDictionaryInternal","value":"{System.Collections.ListDictionaryInternal}","variablesReference":65},{"evaluateName":"vector.EqualityContract.DeclaringMethod.InnerException","name":"InnerException","namedVariables":1,"type":"System.Exception","value":"null","variablesReference":66},{"evaluateName":"vector.EqualityContract.DeclaringMethod.HelpLink","name":"HelpLink","type":"string","value":"null","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod.Source","name":"Source","type":"string","value":"\"System.Private.CoreLib\"","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod.HResult","name":"HResult","type":"int","value":"-2146233079","variablesReference":0},{"evaluateName":"vector.EqualityContract.DeclaringMethod.StackTrace","name":"StackTrace","type":"string","value":"\"   at System.RuntimeType.get_DeclaringMethod()\"","variablesReference":
EOF while parsing a value at line 1 column 4072

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions