public CoredumpReader(string path, Stream stream) { DisplayName = path ?? throw new ArgumentNullException(nameof(path)); _stream = stream ?? throw new ArgumentNullException(nameof(stream)); _core = new ElfCoreFile(_stream); ElfMachine architecture = _core.ElfFile.Header.Architecture; switch (architecture) { case ElfMachine.EM_X86_64: PointerSize = 8; Architecture = Architecture.Amd64; break; case ElfMachine.EM_386: PointerSize = 4; Architecture = Architecture.X86; break; case ElfMachine.EM_AARCH64: PointerSize = 8; Architecture = Architecture.Arm64; break; case ElfMachine.EM_ARM: PointerSize = 4; Architecture = Architecture.Arm; break; default: throw new NotImplementedException($"Support for {architecture} not yet implemented."); } }
public CoreDumpReader(string path) { _source = path; _stream = File.OpenRead(path); _core = new ElfCoreFile(_stream); ElfMachine architecture = _core.ElfFile.Header.Architecture; switch (architecture) { case ElfMachine.EM_X86_64: PointerSize = 8; Architecture = Architecture.Amd64; break; case ElfMachine.EM_386: PointerSize = 4; Architecture = Architecture.X86; break; case ElfMachine.EM_AARCH64: PointerSize = 8; Architecture = Architecture.Arm64; break; case ElfMachine.EM_ARM: PointerSize = 4; Architecture = Architecture.Arm; break; default: throw new NotImplementedException($"Support for {architecture} not yet implemented."); } }
public CoreDumpReader(string filename) { _source = filename; _stream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.Read); _core = new ElfCoreFile(_stream); ElfMachine architecture = _core.ElfFile.Header.Architecture; switch (architecture) { case ElfMachine.EM_X86_64: _pointerSize = 8; _architecture = Architecture.Amd64; break; case ElfMachine.EM_386: _pointerSize = 4; _architecture = Architecture.X86; break; case ElfMachine.EM_AARCH64: _pointerSize = 8; _architecture = Architecture.Arm64; break; case ElfMachine.EM_ARM: _pointerSize = 4; _architecture = Architecture.Arm; break; default: throw new NotImplementedException($"Support for {architecture} not yet implemented."); } }
public CoredumpReader(string path, Stream stream, bool leaveOpen) { DisplayName = path ?? throw new ArgumentNullException(nameof(path)); _core = new ElfCoreFile(stream ?? throw new ArgumentNullException(nameof(stream)), leaveOpen); ElfMachine architecture = _core.ElfFile.Header.Architecture; (PointerSize, Architecture) = architecture switch { ElfMachine.EM_X86_64 => (8, Architecture.Amd64), ElfMachine.EM_386 => (4, Architecture.X86), ElfMachine.EM_AARCH64 => (8, Architecture.Arm64), ElfMachine.EM_ARM => (4, Architecture.Arm), _ => throw new NotImplementedException($"Support for {architecture} not yet implemented."), }; }