@@ -423,6 +423,17 @@ int main(int argc, char *argv[]) {
423423 llvm::errs ().SetBuffered ();
424424 StreamLogger Logger (llvm::errs (), LogLevel);
425425 LoggingSession LoggingSession (Logger);
426+ // Write some initial logs before we start doing any real work.
427+ log (" {0}" , clang::getClangToolFullVersion (" clangd" ));
428+ {
429+ SmallString<128 > CWD;
430+ if (auto Err = llvm::sys::fs::current_path (CWD))
431+ log (" Working directory unknown: {0}" , Err.message ());
432+ else
433+ log (" Working directory: {0}" , CWD);
434+ }
435+ for (int I = 0 ; I < argc; ++I)
436+ log (" argv[{0}]: {1}" , I, argv[I]);
426437
427438 // If --compile-commands-dir arg was invoked, check value and override default
428439 // path.
@@ -501,12 +512,14 @@ int main(int argc, char *argv[]) {
501512 std::unique_ptr<Transport> TransportLayer;
502513 if (getenv (" CLANGD_AS_XPC_SERVICE" )) {
503514#if CLANGD_BUILD_XPC
515+ log (" Starting LSP over XPC service" );
504516 TransportLayer = newXPCTransport ();
505517#else
506518 llvm::errs () << " This clangd binary wasn't built with XPC support.\n " ;
507519 return (int )ErrorResultCode::CantRunAsXPCService;
508520#endif
509521 } else {
522+ log (" Starting LSP over stdin/stdout" );
510523 TransportLayer = newJSONTransport (
511524 stdin, llvm::outs (),
512525 InputMirrorStream ? InputMirrorStream.getPointer () : nullptr ,
0 commit comments