Index: runtime/vm/profiler_service.cc |
diff --git a/runtime/vm/profiler_service.cc b/runtime/vm/profiler_service.cc |
index 474fa0c5938fc311a16f7c0ccc1960d7d0b82ea4..8eaf6c147e959a055631de5c01efa9f48bfbb984 100644 |
--- a/runtime/vm/profiler_service.cc |
+++ b/runtime/vm/profiler_service.cc |
@@ -1453,6 +1453,11 @@ class ProfileBuilder : public ValueObject { |
// Allocation samples skip the top frame, so the top frame's pc is |
// also a call's return address. |
offset--; |
+ } else if (!sample->first_frame_executing()) { |
+ // If the first frame wasn't executing code (i.e. we started to collect |
+ // the stack trace at an exit frame), the top frame's pc is also a |
+ // call's return address. |
+ offset--; |
} |
code.GetInlinedFunctionsAt(offset, |
&inlined_functions, |