User Guide

Intel® VTune™ Profiler User Guide

ID 766319
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Debug Information for Linux* Application Binaries

Intel® VTune™ Profiler requires debug information for the binary files it analyzes to obtain accurate performance data and enable source analysis.

Debug Information for Performance Analysis

If your system and application modules have debug information, the VTune Profiler is able to provide full-scale statistics on call stacks, source data, function names, and so on. For example, you may use the Call Stack Mode on the filter toolbar to select the User/system functions option and view data on both user and system functions.

If the VTune Profiler does not find debug information for the binaries, it statically identifies function boundaries and assigns hotspot addresses to generated pseudo names func@address for such functions, for example:

If a module is not found or the name of a function cannot be resolved, the VTune Profiler displays module identifiers within square brackets, for example: [module].

If the debug information is absent, the VTune Profiler may not unwind the call stack and display it correctly in the Call Stack pane. Additionally in some cases, it can take significantly more time to finalize the results for modules that do not have debug information.

Generate Debug Info in the DWARF Format

Compile your code using the -g option that usually produces debugging information in the DWARF format.

If DWARF is not a default debugging information format for the compiler, or if you are using MinGW/Cygwin GCC*, use the -gdwarf-version option, for example: -gdwarf-2 or -gdwarf-3.

Generate Debug Info File for the ELF Format

You can create separate debug info files and link them with an executable/library via debug link or build ID. Please refer to the GNU* Binutils documentation for more details.

VTune Profiler recognizes both types of linking:

  • If an executable file in the ELF format contains a build ID and has a separate debug info file with the name generated by the build ID, the VTune Profiler is able to find and validate the separate symbol file if proper search directories are set. While searching the symbol file, the VTune Profiler checks the .build-id subdirectory of each search directory for a file named hh/hhhhhhhhhhh.debug where hh is the first 2 hexadecimal characters of build ID and hhhhhhhhhhh is the remaining part.

  • If an executable file contains a debug link (specified in the .gnu_debuglink section) with a name of separate debug info file, VTune Profiler tries to find it.

Generate Debug Information for SYCL* Applications

To enable performance profiling and generate debug information for SYCL applications running on a GPU, make sure to compile your code with -gline-tables-only and -fdebug-info-for-profiling options.

Generate Debug Information for OpenMP* Offload Applications

When you build OpenMP* Offload applications with the Intel® oneAPI DPC++/C++ Compiler or Intel Fortran compiler, compile your code with the --info-for-profiling switch.

NOTE:
When using the Intel Fortran compiler to compile OpenMP Offload code, make sure to use the -debug offload option.