🚀
Introducing Versions: Develop data products using Git. Join the waitlist

ClickHouse tips #2: Debugging ClickHouse on Visual Studio Code

How to configure Visual Studio Code to debug ClickHouse on it.
Alberto Romeu
Backend Developer
Feb 10, 2021
 ・ 
  min read

It’s possible to debug ClickHouse on VSCode. These are the steps to do it:

  • Build ClickHouse for debugging docs
  • You can adapt the build with several flags, in my case I want to disable {% code-line %}jemalloc{% code-line-end %}:
  • Doing {% code-line %}ninja clickhouse-server clickhouse-client{% code-line-end %} the whole process takes less than one hour.

And then to debug with Visual Studio Code:

  • Install the C++ extension (and gdb from brew or apt)
  • Create a new run config like this in {% code-line %}.vscode{% code-line-end %}:

Then you can just add breakpoints in any line in the editor and {% code-line %}RUN{% code-line-end %} from inside Visual Studio Code.

After doing any change in a cpp file, you can just recompile it, although there might be better ways to do this (let us know!). There’s a {% code-line %}compile_commands.json{% code-line-end %} file in the build folder with the commands and then call ninja to re-generate the clickhouse binary (it’ll just recompile the dependencies)

That’s it!