Esempio n. 1
0
 public DesktopModule(DesktopRuntimeBase runtime, ulong address, IModuleData data, string name, string assemblyName)
     : base(runtime)
 {
     _address        = address;
     Revision        = runtime.Revision;
     ImageBase       = data.ImageBase;
     AssemblyName    = assemblyName;
     _isPE           = data.IsPEFile;
     IsDynamic       = data.IsReflection || string.IsNullOrEmpty(name);
     _name           = name;
     ModuleId        = data.ModuleId;
     ModuleIndex     = data.ModuleIndex;
     MetadataAddress = data.MetdataStart;
     MetadataLength  = data.MetadataLength;
     AssemblyId      = data.Assembly;
     _size           = new Lazy <ulong>(() => runtime.GetModuleSize(address));
 }
Esempio n. 2
0
        public DesktopModule(DesktopRuntimeBase runtime, ulong address, IModuleData data, string name, string assemblyName)
            : base(runtime)
        {
            _address         = address;
            Revision         = runtime.Revision;
            _imageBase       = data.ImageBase;
            _assemblyName    = assemblyName;
            _isPE            = data.IsPEFile;
            _reflection      = data.IsReflection || string.IsNullOrEmpty(name);
            _name            = name;
            ModuleId         = data.ModuleId;
            ModuleIndex      = data.ModuleIndex;
            _metadataStart   = data.MetdataStart;
            _metadataLength  = data.MetadataLength;
            _assemblyAddress = data.Assembly;
            _size            = new Lazy <ulong>(() => runtime.GetModuleSize(address));

            if (!runtime.DataReader.IsMinidump)
            {
                // This is very expensive in the minidump case, as we may be heading out to the symbol server or
                // reading multiple files from disk. Only optimistically fetch this data if we have full memory.
                _metadata = data.LegacyMetaDataImport as ICorDebug.IMetadataImport;
            }
        }