요즘 주로 사용하는 개발용 편집기는 vscode. 개발 프로젝트 중 C++의 경우 얼마전까지 vscode-ccls를 사용해서 go to definition 등을 처리했는데, 제대로 찾지 못하는 경우도 많고, problem report도 계속 표시되어 다른 툴을 알아보기 시작했다.
vscode-clangd를 사용해보기로 결정. vscode-clangd가 제대로 동작하려면 compilation database가 필요하다. Compilation database를 만들기 위해 Bear를 사용해서 makefile을 처리하도록 했는데, empty compilation databse만 생성된다.
Bear 개발자가 만든 다른 툴인 scan-build로 시도. scan-build는 llvm에 포함되어 있는 툴인데, Python으로 다시 만들고, intercept-build 등의 툴을 추가한 것으로 보인다. intercept-build로도 compilation database가 제대로 만들어지지 않아서 찾아보니 아래와 같이 CC CXX를 대체하도록 해서 성공.
intercept-build make CC=intercept-cc CXX=intercept-c++