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

Unified Diff: webrtc/base/trace_event.h

Issue 2019423006: Adding more detail to MessageQueue::Dispatch logging. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 7 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
Index: webrtc/base/trace_event.h
diff --git a/webrtc/base/trace_event.h b/webrtc/base/trace_event.h
index 3916af4fb61bf713139f60f617c02793b24ade3e..54d2f2cc80be8691ae8c0e6a94cdd1e9bd97f62f 100644
--- a/webrtc/base/trace_event.h
+++ b/webrtc/base/trace_event.h
@@ -1,7 +1,12 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file under third_party_mods/chromium or at:
-// http://src.chromium.org/svn/trunk/src/LICENSE
+/*
+ * Copyright 2016 The WebRTC Project Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
#ifndef WEBRTC_BASE_TRACE_EVENT_H_
#define WEBRTC_BASE_TRACE_EVENT_H_
@@ -157,7 +162,7 @@
webrtc::trace_event_internal::TraceID::ForceMangle(id)
// Records a pair of begin and end events called "name" for the current
-// scope, with 0, 1 or 2 associated arguments. If the category is not
+// scope, with 0, 1, 2, or 3 associated arguments. If the category is not
// enabled, then this does nothing.
// - category and name strings must have application lifetime (statics or
// literals). They may not include " chars.
@@ -168,6 +173,10 @@
#define TRACE_EVENT2(category, name, arg1_name, arg1_val, arg2_name, arg2_val) \
INTERNAL_TRACE_EVENT_ADD_SCOPED(category, name, arg1_name, arg1_val, \
arg2_name, arg2_val)
+#define TRACE_EVENT3(category, name, arg1_name, arg1_val, arg2_name, arg2_val, \
+ arg3_name, arg3_val) \
+ INTERNAL_TRACE_EVENT_ADD_SCOPED(category, name, arg1_name, arg1_val, \
+ arg2_name, arg2_val, arg3_name, arg3_val)
// Same as TRACE_EVENT except that they are not included in official builds.
#ifdef OFFICIAL_BUILD
@@ -866,6 +875,29 @@ static inline void AddTraceEvent(char phase,
flags);
}
+template <class ARG1_TYPE, class ARG2_TYPE, class ARG3_TYPE>
+static inline void AddTraceEvent(char phase,
+ const unsigned char* category_enabled,
+ const char* name,
+ unsigned long long id,
+ unsigned char flags,
+ const char* arg1_name,
+ const ARG1_TYPE& arg1_val,
+ const char* arg2_name,
+ const ARG2_TYPE& arg2_val,
+ const char* arg3_name,
+ const ARG3_TYPE& arg3_val) {
+ const int num_args = 3;
+ const char* arg_names[3] = {arg1_name, arg2_name, arg3_name};
+ unsigned char arg_types[3];
+ unsigned long long arg_values[3];
+ SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]);
+ SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]);
+ SetTraceValue(arg3_val, &arg_types[2], &arg_values[2]);
+ TRACE_EVENT_API_ADD_TRACE_EVENT(phase, category_enabled, name, id, num_args,
+ arg_names, arg_types, arg_values, flags);
+}
+
// Used by TRACE_EVENTx macro. Do not use directly.
class TraceEndOnScopeClose {
public:

Powered by Google App Engine
This is Rietveld 408576698