From 9adc6a6bd0e575f8d2df33478d501d4032860b38 Mon Sep 17 00:00:00 2001 From: Glen Keane Date: Thu, 15 Oct 2015 21:37:17 +0100 Subject: [PATCH] lttng: update flags for gc tracing PR-URL: https://github.com/nodejs/node/pull/3388 Reviewed-By: Ben Noordhuis --- src/node_lttng_provider.h | 60 ++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/src/node_lttng_provider.h b/src/node_lttng_provider.h index 22dd935a95f464..2b5b9be8d39535 100644 --- a/src/node_lttng_provider.h +++ b/src/node_lttng_provider.h @@ -7,6 +7,17 @@ namespace node { +#define FOR_ALL_GC_TYPES(APPLY) \ + APPLY(kGCTypeScavenge) \ + APPLY(kGCTypeMarkSweepCompact) \ + APPLY(kGCTypeAll) + +#define FOR_ALL_GC_CALLBACK_FLAGS(APPLY) \ + APPLY(kNoGCCallbackFlags) \ + APPLY(kGCCallbackFlagConstructRetainedObjectInfos) \ + APPLY(kGCCallbackFlagForced) \ + APPLY(kGCCallbackFlagSynchronousPhantomCallbackProcessing) + void NODE_HTTP_SERVER_REQUEST(node_lttng_http_server_request_t* req, node_lttng_connection_t* conn, const char *remote, int port, @@ -48,42 +59,33 @@ void NODE_NET_STREAM_END(node_lttng_connection_t* conn, void NODE_GC_START(v8::GCType type, v8::GCCallbackFlags flags, v8::Isolate* isolate) { - const char* typeStr = ""; - const char* flagsStr = ""; - if (type == v8::GCType::kGCTypeScavenge) { - typeStr = "kGCTypeScavenge"; - } else if (type == v8::GCType::kGCTypeMarkSweepCompact) { - typeStr = "kGCTypeMarkSweepCompact"; - } else if (type == v8::GCType::kGCTypeAll) { - typeStr = "kGCTypeAll"; - } - if (flags == v8::GCCallbackFlags::kNoGCCallbackFlags) { - flagsStr = "kNoGCCallbackFlags"; - } else if (flags == v8::GCCallbackFlags::kGCCallbackFlagCompacted) { - flagsStr = "kGCCallbackFlagCompacted"; - } + const char* typeStr = "Unkown GC Type"; + const char* flagsStr = "Unknown GC Flag"; + +#define BUILD_IF(f) if (type == v8::GCType::f) { typeStr = #f; } + FOR_ALL_GC_TYPES(BUILD_IF); +#undef BUILD_IF + +#define BUILD_IF(f) if (flags == v8::GCCallbackFlags::f) { flagsStr = #f; } + FOR_ALL_GC_CALLBACK_FLAGS(BUILD_IF); +#undef BUILD_IF tracepoint(node, gc_start, typeStr, flagsStr); } - void NODE_GC_DONE(v8::GCType type, v8::GCCallbackFlags flags, v8::Isolate* isolate) { - const char* typeStr = ""; - const char* flagsStr = ""; - if (type == v8::GCType::kGCTypeScavenge) { - typeStr = "kGCTypeScavenge"; - } else if (type == v8::GCType::kGCTypeMarkSweepCompact) { - typeStr = "kGCTypeMarkSweepCompact"; - } else if (type == v8::GCType::kGCTypeAll) { - typeStr = "kGCTypeAll"; - } - if (flags == v8::GCCallbackFlags::kNoGCCallbackFlags) { - flagsStr = "kNoGCCallbackFlags"; - } else if (flags == v8::GCCallbackFlags::kGCCallbackFlagCompacted) { - flagsStr = "kGCCallbackFlagCompacted"; - } + const char* typeStr = "Unkown GC Type"; + const char* flagsStr = "Unknown GC Flag"; + +#define BUILD_IF(f) if (type == v8::GCType::f) { typeStr = #f; } + FOR_ALL_GC_TYPES(BUILD_IF); +#undef BUILD_IF + +#define BUILD_IF(f) if (flags == v8::GCCallbackFlags::f) { flagsStr = #f; } + FOR_ALL_GC_CALLBACK_FLAGS(BUILD_IF); +#undef BUILD_IF tracepoint(node, gc_done, typeStr, flagsStr); }