Mono.Debugger.Backtrace.GetBacktrace C# (CSharp) Method

GetBacktrace() private method

private GetBacktrace ( ThreadServant thread, TargetMemoryAccess memory, Mode mode, TargetAddress until, int max_frames ) : void
thread Mono.Debugger.Backend.ThreadServant
memory TargetMemoryAccess
mode Mode
until TargetAddress
max_frames int
return void
        internal void GetBacktrace(ThreadServant thread, TargetMemoryAccess memory,
					    Mode mode, TargetAddress until, int max_frames)
        {
            while (TryUnwind (thread, memory, mode, until)) {
                if ((max_frames != -1) && (frames.Count > max_frames))
                    break;
            }

            // Ugly hack: in Mode == Mode.Default, we accept wrappers but not as the
            //            last frame.
            if ((mode == Mode.Default) && (frames.Count > 1)) {
                StackFrame last = this [frames.Count - 1];
                if (!IsFrameOkForMode (last, Mode.Managed))
                    frames.Remove (last);
            }
        }