public LegacyRuntime(ClrInfo info, DataTarget dt, DacLibrary lib, DesktopVersion version, int patch) : base(info, dt, lib) { _version = version; _patch = patch; if (!GetCommonMethodTables(ref _commonMTs)) { throw new ClrDiagnosticsException("Could not request common MethodTable list.", ClrDiagnosticsException.HR.DacError); } if (!_commonMTs.Validate()) { CanWalkHeap = false; } // Ensure the version of the dac API matches the one we expect. (Same for both // v2 and v4 rtm.) byte[] tmp = new byte[sizeof(int)]; if (!Request(DacRequests.VERSION, null, tmp)) { throw new ClrDiagnosticsException("Failed to request dac version.", ClrDiagnosticsException.HR.DacError); } int v = BitConverter.ToInt32(tmp, 0); if (v != 8) { throw new ClrDiagnosticsException("Unsupported dac version.", ClrDiagnosticsException.HR.DacError); } }
public LegacyRuntime(DataTargetImpl dt, DacLibrary lib, DesktopVersion version, int minor) : base(dt, lib) { _version = version; _minor = minor; if (!GetCommonMethodTables(ref _commonMTs)) throw new ClrDiagnosticsException("Could not request common MethodTable list.", ClrDiagnosticsException.HR.DacError); // Ensure the version of the dac API matches the one we expect. (Same for both // v2 and v4 rtm.) byte[] tmp = new byte[sizeof(int)]; if (!Request(DacRequests.VERSION, null, tmp)) throw new ClrDiagnosticsException("Failed to request dac version.", ClrDiagnosticsException.HR.DacError); int v = BitConverter.ToInt32(tmp, 0); if (v != 8) throw new ClrDiagnosticsException("Unsupported dac version.", ClrDiagnosticsException.HR.DacError); }