diff --git a/src/processor/stackwalker_x86.cc b/src/processor/stackwalker_x86.cc index 27fdc09c..747b5e3a 100644 --- a/src/processor/stackwalker_x86.cc +++ b/src/processor/stackwalker_x86.cc @@ -103,6 +103,10 @@ StackFrame* StackwalkerX86::GetCallerFrame(const CallStack *stack) { WindowsFrameInfo *last_frame_info = resolver_->FindWindowsFrameInfo(last_frame); + // Save the stack walking info we found, in case we need it later to + // find the callee of the frame we're constructing now. + last_frame->windows_frame_info = last_frame_info; + // This stackwalker sets each frame's %esp to its value immediately prior // to the CALL into the callee. This means that %esp points to the last // callee argument pushed onto the stack, which may not be where %esp points @@ -442,9 +446,6 @@ StackFrame* StackwalkerX86::GetCallerFrame(const CallStack *stack) { // StackFrameX86. frame->instruction = frame->context.eip - 1; - // Save the stack walking info we found for the callee. - last_frame->windows_frame_info = last_frame_info; - return frame; }