Deliver reliable applications. Locate and debug threading, memory, and persistent memory errors early in the design cycle to avoid costly errors later.
Solve Memory and Threading Problems Early
Memory errors and nondeterministic threading errors are difficult to find without the right tool. Intel® Inspector is designed to find these errors. It is a dynamic memory and threading error debugger for C, C++, and Fortran applications that run on Windows* and Linux*.
Save money: locate the root cause of memory, threading, and persistence errors before you release.
Save time: simplify the diagnosis of difficult errors by breaking into the debugger just before the error occurs.
Save effort: use your normal debug or production build to catch and debug errors. Check all code, including third-party libraries with unavailable sources.
Download as Part of the Toolkit
Intel Inspector is included as part of the Intel® oneAPI HPC Toolkit. Get the toolkit to analyze, optimize, and deliver applications that scale.
Build and optimize oneAPI multiarchitecture applications using the latest Intel-optimized oneAPI and AI tools, and test your workloads across Intel® CPUs and GPUs. No hardware installations, software downloads, or configuration necessary.
Threading errors are usually nondeterministic and difficult to reproduce. Intel Inspector helps detect and locate them, including data race conditions (heap and stack races), deadlocks, lock hierarchy violations, and then cross-thread stack access errors.
Memory errors can be difficult to find, such as memory leaks, corruption, mismatched allocation and deallocation API, inconsistent use of memory API, illegal memory access, and uninitialized memory read. 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.
Debugger breakpoints diagnose errors by breaking into the debugger just before the error occurs. When debugging outside of Intel Inspector, a breakpoint stops the running application at the right location. The problem with this is that the location might be run thousands of times before the error occurs. By combining debug with analysis, Intel Inspector determines when a problem occurs and breaks into the debugger at the right time and location.
Find Persistent Memory Errors
Intel® Optane™ DC persistent memory is a new memory technology with high-capacity persistent memory for the data center. It maintains data even when the power is shut off, but this data must first be properly flushed out of volatile cache memory. Persistence Inspector helps find possible persistent memory errors so that the system operates correctly when the power is restored.
There are two ways to install and set up the sample code:
Share the compressed file on your system or copy it from the installation directory to a writable directory.
The default installation directory is: • Windows: C:\Program Files (x86)\Intel\oneAPI\inspector On certain systems, instead of Program Files (x86), the directory name is Program Files. • Linux: • Root file path: /opt/intel/oneapi/inspector • Non-root file path: $HOME/intel/oneapi/inspector
Extract the sample from the compressed file. Its contents include a readme file (.txt format) that describes how to build the sample and fix issues.
Some sample applications have companion tutorials.
"Detecting and fixing hidden race conditions is the most serious barrier to effective multithreaded programming. The Intel Inspector tool tips the scales toward ease of development for OpenMP* programmers. In minutes, Intel Inspector uncovers thread programming errors that could take weeks to find otherwise―if ever. I do not use threads without Intel Inspector."
— John Michalakes, developer of the Weather Research and Forecast (WRF) model and other numerical weather prediction applications, University Corporation for Atmospheric Research
"We struggled for a week with a crash situation: the corruption was identified but the source was really hard to find. Then we ran Intel Inspector and immediately found the [out of bounds array] that occurred long before the actual crash. We could have saved a week!"
— Mikael Le Guerroué, senior codec architecture engineer, Envivio*
"Intel Inspector reported a couple of new Invalid memory access [errors] that caught my eyes just as we were under pressure to hit a production deadline. The test suite was sporadically crashing and the crash was impossible to catch quickly. I can't overestimate the nightmare this leak might have caused to CAD Exchanger's customers and their own end-users."