[clangd] Implemented tracing using Context
Reviewers: sammccall, ioeric, hokein
Reviewed By: sammccall
Subscribers: klimek, luckygeck, cfe-commits
Differential Revision: https://reviews.llvm.org/D40488
llvm-svn: 320706
diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp
index d1e4ed9..4c91fe8 100644
--- a/clang-tools-extra/clangd/tool/ClangdMain.cpp
+++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp
@@ -115,8 +115,10 @@
<< EC.message();
}
}
+
+ // Setup tracing facilities.
llvm::Optional<llvm::raw_fd_ostream> TraceStream;
- std::unique_ptr<trace::Session> TraceSession;
+ std::unique_ptr<trace::EventTracer> Tracer;
if (!TraceFile.empty()) {
std::error_code EC;
TraceStream.emplace(TraceFile, /*ref*/ EC, llvm::sys::fs::F_RW);
@@ -124,10 +126,14 @@
TraceFile.reset();
llvm::errs() << "Error while opening trace file: " << EC.message();
} else {
- TraceSession = trace::Session::create(*TraceStream, PrettyPrint);
+ Tracer = trace::createJSONTracer(*TraceStream, PrettyPrint);
}
}
+ llvm::Optional<trace::Session> TracingSession;
+ if (Tracer)
+ TracingSession.emplace(*Tracer);
+
llvm::raw_ostream &Outs = llvm::outs();
llvm::raw_ostream &Logs = llvm::errs();
JSONOutput Out(Outs, Logs,