Index: runtime/vm/profiler.cc |
diff --git a/runtime/vm/profiler.cc b/runtime/vm/profiler.cc |
index 8bfd7299fe6575e1bdc291ee1df6a536b7d74fd9..2e1d10b4a32ba9ff45afa3667183af154ffe2920 100644 |
--- a/runtime/vm/profiler.cc |
+++ b/runtime/vm/profiler.cc |
@@ -451,8 +451,16 @@ class ProfilerDartStackWalker : public ProfilerStackWalker { |
stack_lower_(stack_lower), |
has_exit_frame_(exited_dart_code) { |
if (exited_dart_code) { |
+// On windows the profiler does not run on the thread being profiled. |
+#if defined(_WIN32) |
+ const StackFrameIterator::CrossThreadPolicy cross_thread_policy = |
+ StackFrameIterator::kAllowCrossThreadIteration; |
+#else |
+ const StackFrameIterator::CrossThreadPolicy cross_thread_policy = |
+ StackFrameIterator::kNoCrossThreadIteration; |
+#endif |
StackFrameIterator iterator(StackFrameIterator::kDontValidateFrames, |
- thread); |
+ thread, cross_thread_policy); |
pc_ = NULL; |
fp_ = NULL; |
sp_ = NULL; |