aboutsummaryrefslogtreecommitdiff
path: root/src/node.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/node.cc')
-rw-r--r--src/node.cc26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/node.cc b/src/node.cc
index b5b7ef1a5b..a7b7f45b30 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -61,6 +61,7 @@
#include "req_wrap-inl.h"
#include "string_bytes.h"
#include "tracing/agent.h"
+#include "tracing/node_trace_writer.h"
#include "util.h"
#include "uv.h"
#if NODE_USE_V8_PLATFORM
@@ -427,17 +428,24 @@ static struct {
#endif // HAVE_INSPECTOR
void StartTracingAgent() {
- tracing_file_writer_ = tracing_agent_->AddClient(
- trace_enabled_categories,
- new tracing::NodeTraceWriter(trace_file_pattern));
+ if (trace_enabled_categories.empty()) {
+ tracing_file_writer_ = tracing_agent_->DefaultHandle();
+ } else {
+ tracing_file_writer_ = tracing_agent_->AddClient(
+ ParseCommaSeparatedSet(trace_enabled_categories),
+ std::unique_ptr<tracing::AsyncTraceWriter>(
+ new tracing::NodeTraceWriter(trace_file_pattern,
+ tracing_agent_->loop())),
+ tracing::Agent::kUseDefaultCategories);
+ }
}
void StopTracingAgent() {
tracing_file_writer_.reset();
}
- tracing::Agent* GetTracingAgent() const {
- return tracing_agent_.get();
+ tracing::AgentWriterHandle* GetTracingAgentWriter() {
+ return &tracing_file_writer_;
}
NodePlatform* Platform() {
@@ -466,7 +474,9 @@ static struct {
}
void StopTracingAgent() {}
- tracing::Agent* GetTracingAgent() const { return nullptr; }
+ tracing::AgentWriterHandle* GetTracingAgentWriter() {
+ return nullptr;
+ }
NodePlatform* Platform() {
return nullptr;
@@ -3590,7 +3600,7 @@ Environment* CreateEnvironment(IsolateData* isolate_data,
HandleScope handle_scope(isolate);
Context::Scope context_scope(context);
auto env = new Environment(isolate_data, context,
- v8_platform.GetTracingAgent());
+ v8_platform.GetTracingAgentWriter());
env->Start(argc, argv, exec_argc, exec_argv, v8_is_profiling);
return env;
}
@@ -3649,7 +3659,7 @@ inline int Start(Isolate* isolate, IsolateData* isolate_data,
HandleScope handle_scope(isolate);
Local<Context> context = NewContext(isolate);
Context::Scope context_scope(context);
- Environment env(isolate_data, context, v8_platform.GetTracingAgent());
+ Environment env(isolate_data, context, v8_platform.GetTracingAgentWriter());
env.Start(argc, argv, exec_argc, exec_argv, v8_is_profiling);
const char* path = argc > 1 ? argv[1] : nullptr;