// Complements the information of some Parsers with data from other Parsers void CombineParserInfo() { // Add managed information to the thread list foreach (ManagedStackInfo stack in managedStacksParser.Stacks) { threadParser.AddManagedInfo(stack.threadNum, stack); } // Add instruction pointers to the thread list threadParser.SetInstructionPointers(instPtrParser.InstPtrs); }
// Complements the information of some Parsers with data from other Parsers public void CombineParserInfo() { // Assign the call stack of the exception thread, if present. // In some cases, the exception thread as it appears in section 'THREAD STACKS' may not provide a meaningful // call stack (e.g, may show 'NtGetContextThread' if the dump was created by calling 'MiniDumpWriteDump') ThreadInfo exceptionThread = excepInfoParser.GetExceptionThread(); if (exceptionThread != null && exceptionThread.threadNum < threadParser.Threads.Count) { threadParser.Threads[exceptionThread.threadNum].stack = exceptionThread.stack; } // Add managed frames to the main thread list foreach (ManagedStackInfo stack in managedStacksParser.Stacks) { threadParser.AddManagedInfo(stack.threadNum, stack); } // Add instruction pointers to the thread list threadParser.SetInstructionPointers(instPtrParser.InstPtrs); }