Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "platform/address_sanitizer.h" | 5 #include "platform/address_sanitizer.h" |
| 6 #include "platform/memory_sanitizer.h" | 6 #include "platform/memory_sanitizer.h" |
| 7 #include "platform/utils.h" | 7 #include "platform/utils.h" |
| 8 | 8 |
| 9 #include "vm/allocation.h" | 9 #include "vm/allocation.h" |
| 10 #include "vm/atomic.h" | 10 #include "vm/atomic.h" |
| (...skipping 1067 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1078 | 1078 |
| 1079 if (!GetAndValidateThreadStackBounds(thread, fp, sp, &stack_lower, | 1079 if (!GetAndValidateThreadStackBounds(thread, fp, sp, &stack_lower, |
| 1080 &stack_upper)) { | 1080 &stack_upper)) { |
| 1081 // Could not get stack boundary. | 1081 // Could not get stack boundary. |
| 1082 return; | 1082 return; |
| 1083 } | 1083 } |
| 1084 | 1084 |
| 1085 Sample* sample = SetupSample(thread, sample_buffer, os_thread->trace_id()); | 1085 Sample* sample = SetupSample(thread, sample_buffer, os_thread->trace_id()); |
| 1086 sample->SetAllocationCid(cid); | 1086 sample->SetAllocationCid(cid); |
| 1087 | 1087 |
| 1088 if (FLAG_profile_vm) { | 1088 // TODO(flutter/flutter#10744): Enable native stack walker. |
| 1089 if (FLAG_profile_vm && false) { | |
|
zra
2017/06/15 20:50:21
Should we add a separate flag for this instead tha
rmacnak
2017/07/11 18:17:18
So even with good frame pointer, using the native
| |
| 1089 ProfilerNativeStackWalker native_stack_walker( | 1090 ProfilerNativeStackWalker native_stack_walker( |
| 1090 (isolate != NULL) ? isolate->main_port() : ILLEGAL_PORT, sample, | 1091 (isolate != NULL) ? isolate->main_port() : ILLEGAL_PORT, sample, |
| 1091 sample_buffer, stack_lower, stack_upper, pc, fp, sp); | 1092 sample_buffer, stack_lower, stack_upper, pc, fp, sp); |
| 1092 native_stack_walker.walk(); | 1093 native_stack_walker.walk(); |
| 1093 } else if (exited_dart_code) { | 1094 } else if (exited_dart_code) { |
| 1094 ProfilerDartStackWalker dart_exit_stack_walker( | 1095 ProfilerDartStackWalker dart_exit_stack_walker( |
| 1095 thread, sample, sample_buffer, stack_lower, stack_upper, pc, fp, sp, | 1096 thread, sample, sample_buffer, stack_lower, stack_upper, pc, fp, sp, |
| 1096 exited_dart_code, true); | 1097 exited_dart_code, true); |
| 1097 dart_exit_stack_walker.walk(); | 1098 dart_exit_stack_walker.walk(); |
| 1098 } else { | 1099 } else { |
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1613 | 1614 |
| 1614 | 1615 |
| 1615 ProcessedSampleBuffer::ProcessedSampleBuffer() | 1616 ProcessedSampleBuffer::ProcessedSampleBuffer() |
| 1616 : code_lookup_table_(new CodeLookupTable(Thread::Current())) { | 1617 : code_lookup_table_(new CodeLookupTable(Thread::Current())) { |
| 1617 ASSERT(code_lookup_table_ != NULL); | 1618 ASSERT(code_lookup_table_ != NULL); |
| 1618 } | 1619 } |
| 1619 | 1620 |
| 1620 #endif // !PRODUCT | 1621 #endif // !PRODUCT |
| 1621 | 1622 |
| 1622 } // namespace dart | 1623 } // namespace dart |
| OLD | NEW |