Ejemplo n.º 1
0
 public IDebuggerValue GetElementAtPosition(int index)
 {
     return(debugger.Dispatcher.UI(() => {
         var corValue = value.GetElementAtPosition(index);
         return corValue == null ? null : new DebuggerValue(debugger, corValue);
     }));
 }
Ejemplo n.º 2
0
        internal static DbgRawAddressValue?GetArrayAddress(CorValue v)
        {
            var addr = v.Address;

            if (addr == 0)
            {
                return(null);
            }
            var arrayCount = v.ArrayCount;

            if (arrayCount == 0)
            {
                return(new DbgRawAddressValue(addr, 0));
            }
            var   elemValue = v.GetElementAtPosition(0, out int hr);
            ulong elemSize  = elemValue?.Size ?? 0;
            ulong elemAddr  = elemValue?.Address ?? 0;
            ulong totalSize = elemSize * arrayCount;

            if (elemAddr == 0 || elemAddr < addr)
            {
                return(null);
            }
            return(new DbgRawAddressValue(elemAddr, totalSize));
        }