Intel® VTune™ Profiler

User Guide

ID 766319
Date 10/31/2024
Public
Document Table of Contents

Search Order

When locating binary/symbol/source files, the Intel® VTune™ Profiler searches the following directories, in the following order:

  1. Directory <result dir>/all (recursively).

  2. Additional search directories that you defined for this project in the VTune ProfilerBinary/Symbol Search dialog box.

  3. For local collection, an absolute path.

    For remote collection, the VTune Profiler searches its cache directory for modules copied from the remote system or tries to get the module from the remote system using the absolute path.

    For results copied from a different machine, make sure to copy all the necessary source, symbol, and binary files required for result finalization.

    • For binaries, the path is captured in the result data files.

    • For symbol files, the path is referenced in the binary file.

    • For source files, the path is referenced in the symbol file.

    On Linux*, to locate the vmlinux file, the VTune Profiler searches the following directories:

    • /usr/lib/debug/lib/modules/`uname -r`/vmlinux

    • /boot/vmlinuz-`uname -r`

  4. Search around the binary file.

    1. Search the directory of the corresponding binary file.

    2. On Windows*, search the directory of the corresponding binary file and alter the name of the symbol file holding the initial extension (for example, app.dll + app_x86.pdb -> app.pdb).

    3. On Linux, search the .debug subdirectory of the corresponding binary file directory.

  5. On Windows, Microsoft Visual Studio* search directories. All directories are considered as non-recursive. Directories may be specific to the selected build configuration and platform in time of collection.

  6. System directories.

    On Windows:

    • Binary files: %SYSTEMROOT%\system32\drivers (non-recursively)

    • Symbol files:

      • All directories specified in the _NT_SYMBOL_PATH environment variable (non-recursively). Symbol server paths are possible here as well as in step 2.

      • srv*%SYSTEMROOT%\symbols (treated as a symbol server path)

      • %SYSTEMROOT%\symbols\dll (non-recursively)

    On Linux:

    • Binary files: If the file to search is a bare name only (no full path, no extension), it is appended by the .ko extension before searching in the following directories:

      1. /lib/modules (non-recursively)

      2. /lib/modules/`uname -r`/kernel (recursively)

    • Symbol files:

      • /usr/lib/debug (non-recursively)

      • /usr/lib/debug with appended path to the corresponding binary file (for example, /usr/lib/debug/usr/bin/ls.debug)

    • Source files:

      • /usr/src (non-recursively)

      • /usr/src/linux-headers-`uname -r` (non-recursively)

If the VTune Profiler cannot find a file that is necessary for a certain operation, such as viewing source, it brings up a window enabling you to enter the location of the missing file.

NOTE:

VTune Profiler automatically applies recursive search to the <result dir>/all directory and some system directories (Linux only). Additional directories you specify in the project configuration are searched non-recursively.

  1. For non-recursive directories, the VTune Profiler searches paths by merging the parts of the file path with the specified directory iteratively. For example, for the /aaa/bbb/ccc/filename.ext file on Linux:

    /specified/search/directory/aaa/bbb/ccc/filename.ext

    /specified/search/directory/bbb/ccc/filename.ext

    /specified/search/directory/ccc/filename.ext

    /specified/search/directory/filename.ext

  2. For recursive directories, the VTune Profiler searches the same paths as for the non-recursive directory and, in addition, paths in all sub-directories up to the deepest available level. For example:

    /specified/search/directory/subdir1/filename.ext

    /specified/search/directory/subdir1/sub…subdir1/filename.ext

    ...

    /specified/search/directory/subdir1/sub…subdirN/filename.ext

    ...

    /specified/search/directory/subdirN/filename.ext

  3. For symbol server paths on Windows, symsrv.dll is used from product distributive. Custom symsrv.dll:s are not supported.