예제 #1
0
 // 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);
 }
예제 #2
0
        // 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);
        }