Skip to content
This repository has been archived by the owner on Sep 27, 2019. It is now read-only.

Develop and Debug with CLion

Matt Butrovich edited this page Jul 6, 2018 · 4 revisions

Requirement

Setup

  • In CLion, select Check out from Version Control > Git, clone Peloton repository. Open the project.
  • Go to File > Settings... (CLion > Preferences... on macOS)
    • Go to Build, Execution, Deployment > CMake. Create as many build profiles as you need. We recommend at least the following 3 for developers:
      • For development: Build type: Debug, CMake options: -DUSE_SANITIZER=Address
      • For profiling: Build type: RelWithDebInfo
      • For benchmarking: Build type: Release
    • If you're on macOS and don't want to set them globally, add the following environment variables for each Profile:
      • LLVM_DIR=/usr/local/Cellar/llvm@3.7/3.7.1/lib/llvm-3.7
      • ASAN_OPTIONS=detect_container_overflow=0
  • After CLion processes the CMake project files, choose your build target and profile from the drop-down menu at the top-right of the IDE and build.

Customization

  • Go to File > Settings... (CLion > Preferences... on macOS) and then Editor > Code Style > C/C++. Go to Set from... > Predefined Style > Google. You should rely on Peloton's scripts for formatting, but this will make CLion closely adhere to our preferred style while you work.
  • CLion's indexing and code analysis on Peloton can use a significant amount of memory due to the TBB and Boost libraries. There are numerous guides on the Internet for optimizing CLion's JVM parameters for large projects, but at a minimum we recommend the following:
    • Go to Help > Edit Custom VM Options...
    • For systems with 8GB of RAM, set initial heap and maximum heap size respectively:
      • -Xms1024m
      • -Xmx4096m
    • For systems with >=16GB of RAM, set initial heap and maximum heap size respectively:
      • -Xms2048m
      • -Xmx8192m

Debug

Tips

  • CLion caches the CMake project files, so if you add or remove files you'll want to refresh the build settings be going to Tools > CMake > Reset Cache and Reload Project.
Clone this wiki locally