Index: runtime/vm/profiler_service.cc |
diff --git a/runtime/vm/profiler_service.cc b/runtime/vm/profiler_service.cc |
index 6b3d8398baf1ec314c4839c292ddabdb7b622f60..f17f38f7bbaf19b121942ef5db9fb7cc0d604ca8 100644 |
--- a/runtime/vm/profiler_service.cc |
+++ b/runtime/vm/profiler_service.cc |
@@ -2448,6 +2448,41 @@ void Profile::PrintHeaderJSON(JSONObject* obj) { |
obj->AddProperty("timeSpan", MicrosecondsToSeconds(GetTimeSpan())); |
obj->AddPropertyTimeMicros("timeOriginMicros", min_time()); |
obj->AddPropertyTimeMicros("timeExtentMicros", GetTimeSpan()); |
+ |
+ ProfilerCounters counters = Profiler::counters(); |
+ { |
+ JSONObject counts(obj, "counters"); |
+ counts.AddProperty64( |
+ "bail_out_unknown_task", |
+ counters.bail_out_unknown_task); |
+ counts.AddProperty64( |
+ "bail_out_jump_to_exception_handler", |
+ counters.bail_out_jump_to_exception_handler); |
+ counts.AddProperty64( |
+ "bail_out_check_isolate", |
+ counters.bail_out_check_isolate); |
+ counts.AddProperty64( |
+ "single_frame_sample_deoptimizing", |
+ counters.single_frame_sample_deoptimizing); |
+ counts.AddProperty64( |
+ "single_frame_sample_register_check", |
+ counters.single_frame_sample_register_check); |
+ counts.AddProperty64( |
+ "single_frame_sample_get_and_validate_stack_bounds", |
+ counters.single_frame_sample_get_and_validate_stack_bounds); |
+ counts.AddProperty64( |
+ "stack_walker_native", |
+ counters.stack_walker_native); |
+ counts.AddProperty64( |
+ "stack_walker_dart_exit", |
+ counters.stack_walker_dart_exit); |
+ counts.AddProperty64( |
+ "stack_walker_dart", |
+ counters.stack_walker_dart); |
+ counts.AddProperty64( |
+ "stack_walker_none", |
+ counters.stack_walker_none); |
+ } |
} |