Deliver reliable applications. Locate and debug threading, memory, and persistent memory errors early in the design cycle to avoid costly errors later.
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.
- Missing or redundant cache flushes
- Missing store fences
- Out-of-order persistent memory stores
- Incorrect undo logging for the Persistent Memory Development Kit (PMDK)
“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