Esempio n. 1
0
        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.");
            }
        }
Esempio n. 2
0
        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.");
            }
        }
Esempio n. 3
0
        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.");
            }
        }
Esempio n. 4
0
        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."),
            };
        }