Intel® Inspector
Deliver reliable applications. Locate and debug threading, memory, and persistent memory errors early in the design cycle to avoid costly errors later.
Transition Notice
Sanitizers in Intel® oneAPI DPC++/C++ Compiler and Intel® Fortran Compiler help effectively pinpoint memory, address, threading, and undefined behavior-related issues early in the development process. Sanitizers offer faster time to results, fewer false positives, and improved compiler integration compared to Intel® Inspector.
Intel® Inspector is no longer included in the Intel® HPC Toolkit. It continues to be downloadable as a stand-alone package and it will be discontinued in 2025 or later. Customers who purchased Priority Support from Intel will continue to receive support. For more information, see the Intel Inspector transition notice.
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 the Stand-Alone Version
A stand-alone download of Intel Inspector is available. You can download binaries from Intel or choose your preferred repository.
Develop in the Intel® Tiber™ Developer Cloud
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.
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 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.
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.
- 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.
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
Some sample applications have companion tutorials.
Training
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 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
Specifications
Processors:
- Threading and memory debugger: IA-32 or Intel® 64 architecture processors that support Intel® Streaming SIMD Extensions 2 instructions
- 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)*
For more information, see the release notes.
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
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 SYCL, C, C++, C#, Fortran, OpenCL™ code, Python*, Google Go* programming language, Java*, .NET*, Assembly, or any combination of languages.
- 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.
Stay In the Know on All Things CODE
Sign up to receive the latest tech articles, tutorials, dev tools, training opportunities, product updates, and more, hand-curated to help you optimize your code, no matter where you are in your developer journey. Take a chance and subscribe. You can change your mind at any time.