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

Unified Diff: ppapi/shared_impl/ppb_trace_event_impl.cc

Issue 17555005: Add events with custom timestamps and thread id to PPAPI dev tracing interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sync Created 7 years, 6 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
« no previous file with comments | « ppapi/shared_impl/ppb_trace_event_impl.h ('k') | ppapi/tests/test_trace_event.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/shared_impl/ppb_trace_event_impl.cc
diff --git a/ppapi/shared_impl/ppb_trace_event_impl.cc b/ppapi/shared_impl/ppb_trace_event_impl.cc
index 6803fc6d36d8b30f676d98a12c519193dfda71c4..1433d4af14670132f115f8aaf2fdaebe84fdc15a 100644
--- a/ppapi/shared_impl/ppb_trace_event_impl.cc
+++ b/ppapi/shared_impl/ppb_trace_event_impl.cc
@@ -4,6 +4,7 @@
#include "ppapi/shared_impl/ppb_trace_event_impl.h"
+#include "base/basictypes.h"
#include "base/debug/trace_event.h"
#include "ppapi/thunk/thunk.h"
@@ -28,15 +29,19 @@ void* TraceEventImpl::GetCategoryEnabled(const char* category_name) {
}
// static
-void TraceEventImpl::AddTraceEvent(int8_t phase,
- const void* category_enabled,
- const char* name,
- uint64_t id,
- uint32_t num_args,
- const char* arg_names[],
- const uint8_t arg_types[],
- const uint64_t arg_values[],
- uint8_t flags) {
+void TraceEventImpl::AddTraceEvent(
+ int8_t phase,
+ const void* category_enabled,
+ const char* name,
+ uint64_t id,
+ uint32_t num_args,
+ const char* arg_names[],
+ const uint8_t arg_types[],
+ const uint64_t arg_values[],
+ uint8_t flags) {
+
+ COMPILE_ASSERT(sizeof(unsigned long long) == sizeof(uint64_t), msg);
+
base::debug::TraceLog::GetInstance()->AddTraceEvent(phase,
static_cast<const unsigned char*>(category_enabled), name, id, num_args,
arg_names, arg_types,
@@ -48,15 +53,54 @@ void TraceEventImpl::AddTraceEvent(int8_t phase,
}
// static
+void TraceEventImpl::AddTraceEventWithThreadIdAndTimestamp(
+ int8_t phase,
+ const void* category_enabled,
+ const char* name,
+ uint64_t id,
+ int32_t thread_id,
+ int64_t timestamp,
+ uint32_t num_args,
+ const char* arg_names[],
+ const uint8_t arg_types[],
+ const uint64_t arg_values[],
+ uint8_t flags) {
+ base::debug::TraceLog::GetInstance()->AddTraceEventWithThreadIdAndTimestamp(
+ phase,
+ static_cast<const unsigned char*>(category_enabled), name, id,
+ thread_id,
+ base::TimeTicks::FromInternalValue(timestamp),
+ num_args, arg_names, arg_types,
+ // This cast is necessary for LP64 systems, where uint64_t is defined as
+ // an unsigned long int, but trace_event internals are hermetic and
+ // accepts an |unsigned long long*|. The pointer types are compatible but
+ // the compiler throws an error without an explicit cast.
+ reinterpret_cast<const unsigned long long*>(arg_values), NULL, flags);
+}
+
+// static
+int64_t TraceEventImpl::Now() {
+ return base::TimeTicks::NowFromSystemTraceTime().ToInternalValue();
+}
+
+// static
void TraceEventImpl::SetThreadName(const char* thread_name) {
base::PlatformThread::SetName(thread_name);
}
namespace {
-const PPB_Trace_Event_Dev g_ppb_trace_event_thunk = {
+const PPB_Trace_Event_Dev_0_1 g_ppb_trace_event_thunk_0_1 = {
+ &TraceEventImpl::GetCategoryEnabled,
+ &TraceEventImpl::AddTraceEvent,
+ &TraceEventImpl::SetThreadName,
+};
+
+const PPB_Trace_Event_Dev_0_2 g_ppb_trace_event_thunk_0_2 = {
&TraceEventImpl::GetCategoryEnabled,
&TraceEventImpl::AddTraceEvent,
+ &TraceEventImpl::AddTraceEventWithThreadIdAndTimestamp,
+ &TraceEventImpl::Now,
&TraceEventImpl::SetThreadName,
};
@@ -68,7 +112,11 @@ namespace ppapi {
namespace thunk {
const PPB_Trace_Event_Dev_0_1* GetPPB_Trace_Event_Dev_0_1_Thunk() {
- return &g_ppb_trace_event_thunk;
+ return &g_ppb_trace_event_thunk_0_1;
+}
+
+const PPB_Trace_Event_Dev_0_2* GetPPB_Trace_Event_Dev_0_2_Thunk() {
+ return &g_ppb_trace_event_thunk_0_2;
}
} // namespace thunk
« no previous file with comments | « ppapi/shared_impl/ppb_trace_event_impl.h ('k') | ppapi/tests/test_trace_event.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698