问题描述
我有一个C ++项目,可以在其中打开任何.cpp或.h,并且LSP将会崩溃/失败(我在lsp-mode
中使用emacs)。
例如,如果我尝试打开名为IDictionary.h
的文件,则clangd将失败,并在 clangd :: stderr 缓冲区中出现以下错误
I[17:33:37.200] BeginSourceFile() Failed when building AST for /home/anlsh/work/horizon-runtime/src/prod/data/IDictionary.h
I[17:33:37.246] <-- textDocument/documentHighlight(103)
I[17:33:37.246] --> reply:textDocument/documentHighlight(103) 0 ms,error: invalid AST
17:36:44 indexer6 indexer.cc:1302 E Failed to index /home/anlsh/work/horizon-runtime/src/prod/data/IDictionary.h
/snap/ccls/48/bin/../usr/lib/x86_64-linux-gnu/libLLVM-7.so.1(_ZN4llvm3sys15printstacktraceERNS_11raw_ostreamE+0x2a)[0x7f2301010e8a]
/snap/ccls/48/bin/../usr/lib/x86_64-linux-gnu/libLLVM-7.so.1(_ZN4llvm3sys17RunSignalHandlersEv+0x34)[0x7f230100f544]
/snap/ccls/48/bin/../usr/lib/x86_64-linux-gnu/libLLVM-7.so.1(+0x907682)[0x7f230100f682]
/snap/core18/current/lib/x86_64-linux-gnu/libpthread.so.0(+0x128a0)[0x7f22fff5a8a0]
/snap/ccls/48/bin/ccls(+0x24ae87)[0x5564df56ee87]
/snap/core18/current/lib/x86_64-linux-gnu/libpthread.so.0(+0x76db)[0x7f22fff4f6db]
/snap/core18/current/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7f22ffc78a3f]
无论如何,项目中的每个文件都会发生这种情况,即使是简单的文件也是如此
#include "stdafx.h"
using namespace Api;
我的假设是build / compile_commands.json插入的某些文件正在破坏所有内容,但是我不确定。 VSCode(虽然我知道它有自己的技巧,但我认为它正在使用LSP)在我的项目中根本没有任何问题。
无论如何,我一直希望有人可以将我引向一些更详细的clangd
或ccls
日志,也许还有一些命令可以使我获得更多有用的错误消息或验证项目中的文件
解决方法
该问题似乎已在最新版本的clangd(11.0)和ccls(0.20190823.6-26-g141aea8a)上解决。
关于LLVM不和谐的Sam McCall也有这样的话
您可以通过在-lang = args中添加-log = verbose并提供更多日志来获取更多信息(可能相关的内容包括版本,路径,前言构建等)。 我对Windows stdafx不太了解,但是我知道它带来了很多东西,其中有些可能已经打上该版本的错误。