Mono.Debugger.Languages.Mono.MonoVariableLocation.ReadMemory C# (CSharp) Method

ReadMemory() private method

private ReadMemory ( TargetMemoryAccess target, int size ) : TargetBlob
target TargetMemoryAccess
size int
return TargetBlob
        internal override TargetBlob ReadMemory(TargetMemoryAccess target, int size)
        {
            if (!is_valid)
                throw new LocationInvalidException ();

            if (HasAddress)
                return base.ReadMemory (target, size);

            // If this is a valuetype, the register hold the whole data.
            long contents = address.Address;

            byte[] buffer;
            if (size == 1)
                buffer = BitConverter.GetBytes ((byte) contents);
            else if (size == 2)
                buffer = BitConverter.GetBytes ((short) contents);
            else if (size == 4)
                buffer = BitConverter.GetBytes ((int) contents);
            else if (size == 8)
                buffer = BitConverter.GetBytes (contents);
            else
                throw new ArgumentException ();

            return new TargetBlob (buffer, target.TargetMemoryInfo);
        }