Mono.Debugger.Backend.Bfd.UnwindStack C# (CSharp) Method

UnwindStack() protected method

protected UnwindStack ( StackFrame frame, TargetMemoryAccess memory ) : StackFrame
frame Mono.Debugger.StackFrame
memory Mono.Debugger.TargetMemoryAccess
return Mono.Debugger.StackFrame
        protected StackFrame UnwindStack(StackFrame frame, TargetMemoryAccess memory)
        {
            if ((frame.TargetAddress < StartAddress) || (frame.TargetAddress > EndAddress))
                return null;

            StackFrame new_frame;
            try {
                new_frame = Architecture.TrySpecialUnwind (frame, memory);
                if (new_frame != null)
                    return new_frame;
            } catch {
            }

            try {
                if (frame_reader != null) {
                    new_frame = frame_reader.UnwindStack (frame, memory, Architecture);
                    if (new_frame != null)
                        return new_frame;
                }

                if (eh_frame_reader != null) {
                    new_frame = eh_frame_reader.UnwindStack (frame, memory, Architecture);
                    if (new_frame != null)
                        return new_frame;
                }
            } catch {
                return null;
            }

            return null;
        }

Usage Example

Exemplo n.º 1
0
 internal override StackFrame UnwindStack(StackFrame frame, TargetMemoryAccess memory)
 {
     return(Bfd.UnwindStack(frame, memory));
 }