aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/processor/stackwalker_x86.cc7
1 files changed, 4 insertions, 3 deletions
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;
}