Feb 10, 2021

ClickHouse tips #2: Debugging ClickHouse on Visual Studio Code

How to configure Visual Studio Code to debug ClickHouse on it.
Alberto Romeu
Backend Developer

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 jemalloc:
  • Doing ninja clickhouse-server clickhouse-client 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 .vscode:

Then you can just add breakpoints in any line in the editor and RUN 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 compile_commands.json 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!

Do you like this post?

Related posts

I built a Tinybird syntax highlighter for VSCode
Experimental ClickHouse: Projections
Coming soon on ClickHouse: Window functions
Changelog: autocomplete uses the full ClickHouse documentation. CLI on MacOS and more
Log Analytics: how to identify trends and correlations that Log Analysis tools cannot
Tinybird vs. ClickHouse®️: What's the difference?
ClickHouse tips #11: Best way to get query types

Tinybird

Team

Sep 22, 2021
ClickHouse Tips #12: Apply Functions to Columns with a Single Call

Tinybird

Team

Sep 29, 2021
Want a managed ClickHouse®️? Here are some options
Want a managed ClickHouse®️? Here are some options

Build fast data products, faster.

Try Tinybird and bring your data sources together and enable engineers to build with data in minutes. No credit card required, free to get started.
Tinybird is not affiliated with, associated with, or sponsored by ClickHouse, Inc. ClickHouse® is a registered trademark of ClickHouse, Inc.
Need more? Contact sales for Enterprise support.