Intel® Inspector User Guide for Linux* OS

ID 767796
Date 3/22/2024
Public
Document Table of Contents

API Support

NOTE:

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. As a result, Intel Inspector will no longer be included in the Intel® HPC Toolkit. It continues to be downloadable as a standalone package and it will be discontinued in 2025 or later. Customers who have purchased Intel® Priority Support will continue to receive support. Please see Intel Inspector deprecation article for more information.

Intel® Inspector provides API support that allows you to:

  • Gather semantic information related to your synchronization constructs.

  • Identify the semantics of your malloc-like heap management functions.

  • Specify which parts of your application should be analyzed.

Applications or modules linked to the static API library do not have a runtime dependency on a dynamic library, so they can be executed independently of Intel Inspector and other Intel studio tools.

Using C/C++ and Fortran APIs

The default Intel Inspector installation path, <install-dir>, is /opt/intel/oneapi/inspector/latest.

  1. Specify this file in your code:

    • For C/C++, include <install-dir>/include/ittnotify.h

    • For Fortran, use <install-dir>/include/<ia32|intel64>/ittnotify.mod

  2. Insert __itt_* notifications in appropriate places in your code.
  3. Link to this file:

    • For C/C++, link to <install-dir>/<lib32|lib64>/libittnotify.a

    • For Fortran, link to <install_dir>/<lib32|lib64>/libittnotify.a

Conditional Compilation for Release Versions

For best performance in the release version of your code, use conditional compilation to turn off all annotations. To eliminate all __itt_* functions from your code during compilation of the release version, define the macro INTEL_NO_ITTNOTIFY_API before including ittnotify.h.

You can also define this macro to remove the static library during the linking stage.