forked from qt-creator/qt-creator
Clang: Disable crash recovery in libclang
...because
1. We already run in a separate process.
2. It's not entirely clear in which state we end up after a crash,
except for:
3. A "crashed" translation unit won't be freed, even when calling
clang_disposeTranslationUnit().
This avoids undefined behavior within clangbackend and accumulated
leaking memory in the long run. On the other side, crashes within
libclang will crash clangbackend now, too.
Change-Id: I0789c52db08ace2f7e181e3b7bdfc9f595f75e8d
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
@@ -53,6 +53,7 @@ ClangCodeModelConnectionClient::ClangCodeModelConnectionClient(
|
||||
|
||||
Utils::Environment environment;
|
||||
environment.set(QStringLiteral("LIBCLANG_NOTHREADS"), QString());
|
||||
environment.set(QStringLiteral("LIBCLANG_DISABLE_CRASH_RECOVERY"), QString());
|
||||
m_processCreator.setEnvironment(environment);
|
||||
|
||||
stdErrPrefixer().setPrefix("clangbackend.stderr: ");
|
||||
|
||||
@@ -82,7 +82,6 @@ int main(int argc, char *argv[])
|
||||
|
||||
const QString connection = processArguments(application);
|
||||
|
||||
clang_toggleCrashRecovery(true);
|
||||
clang_enableStackTraces();
|
||||
|
||||
ClangCodeModelServer clangCodeModelServer;
|
||||
|
||||
Reference in New Issue
Block a user