Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Unified Diff: base/trace_event/trace_log.cc

Issue 1837013003: [tracing] Add support for profiling trace events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ipc_trace
Patch Set: nits. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« base/trace_event/trace_log.h ('K') | « base/trace_event/trace_log.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/trace_event/trace_log.cc
diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc
index 3b1d2c9bb2f5dc5ca05100010a96ac6e07bdcfd5..b7cc599187de89214a9b9d97d2a30c34b586b010 100644
--- a/base/trace_event/trace_log.cc
+++ b/base/trace_event/trace_log.cc
@@ -461,6 +461,10 @@ void TraceLog::UpdateCategoryGroupEnabledFlag(size_t category_index) {
enabled_flag |= ENABLED_FOR_EVENT_CALLBACK;
}
+ if (AllocationContextTracker::capture_enabled()) {
+ enabled_flag |= ENABLED_FOR_HEAP_PROFILING;
+ }
+
#if defined(OS_WIN)
if (base::trace_event::TraceEventETWExport::IsCategoryGroupEnabled(
category_group)) {
@@ -1168,7 +1172,7 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp(
scoped_ptr<ConvertableToTraceFormat>* convertable_values,
unsigned int flags) {
TraceEventHandle handle = {0, 0, 0};
- if (!*category_group_enabled)
+ if (!(*category_group_enabled & ENABLED_FOR_NON_PROFILING_MODE))
return handle;
// Avoid re-entrance of AddTraceEvent. This may happen in GPU process when
@@ -1315,17 +1319,20 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp(
}
// TODO(primiano): Add support for events with copied name crbug.com/581078
+ // TODO(ssid): Move push to ScopedTracer after adding profiling support in
+ // Blink and skia crbug.com/598426.
if (!(flags & TRACE_EVENT_FLAG_COPY)) {
if (AllocationContextTracker::capture_enabled()) {
if (phase == TRACE_EVENT_PHASE_BEGIN ||
phase == TRACE_EVENT_PHASE_COMPLETE) {
AllocationContextTracker::GetInstanceForCurrentThread()
->PushPseudoStackFrame(name);
- } else if (phase == TRACE_EVENT_PHASE_END)
+ } else if (phase == TRACE_EVENT_PHASE_END) {
// The pop for |TRACE_EVENT_PHASE_COMPLETE| events
// is in |TraceLog::UpdateTraceEventDuration|.
AllocationContextTracker::GetInstanceForCurrentThread()
->PopPseudoStackFrame(name);
+ }
}
}
@@ -1409,7 +1416,7 @@ void TraceLog::UpdateTraceEventDuration(
const char* name,
TraceEventHandle handle) {
char category_group_enabled_local = *category_group_enabled;
- if (!category_group_enabled_local)
+ if (!(category_group_enabled_local & ENABLED_FOR_NON_PROFILING_MODE))
return;
// Avoid re-entrance of AddTraceEvent. This may happen in GPU process when
@@ -1716,7 +1723,8 @@ ScopedTraceBinaryEfficient::ScopedTraceBinaryEfficient(
INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO_CUSTOM_VARIABLES(
category_group, atomic, category_group_enabled_);
name_ = name;
- if (*category_group_enabled_) {
+ if (*category_group_enabled_ &
+ base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE) {
event_handle_ =
TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
TRACE_EVENT_PHASE_COMPLETE,
@@ -1736,7 +1744,8 @@ ScopedTraceBinaryEfficient::ScopedTraceBinaryEfficient(
}
ScopedTraceBinaryEfficient::~ScopedTraceBinaryEfficient() {
- if (*category_group_enabled_) {
+ if (*category_group_enabled_ &
+ base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE) {
TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(category_group_enabled_, name_,
event_handle_);
}
« base/trace_event/trace_log.h ('K') | « base/trace_event/trace_log.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698