예제 #1
0
        internal MiniDumpHeader(MINIDUMP_HEADER header, MINIDUMP_DIRECTORY[] directoryEntries, MiniDumpFile miniDumpFile)
        {
            _header = header;
            _owner  = miniDumpFile;

            _directoryEntries = new List <MiniDumpDirectory>(directoryEntries.Select(x => new MiniDumpDirectory(x)));
        }
        internal MiniDumpHandleObjectInformation(uint objectInfoRva, MiniDumpFile owner)
        {
            _objectInfoRva           = objectInfoRva;
            _handleObjectInformation = owner.ReadStructure <MINIDUMP_HANDLE_OBJECT_INFORMATION>(objectInfoRva);
            _owner = owner;

            _nextInfo = null;
        }
예제 #3
0
        internal MiniDumpExceptionStream(MINIDUMP_EXCEPTION_STREAM exceptionStream, MiniDumpFile owner)
        {
            _exceptionStream = exceptionStream;
            _owner           = owner;

            _exceptionRecord = new MiniDumpException(exceptionStream.ExceptionRecord, owner);
            _threadContext   = new MiniDumpLocationDescriptor(exceptionStream.ThreadContext);
        }
        internal MiniDumpSystemMemoryInfo(MINIDUMP_SYSTEM_MEMORY_INFO_1 systemMemoryInfo, MiniDumpFile owner)
        {
            _systemMemoryInfo = systemMemoryInfo;
            _owner            = owner;

            _systemBasicInformation            = new MiniDumpSystemBasicInformation(systemMemoryInfo.BasicInfo, owner);
            _systemFileCacheInformation        = new MiniDumpSystemFileCacheInformation(systemMemoryInfo.FileCacheInfo, owner);
            _systemBasicPerformanceInformation = new MiniDumpSystemBasicPerformanceInformation(systemMemoryInfo.BasicPerfInfo, owner);
            _systemPerformanceInformation      = new MiniDumpSystemPerformanceInformation(systemMemoryInfo.PerfInfo, owner);
        }
예제 #5
0
        internal MiniDumpSystemInfoStream(MINIDUMP_SYSTEM_INFO systemInfo, MiniDumpFile owner)
        {
            _systemInfo = systemInfo;
            _owner      = owner;

            if (this.ProcessorArchitecture == MiniDumpProcessorArchitecture.PROCESSOR_ARCHITECTURE_INTEL)
            {
                this._x86CpuInfo = new X86CpuInfo(_systemInfo.Cpu);
            }
            else
            {
                this._otherCpuInfo = new OtherCpuInfo(_systemInfo.Cpu);
            }
        }
예제 #6
0
        internal unsafe MiniDumpException(MINIDUMP_EXCEPTION exception, MiniDumpFile owner)
        {
            _exception = exception;
            _owner     = owner;

            // Can't generate test data for this, so won't implement it yet. ExceptionRecord doesn't seem to be an RVA?
            //if (exception.ExceptionRecord != 0)
            //{
            //    MINIDUMP_EXCEPTION exceptionRecored = owner.ReadStructure<MINIDUMP_EXCEPTION>(exception.ExceptionRecord);
            //    _exceptionRecord = new MiniDumpException(exceptionRecored);
            //}

            _exceptionInformation = new UInt64[windows.EXCEPTION_MAXIMUM_PARAMETERS];

            for (int i = 0; i < windows.EXCEPTION_MAXIMUM_PARAMETERS; i++)
            {
                _exceptionInformation[i] = exception.ExceptionInformation[i];
            }
        }
예제 #7
0
 internal MiniDumpHandleDescriptor(Native.MINIDUMP_HANDLE_DESCRIPTOR_2 handleDescriptor, MiniDumpFile owner)
 {
     _handleDescriptor2 = handleDescriptor;
     _owner             = owner;
     _isHandleType2     = true;
 }
예제 #8
0
 internal MiniDumpHandleDescriptor(MINIDUMP_HANDLE_DESCRIPTOR handleDescriptor, MiniDumpFile owner)
 {
     _handleDescriptor = handleDescriptor;
     _owner            = owner;
     _isHandleType2    = false;
 }
예제 #9
0
 internal MiniDumpThreadName(MINIDUMP_THREAD_NAME threadName, MiniDumpFile owner)
 {
     this._threadName = threadName;
     this._owner      = owner;
 }
예제 #10
0
 internal MiniDumpSystemFileCacheInformation(MINIDUMP_SYSTEM_FILECACHE_INFORMATION systemFileCacheInformation, MiniDumpFile owner)
 {
     _systemFileCacheInformation = systemFileCacheInformation;
     _owner = owner;
 }
예제 #11
0
 internal MiniDumpThreadNamesStream(MINIDUMP_THREAD_NAME_LIST threadNamesList, MINIDUMP_THREAD_NAME[] threadNameEntries, MiniDumpFile owner)
 {
     _threadNamesList   = threadNamesList;
     _threadNameEntries = new List <MiniDumpThreadName>(threadNameEntries.Select(x => new MiniDumpThreadName(x, owner)));
 }
예제 #12
0
 internal MiniDumpSystemPerformanceInformation(MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION systemPerformanceInformation, MiniDumpFile owner)
 {
     _systemPerformanceInformation = systemPerformanceInformation;
     _owner = owner;
 }
예제 #13
0
 internal MiniDumpSystemBasicInformation(MINIDUMP_SYSTEM_BASIC_INFORMATION systemBasicInformation, MiniDumpFile owner)
 {
     _systemBasicInformation = systemBasicInformation;
     _owner = owner;
 }
 internal MiniDumpUnloadedModule(MINIDUMP_UNLOADED_MODULE unloadedModule, MiniDumpFile owner)
 {
     _unloadedModule = unloadedModule;
     _owner          = owner;
 }
 /// <summary>
 /// Initialise a new MiniDumpUnloadedModulesStream instance with the unloaded module information provided.
 /// </summary>
 /// <param name="unloadedModuleList">Unloaded modules minidump stream header.</param>
 /// <param name="unloadedModules">An array of the unloaded module information.</param>
 /// <param name="owner">Minidump file this stream was read from.</param>
 internal MiniDumpUnloadedModulesStream(MINIDUMP_UNLOADED_MODULE_LIST unloadedModuleList, MINIDUMP_UNLOADED_MODULE[] unloadedModules, MiniDumpFile owner)
 {
     _unloadedModuleList = unloadedModuleList;
     _entries            = new List <MiniDumpUnloadedModule>(unloadedModules.Select(x => new MiniDumpUnloadedModule(x, owner)));
 }
예제 #16
0
 internal MiniDumpModule(MINIDUMP_MODULE module, MiniDumpFile owner)
 {
     _owner  = owner;
     _module = module;
 }