Skip to content

Commit aa1ac2a

Browse files
committed
[clangd] Flush stderr after signal handlers run, so we always get the full stack/crash info
1 parent 413e249 commit aa1ac2a

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

clang-tools-extra/clangd/tool/ClangdMain.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,12 @@ int main(int argc, char *argv[]) {
681681
llvm::InitializeAllTargetInfos();
682682
llvm::sys::PrintStackTraceOnErrorSignal(argv[0]);
683683
llvm::sys::AddSignalHandler(
684-
[](void *) { ThreadCrashReporter::runCrashHandlers(); }, nullptr);
684+
[](void *) {
685+
ThreadCrashReporter::runCrashHandlers();
686+
// Ensure ThreadCrashReporter and PrintStackTrace output is visible.
687+
llvm::errs().flush();
688+
},
689+
nullptr);
685690
llvm::sys::SetInterruptFunction(&requestShutdown);
686691
llvm::cl::SetVersionPrinter([](llvm::raw_ostream &OS) {
687692
OS << versionString() << "\n"

0 commit comments

Comments
 (0)