For example, if you have a compile_commands.json which is generating an empty LSIF dump, here is a useful baseline to check first and start delta debugging.
Configuration: clang-11 and lsif-clang from the sourcegraph/lsif-clang Docker image (e78b83931bd2).
Testing with a basic cpp file.
// tmp.cpp
struct C {
static int doStuff() { return 1; }
};
int main() {
return C::doStuff();
}
I generated the compilation database as follows: (inside the Docker container with a shell)
clang++-11 -MJ tmp.cc.json tmp.cpp -c -o tmp.o
This generates a single compilation command database entry, which needs to be massaged into the right format.
sed -e ‘1s/^/[\n/’ -e ‘$s/,$/\n]/’ *.cc.json > compile_commands.json
Pass this to lsif-clang
lsif-clang compile_commands.json
This generates a dump.lsif file with 53 lines, including lines such as
{“id”:17,“type”:“vertex”,“label”:“hoverResult”,“result”:{“contents”:[{“language”:“cpp”,“value”:“int C::doStuff()“}]}}
For example, if you have a compile_commands.json which is generating an empty LSIF dump, here is a useful baseline to check first and start delta debugging.
Configuration: clang-11 and lsif-clang from the sourcegraph/lsif-clang Docker image (e78b83931bd2).
Testing with a basic cpp file.
I generated the compilation database as follows: (inside the Docker container with a shell)
This generates a single compilation command database entry, which needs to be massaged into the right format.
Pass this to
lsif-clangThis generates a
dump.lsiffile with 53 lines, including lines such as