@@ -423,6 +423,17 @@ int main(int argc, char *argv[]) {
423
423
llvm::errs ().SetBuffered ();
424
424
StreamLogger Logger (llvm::errs (), LogLevel);
425
425
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]);
426
437
427
438
// If --compile-commands-dir arg was invoked, check value and override default
428
439
// path.
@@ -501,12 +512,14 @@ int main(int argc, char *argv[]) {
501
512
std::unique_ptr<Transport> TransportLayer;
502
513
if (getenv (" CLANGD_AS_XPC_SERVICE" )) {
503
514
#if CLANGD_BUILD_XPC
515
+ log (" Starting LSP over XPC service" );
504
516
TransportLayer = newXPCTransport ();
505
517
#else
506
518
llvm::errs () << " This clangd binary wasn't built with XPC support.\n " ;
507
519
return (int )ErrorResultCode::CantRunAsXPCService;
508
520
#endif
509
521
} else {
522
+ log (" Starting LSP over stdin/stdout" );
510
523
TransportLayer = newJSONTransport (
511
524
stdin, llvm::outs (),
512
525
InputMirrorStream ? InputMirrorStream.getPointer () : nullptr ,
0 commit comments