コード例 #1
0
        public override async Task InvalidateAsync(IDebugger debugger)
        {
            foreach (var value in lastChangedValues)
            {
                value.HasChanged = false;
            }

            lastChangedValues.Clear();

            List <MemoryBytes> newData = null;

            newData = await debugger.ReadMemoryBytesAsync(actualAddress, 0, count);

            if (newData != null)
            {
                var newValues = converter(newData.First().Data);

                for (int i = 0; i < values.Count; i++)
                {
                    if (!Values[i].Value.Equals(newValues[i]))
                    {
                        Values[i].Value      = newValues[i];
                        Values[i].HasChanged = true;
                        lastChangedValues.Add(Values[i]);
                    }
                }

                Text = GetText(newData.First().Data);
            }
        }
コード例 #2
0
        private async Task <List <MemoryBytes> > ReadMemoryBytesAsync(ulong address, ulong offset, uint count)
        {
            var result = await debugger.ReadMemoryBytesAsync(address, offset, count);

            if (result == null)
            {
                result = new List <MemoryBytes>();

                result.Add(new MemoryBytes()
                {
                    Address = address, Data = new byte[count]
                });
            }

            return(result);
        }