|
15 | 15 | #endif // !defined(FUCHSIA_SDK) |
16 | 16 | #endif // defined(OS_FUCHSIA) |
17 | 17 |
|
| 18 | +#if !defined(OS_FUCHSIA) || defined(FUCHSIA_SDK) |
| 19 | + |
| 20 | +#define TRACE_DURATION(args, ...) |
| 21 | +#define TRACE_ASYNC_BEGIN(args, ...) |
| 22 | +#define TRACE_ASYNC_END(args, ...) |
| 23 | +#define TRACE_INSTANT(a, b, c) |
| 24 | +#define TRACE_SCOPE_THREAD 0 |
| 25 | + |
| 26 | +#endif // !defined(OS_FUCHSIA) ||defined(FUCHSIA_SDK) |
| 27 | + |
18 | 28 | #include <cstddef> |
19 | 29 | #include <cstdint> |
20 | 30 | #include <string> |
|
33 | 43 |
|
34 | 44 | // This macro has the FML_ prefix so that it does not collide with the macros |
35 | 45 | // from trace/event.h on Fuchsia. |
| 46 | +// TODO(DNO-448): This is disabled because Fuchsia counter id json parsing |
| 47 | +// only handles ints whereas this can produce ints or strings. |
36 | 48 | #define FML_TRACE_COUNTER(category_group, name, counter_id, arg1, ...) \ |
37 | 49 | ::fml::tracing::TraceCounter((category_group), (name), (counter_id), (arg1), \ |
38 | 50 | __VA_ARGS__); |
39 | 51 |
|
40 | 52 | #define FML_TRACE_EVENT(category_group, name, ...) \ |
| 53 | + TRACE_DURATION(category_group, name); \ |
41 | 54 | ::fml::tracing::TraceEvent((category_group), (name), __VA_ARGS__); \ |
42 | 55 | __FML__AUTO_TRACE_END(name) |
43 | 56 |
|
44 | 57 | #define FML_TRACE_EVENT0(category_group, name) \ |
| 58 | + TRACE_DURATION(category_group, name); \ |
45 | 59 | ::fml::tracing::TraceEvent0(category_group, name); \ |
46 | 60 | __FML__AUTO_TRACE_END(name) |
47 | 61 |
|
48 | 62 | #define FML_TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \ |
| 63 | + TRACE_DURATION(category_group, name, arg1_name, arg1_val); \ |
49 | 64 | ::fml::tracing::TraceEvent1(category_group, name, arg1_name, arg1_val); \ |
50 | 65 | __FML__AUTO_TRACE_END(name) |
51 | 66 |
|
52 | 67 | #define FML_TRACE_EVENT2(category_group, name, arg1_name, arg1_val, arg2_name, \ |
53 | 68 | arg2_val) \ |
| 69 | + TRACE_DURATION(category_group, name, arg1_name, arg1_val, arg2_name, \ |
| 70 | + arg2_val); \ |
54 | 71 | ::fml::tracing::TraceEvent2(category_group, name, arg1_name, arg1_val, \ |
55 | 72 | arg2_name, arg2_val); \ |
56 | 73 | __FML__AUTO_TRACE_END(name) |
57 | 74 |
|
58 | 75 | #define FML_TRACE_EVENT_ASYNC_BEGIN0(category_group, name, id) \ |
| 76 | + TRACE_ASYNC_BEGIN(category_group, name, id); \ |
59 | 77 | ::fml::tracing::TraceEventAsyncBegin0(category_group, name, id); |
60 | 78 |
|
61 | 79 | #define FML_TRACE_EVENT_ASYNC_END0(category_group, name, id) \ |
| 80 | + TRACE_ASYNC_END(category_group, name, id); \ |
62 | 81 | ::fml::tracing::TraceEventAsyncEnd0(category_group, name, id); |
63 | 82 |
|
64 | 83 | #define FML_TRACE_EVENT_ASYNC_BEGIN1(category_group, name, id, arg1_name, \ |
65 | 84 | arg1_val) \ |
| 85 | + TRACE_ASYNC_BEGIN(category_group, name, id, arg1_name, arg1_val); \ |
66 | 86 | ::fml::tracing::TraceEventAsyncBegin1(category_group, name, id, arg1_name, \ |
67 | 87 | arg1_val); |
68 | 88 |
|
69 | 89 | #define FML_TRACE_EVENT_ASYNC_END1(category_group, name, id, arg1_name, \ |
70 | 90 | arg1_val) \ |
| 91 | + TRACE_ASYNC_END(category_group, name, id, arg1_name, arg1_val); \ |
71 | 92 | ::fml::tracing::TraceEventAsyncEnd1(category_group, name, id, arg1_name, \ |
72 | 93 | arg1_val); |
73 | 94 |
|
74 | | -#define FML_TRACE_EVENT_INSTANT0(category_group, name) \ |
| 95 | +#define FML_TRACE_EVENT_INSTANT0(category_group, name) \ |
| 96 | + TRACE_INSTANT(category_group, name, TRACE_SCOPE_THREAD); \ |
75 | 97 | ::fml::tracing::TraceEventInstant0(category_group, name); |
76 | 98 |
|
77 | 99 | #define FML_TRACE_FLOW_BEGIN(category, name, id) \ |
|
0 commit comments