Useful C++ tools that I use for different aspects of the development cycle.
Cross-platform buildsystem generator.
Faster alternative for make
.
Ccache is a compiler cache.
distcc distributes compilation of C code across several machines on a network.
Ctest is the CMake test driver program. This program will run the tests and report results.
The fastest feature-rich C++11/14/17/20 single-header testing framework.
C++ testing framework developed by Google.
Google's framework for writing and using C++ mock classes. It can help you derive better designs of your system and write better tests.
gcov is a test coverage program.
Gcovr provides a utility for managing the use of the GNU gcov utility and generating summarized code coverage results.
Coverage tool for clang/llvm, see more details here.
Library for coverage-guided fuzz testing.
Here also LLVM code coverage tools are useful to see the coverage generated by running the fuzzers.
CodeChecker is an analyzer tooling, defect database and viewer extension for the Clang Static Analyzer and Clang Tidy.
Memory error detector.
Thread error detectors.
Memory error detector(faster alternative for valgrind memcheck).
Data race detector(faster alternative for valgrind hellgrind/drd).
Undefined behavior detector.
Runs a command and gathers performance counter statistics from it.
Runs a command and gathers performance counter profile from it.
The profile can be inspected later on, using perf report
.
Flame graphs are a visualization for sampled stack traces, which allows hot code-paths to be identified quickly.
gperftools is a collection of a high-performance multi-threaded malloc() implementation, plus some pretty nifty performance analysis tools.
pprof is a tool for visualization and analysis of profiling data.
Better alternative for builtin shell comand. Runs program and summarizes system resource usage.
A library to benchmark code snippets, similar to unit tests.
Web app that can show the assembly generated by various compilers.
cachegrind and callgrind.
I use these tools in emacs. Some of them are specific to emacs but most of them are available in any editor(vim, vscode etc.).
C++ language server. clangd understands your C++ code and adds smart features to your editor: code completion, compile errors, go-to-definition and more.
Automatic source code formatting based on Clang.
clang-based C++ "linter" tool.
Git frontend inside emacs.
Not C++ related but worth mentioning.
Org mode is for keeping notes, maintaining to-do lists, planning projects, authoring documents, computational notebooks, literate programming and more — in a fast and effective plain text system.