[clangd-dev] Anyone know how to fix the clangd shared libraries crash?

Ilya Biryukov via clangd-dev clangd-dev at lists.llvm.org
Mon Feb 4 01:27:31 PST 2019


I failed to reproduce at head, building in Release mode, with assertions,
clang+lld (8), r351319 to be precise.
All tests successfully build and pass (i.e. ninja check-clangd).

On Sat, Feb 2, 2019 at 10:07 AM Sam McCall <sammccall at google.com> wrote:

> (Ilya and Roman, I'm hoping this is an obvious/dumb question you'll just
> know the answer to - I'd like shared libs to work well for my laptop when
> I'm sitting on a train like today, but I have no idea how they work...)
>
> With cmake -DBUILD_SHARED_LIBS=On, everything builds ok, but I get crashes
> in index tests (both lit and unittests, so both binaries affected).
> I'm using release clang+lld 7 on debian. We have no bots at all for shared
> libs.
>
> e.g.
> ninja ClangdTests && tools/clang/tools/extra/unittests/clangd/ClangdTests
> --gtest_filter=BackgroundIndexTest.NoCrashOnErrorFile
> Segfaults with the first useful frame:
>  #5 0x00007fad94321f4c (anonymous
> namespace)::IndexASTConsumer::Initialize(clang::ASTContext&)
> /home/sammccall/src/llvm/clang/lib/Index/IndexingAction.cpp:59:33
>
> I've narrowed it down to clang/index/IndexAction.cpp:185: the
> make_shared<SymbolCollector> call returns nullptr. (I can even print the
> pointer, it's null!)
> Following it in a debugger, shared_ptr just skips over the constructor
> call.
>
> I figure it must be a deps issue somehow, but I'm not sure how to work it
> out. The callsite and SymbolCollector are defined in the same library
> (clangDaemon). I've tried adding dependencies at random (e.g. adding the
> whole dependency list of clangDaemon, clangIndex, and ClangdTests to the
> other targets) but it doesn't make a difference.
>
> Anyone have ideas?
>


-- 
Regards,
Ilya Biryukov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/clangd-dev/attachments/20190204/e0a8b340/attachment.html>


More information about the clangd-dev mailing list