Index: runtime/vm/stack_frame.cc |
diff --git a/runtime/vm/stack_frame.cc b/runtime/vm/stack_frame.cc |
index 268dcb1737bcee746193d2cc33033a2d3d5f64a1..d89797df39c17e626289be29b670818901480573 100644 |
--- a/runtime/vm/stack_frame.cc |
+++ b/runtime/vm/stack_frame.cc |
@@ -39,15 +39,16 @@ const char* StackFrame::ToCString() const { |
ASSERT(thread_ == Thread::Current()); |
Zone* zone = Thread::Current()->zone(); |
if (IsDartFrame()) { |
- const Code& code = Code::Handle(LookupDartCode()); |
+ const Code& code = Code::Handle(zone, LookupDartCode()); |
ASSERT(!code.IsNull()); |
- const Object& owner = Object::Handle(code.owner()); |
+ const Object& owner = Object::Handle(zone, code.owner()); |
ASSERT(!owner.IsNull()); |
if (owner.IsFunction()) { |
+ const char* opt = code.is_optimized() ? "*" : ""; |
const Function& function = Function::Cast(owner); |
return zone->PrintToString( |
- "[%-8s : sp(%#" Px ") fp(%#" Px ") pc(%#" Px ") %s ]", GetName(), |
- sp(), fp(), pc(), function.ToFullyQualifiedCString()); |
+ "[%-8s : sp(%#" Px ") fp(%#" Px ") pc(%#" Px ") %s%s ]", GetName(), |
+ sp(), fp(), pc(), opt, function.ToFullyQualifiedCString()); |
} else { |
return zone->PrintToString( |
"[%-8s : sp(%#" Px ") fp(%#" Px ") pc(%#" Px ") %s ]", GetName(), |