UnwindStack() private method

private UnwindStack ( StackFrame frame, TargetMemoryAccess memory ) : StackFrame
frame StackFrame
memory TargetMemoryAccess
return StackFrame
示例#1
0
        internal StackFrame UnwindStack(TargetMemoryAccess memory)
        {
            if (parent_frame != null)
            {
                return(parent_frame);
            }

            StackFrame new_frame = null;

            if (method != null)
            {
                try {
                    new_frame = method.UnwindStack(this, memory);
                } catch (TargetException) {
                }

                if (new_frame != null)
                {
                    return(new_frame);
                }
            }

            foreach (Module module in thread.Process.Modules)
            {
                try {
                    new_frame = module.UnwindStack(this, memory);
                } catch {
                    continue;
                }
                if (new_frame != null)
                {
                    return(new_frame);
                }
            }

            return(thread.Architecture.UnwindStack(this, memory, null, 0));
        }