Intel Inspector

Intel Inspector (previously known as Intel Thread Checker) is a memory and thread checking and debugging tool to increase the reliability, security, and accuracy of C/C++ and Fortran applications.
 * Reliability: Find deadlocks and memory errors that cause lockups & crashes
 * Security: Find memory and threading vulnerabilities used by hackers
 * Accuracy: Identify memory corruption and race conditions to eliminate erroneous results

The nondeterministic nature of threading errors makes it hard to reproduce. Intel Inspector detects and locates threading errors that include race conditions, deadlocks, depth configurable call stack analysis, diagnostic guidance, built-in knowledge of Threading Building Blocks (TBB), OpenMP, and POSIX or Win32 threads.

Memory checking includes memory leaks, dangling pointers, uninitialized variables, use of invalid memory references, mismatched memory, allocation and deallocation, stack memory checks, and stack trace with controllable stack trace depth. Intel Inspector finds these errors and integrates with a debugger to identify the associated issues. It also diagnoses memory growth and locates the call stack causing it.

Intel Inspector has integration with debuggers (Microsoft VS debugger, GDB) so that Inspector automatically detects an error and places a debugger breakpoint at the problematic code location, allowing the user to investigate the details in a debugger.

The tool also detects persistent memory errors. 3D XPoint is a new emerging persistent memory technology for the data centers. Inspector detects persistent memory errors such as redundant cache flushes, memory fences, out-of-order persistent memory stores, incorrect undo logging etc.

Intel Inspector is available for free as a stand-alone tool, as part of Intel oneAPI HPC and IoT Toolkits. Optional paid commercial support is available for the Intel HPC and IoT Toolkits.