public MinidumpReader(string displayName, Stream stream, CacheOptions cacheOptions, bool leaveOpen) { if (displayName is null) { throw new ArgumentNullException(nameof(displayName)); } if (stream is null) { throw new ArgumentNullException(nameof(stream)); } DisplayName = displayName; _minidump = new Minidump(displayName, stream, cacheOptions, leaveOpen); Architecture = _minidump.Architecture switch { MinidumpProcessorArchitecture.Amd64 => Architecture.X64, MinidumpProcessorArchitecture.Arm => Architecture.Arm, MinidumpProcessorArchitecture.Arm64 => Architecture.Arm64, MinidumpProcessorArchitecture.Intel => Architecture.X86, _ => throw new NotImplementedException($"No support for platform {_minidump.Architecture}"), }; PointerSize = _minidump.PointerSize; }
public MinidumpReader(string crashDump, FileStream stream, CacheOptions cacheOptions) { if (crashDump is null) { throw new ArgumentNullException(nameof(crashDump)); } if (stream is null) { throw new ArgumentNullException(nameof(stream)); } DisplayName = crashDump; _minidump = new Minidump(crashDump, stream, cacheOptions); Architecture = _minidump.Architecture switch { MinidumpProcessorArchitecture.Amd64 => Architecture.Amd64, MinidumpProcessorArchitecture.Arm => Architecture.Arm, MinidumpProcessorArchitecture.Arm64 => Architecture.Arm64, MinidumpProcessorArchitecture.Intel => Architecture.X86, _ => throw new NotImplementedException($"No support for platform {_minidump.Architecture}"), }; PointerSize = _minidump.PointerSize; }
private bool IsMinidump(Stream decompressed) { try { return(Minidump.IsValidMinidump(new StreamAddressSpace(decompressed))); } catch { return(false); } }
public override IEnumerable <SymbolStoreKey> GetKeys(KeyTypeFlags flags) { if (IsValid()) { try { var dump = new Minidump(_dataSource); return(dump.LoadedImages .Select((MinidumpLoadedImage loadedImage) => new PEFileKeyGenerator(Tracer, loadedImage.Image, loadedImage.ModuleName)) .SelectMany((KeyGenerator generator) => generator.GetKeys(flags))); } catch (InvalidVirtualAddressException ex) { Tracer.Error("Minidump {0}", ex.Message); } } return(SymbolStoreKey.EmptyArray); }
public MinidumpReader(string crashDump) { if (crashDump is null) { throw new ArgumentNullException(nameof(crashDump)); } _minidump = new Minidump(crashDump); Architecture = _minidump.Architecture switch { MinidumpProcessorArchitecture.Amd64 => Architecture.Amd64, MinidumpProcessorArchitecture.Arm => Architecture.Arm, MinidumpProcessorArchitecture.Arm64 => Architecture.Arm64, MinidumpProcessorArchitecture.Intel => Architecture.X86, _ => throw new NotImplementedException($"No support for platform {_minidump.Architecture}"), }; PointerSize = _minidump.PointerSize; }
public override bool IsValid() { return(Minidump.IsValid(_dataSource)); }