| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/trace_event/trace_event_impl.h" | 5 #include "base/trace_event/trace_event_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
| 10 #include "base/json/string_escape.h" | 10 #include "base/json/string_escape.h" |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 StringAppendF(out, ",\"tts\":%" PRId64, thread_time_int64); | 351 StringAppendF(out, ",\"tts\":%" PRId64, thread_time_int64); |
| 352 } | 352 } |
| 353 | 353 |
| 354 // Output async tts marker field if flag is set. | 354 // Output async tts marker field if flag is set. |
| 355 if (flags_ & TRACE_EVENT_FLAG_ASYNC_TTS) { | 355 if (flags_ & TRACE_EVENT_FLAG_ASYNC_TTS) { |
| 356 StringAppendF(out, ", \"use_async_tts\":1"); | 356 StringAppendF(out, ", \"use_async_tts\":1"); |
| 357 } | 357 } |
| 358 | 358 |
| 359 // If id_ is set, print it out as a hex string so we don't loose any | 359 // If id_ is set, print it out as a hex string so we don't loose any |
| 360 // bits (it might be a 64-bit pointer). | 360 // bits (it might be a 64-bit pointer). |
| 361 if (flags_ & TRACE_EVENT_FLAG_HAS_ID) { | 361 unsigned int id_flags_ = flags_ & (TRACE_EVENT_FLAG_HAS_ID | |
| 362 TRACE_EVENT_FLAG_HAS_LOCAL_ID | |
| 363 TRACE_EVENT_FLAG_HAS_GLOBAL_ID); |
| 364 if (id_flags_) { |
| 362 if (scope_ != trace_event_internal::kGlobalScope) | 365 if (scope_ != trace_event_internal::kGlobalScope) |
| 363 StringAppendF(out, ",\"scope\":\"%s\"", scope_); | 366 StringAppendF(out, ",\"scope\":\"%s\"", scope_); |
| 364 StringAppendF(out, ",\"id\":\"0x%" PRIx64 "\"", static_cast<uint64_t>(id_)); | 367 |
| 368 switch (id_flags_) { |
| 369 case TRACE_EVENT_FLAG_HAS_ID: |
| 370 StringAppendF(out, ",\"id\":\"0x%" PRIx64 "\"", |
| 371 static_cast<uint64_t>(id_)); |
| 372 break; |
| 373 |
| 374 case TRACE_EVENT_FLAG_HAS_LOCAL_ID: |
| 375 StringAppendF(out, ",\"id2\":{\"local\":\"0x%" PRIx64 "\"}", |
| 376 static_cast<uint64_t>(id_)); |
| 377 break; |
| 378 |
| 379 case TRACE_EVENT_FLAG_HAS_GLOBAL_ID: |
| 380 StringAppendF(out, ",\"id2\":{\"global\":\"0x%" PRIx64 "\"}", |
| 381 static_cast<uint64_t>(id_)); |
| 382 break; |
| 383 |
| 384 default: |
| 385 NOTREACHED() << "More than one of the ID flags are set"; |
| 386 break; |
| 387 } |
| 365 } | 388 } |
| 366 | 389 |
| 367 if (flags_ & TRACE_EVENT_FLAG_BIND_TO_ENCLOSING) | 390 if (flags_ & TRACE_EVENT_FLAG_BIND_TO_ENCLOSING) |
| 368 StringAppendF(out, ",\"bp\":\"e\""); | 391 StringAppendF(out, ",\"bp\":\"e\""); |
| 369 | 392 |
| 370 if ((flags_ & TRACE_EVENT_FLAG_FLOW_OUT) || | 393 if ((flags_ & TRACE_EVENT_FLAG_FLOW_OUT) || |
| 371 (flags_ & TRACE_EVENT_FLAG_FLOW_IN) || | 394 (flags_ & TRACE_EVENT_FLAG_FLOW_IN) || |
| 372 phase_ == TRACE_EVENT_PHASE_BIND_IDS) { | 395 phase_ == TRACE_EVENT_PHASE_BIND_IDS) { |
| 373 StringAppendF(out, ",\"bind_id\":\"0x%" PRIx64 "\"", | 396 StringAppendF(out, ",\"bind_id\":\"0x%" PRIx64 "\"", |
| 374 static_cast<uint64_t>(bind_id_)); | 397 static_cast<uint64_t>(bind_id_)); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 418 AppendValueAsJSON(arg_types_[i], arg_values_[i], &value_as_text); | 441 AppendValueAsJSON(arg_types_[i], arg_values_[i], &value_as_text); |
| 419 | 442 |
| 420 *out << value_as_text; | 443 *out << value_as_text; |
| 421 } | 444 } |
| 422 *out << "}"; | 445 *out << "}"; |
| 423 } | 446 } |
| 424 } | 447 } |
| 425 | 448 |
| 426 } // namespace trace_event | 449 } // namespace trace_event |
| 427 } // namespace base | 450 } // namespace base |
| OLD | NEW |