Intel® Inspector
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* operating systems.
- 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.
Develop, Test, and Run Your oneAPI Code in the Cloud
Get what you need to build and optimize your oneAPI projects for free. With an Intel® DevCloud account, you get 120 days of access to the latest Intel® hardware—CPUs, GPUs, FPGAs—and Intel oneAPI tools and frameworks. No software downloads. No configuration steps. No installations.
Download the Toolkit
Intel® Inspector is included as part of the Intel® oneAPI HPC Toolkit.
Features
Locate Nondeterministic Threading Errors
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.
Detect Hard-to-Find Memory 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.
Simplify the Diagnosis of Difficult Errors
Debugger breakpoints diagnose errors by breaking into the debugger just before the error occurs. When debugging outside of Intel Inspector, a breakpoint stops execution at the right location. The problem with this is that the location might be executed 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 Persistence 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.
It detects:
- Missing or redundant cache flushes
- Missing store fences
- Out-of-order persistent memory stores
- Incorrect undo logging for the Persistent Memory Development Kit (PMDK)
Documentation & Code Samples
Code Samples
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)\IntelSWTools\Inspector\
Linux /opt/intel/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.
Training
Specifications
Processors:
- Threading and memory debugger: Intel® processors and compatible processors
- Persistence Inspector: 2nd generation Intel® Xeon® Scalable processors
Languages:
- C
- C++
- Fortran
Host operating systems:
- Windows
- Linux
Compilers:
- Intel® C++ and Intel® Fortran Compilers
- Microsoft Visual C++* compiler
- GNU Compiler Collection (GCC)*
- Other compilers that follow the same standards
Development environments:
- Microsoft Visual Studio* IDE
- Eclipse* IDE
- Stand-alone, interface-based application
- Command line
Parallelization model support for the threading debugger:
- OpenMP*
- Threading Building Blocks (TBB)
- Parallel language extensions for the Intel C++ Compiler
- Microsoft PPL*
- Win32* and POSIX threads
- Intel® MPI Library
Supported debuggers:
- Intel® Debugger
- GNU Project Debugger (GDB)*
- Visual Studio debugger
For more information, see the release notes.
Related Products
Use this tool to optimize application and system performance and system configuration for HPC, cloud, IoT, media, storage, and more.
- CPU, GPU, and FPGA: Tune the entire application’s performance―not just the accelerated portion.
- Multilingual: Profile Data Parallel C++ (DPC++), C, C++, C#, Fortran, OpenCL™, Python*, Google Go* programming language, Java*, Assembly, or any combination.
- System or Application: Get coarse-grained system data for an extended period or detailed results mapped to source code.
- Power: Optimize performance while avoiding power- and thermal-related throttling.
Design and optimize code for efficient vectorization, threading, memory usage and offload to accelerators.
- Get your code ready for efficient GPU offload even before you have the hardware.
- Enable more vector parallelism and get guidance to improve its efficiency.
- Optimize vectorization and memory access using roofline analysis.
- Design new threading to exploit multicore processors.
- Prototype and analyze graph algorithms with the Flow Graph Analyzer.
What Customers Are Saying
“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 XE 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.”
— Roman Lygin, CEO, CAD Exchanger