Save time and efforts - Get the most out of C++ tools
In KDAB we know that C++ tools often can be hard to understand, hard to setup and/or it’s not clear which one to use. Based on our extensive experience in using C++ tools in our projects, we can help you to automatically analyze your native C++ source code, detect memory management and threading bugs, find errors or performance hotspots as well as to build new tools.
Some of areas and correlating tools we are used to work with, and can help you with, are:
C++ Static Code Analysis Tools
Clazy is plugin for the Clang Static Analyzer, maintained by KDABian, Sérgio Martins. It enables the compiler to operate at a higher semantic level than just C++, enforcing best practices and detecting errors on framesworks like Boost, STL or Qt. Read more…
C++ Error Checking Tools
- Valgrind’s memcheck and helgrind.
Valgrind’s memcheck is a tool for detecting memory-related bugs in your code (leaks, double deletions, use of deleted memory, use of uninitialized memory, etc.). Valgrind also comes with helgrind, a tool to detect race conditions between threads, in multithreaded applications. Read more…
- Sanitizers for GCC and Clang
The Address and Thread Sanitizers have been built to find the same errors as the tools from the Valgrind suite. The big advantage of the sanitizers is their efficiency and reduced overhead: This allows the analyzation of even the largest applications.
C++ Profiling Tools
- CPU: Linux perf, Intel VTune
Sampling based CPU profilers allow deep insights into how your code is performing. With minimal overhead you can find hotspots where too many CPU cycles are consumed, e.g. due to excessive instructions in unoptimized code paths, or cache misses resulting from the choice of data structures.
Additionally, these profilers are also capable of analyzing sleep times which can arise in parallelized applications suffering from lock contention.
- Tracing: Linux perf, LTTNG, Windows Performance Analyzer
When you need to analyze the full stack to understand how the kernel and the various processes and threads on your system play together, then tracing is the go-to technique to find answers. It allows you to analyze and optimize boot and startup time as well as to investigate the impact of scheduler priorities on the run-time behavior of your application.
- Memory: heaptrack, Visual Studio
To reduce the memory footprint of your application special-purpose heap profilers are extremely helpful. With their help you can find data structures and code paths that allocate the most memory. Additionally, they will find hidden temporary allocations that slow down your application.
KDAB. Helping you to become more productive
In KDAB we have over 15 years of experience in using C++ tools to reduce complexity, improve predictability as well as to innovate processes. We can help you to deliver projects faster with functional and high-performing software – including avoiding repetetive work, where possible.
Being a reliable partner for hundreds of customers, several on the fortune 500 list, we are looking forward to also help you!Contact us