Index: src/ia32/frames-ia32.cc |
=================================================================== |
--- src/ia32/frames-ia32.cc (revision 3173) |
+++ src/ia32/frames-ia32.cc (working copy) |
@@ -56,14 +56,19 @@ |
state->fp = fp; |
state->sp = sp; |
state->pc_address = reinterpret_cast<Address*>(sp - 1 * kPointerSize); |
- return EXIT; |
+ // Determine frame type. |
+ if (Memory::Address_at(fp + ExitFrameConstants::kDebugMarkOffset) != 0) { |
+ return EXIT_DEBUG; |
+ } else { |
+ return EXIT; |
+ } |
} |
void ExitFrame::Iterate(ObjectVisitor* v) const { |
- v->VisitPointer(&code_slot()); |
- // The arguments are traversed as part of the expression stack of |
- // the calling frame. |
+ // Exit frames on IA-32 do not contain any pointers. The arguments |
+ // are traversed as part of the expression stack of the calling |
+ // frame. |
} |