Intel® VTune™ Profiler

User Guide

ID 766319
Date 3/22/2024

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

Document Table of Contents

Error Message: Symbol File Is Not Found

This is a Linux* only message. Intel® VTune™ Profiler may display the error message about missing symbol file during user-mode sampling and tracing collection. For example:

/opt/intel/vtune_profiler/bin64/vtune -collect hotspots -r test1 - my_test_exe
vtune: Warning: Symbol file is not found.
vtune: The call stack passing through the module [vdso] may be incorrect.
vtune: Using result path '/home/user/test1'
vtune: Executing actions 75 % Generating a report 
Elapsed Time: 6.354 CPU Time: 6.210
vtune: Executing actions 100 % done

Cause and Solution

VTune Profiler notifies you that there is a module [vdso] that cannot be resolved for symbols (the square brackets are used for that purpose) and therefore the call stack may be incorrect. In some cases it might be a [vsyscall] module.

You may check that the vdso module is in a dynamic dependency list:

ldd -d my_test_exe

=> (0x00002aaaaaac6000)
=> /opt/intel/tbb/tbb40_233oss/lib/ (0x00002aaaaabc7000)
=> /usr/intel/pkgs/gcc/4.5.2/lib64/ (0x00002aaaaadf5000)
=> /lib64/ (0x00002aaaab117000)
=> /usr/intel/pkgs/gcc/4.5.2/lib64/ (0x00002aaaab26c000)
=> /lib64/ (0x00002aaaab481000)
=> /lib64/ (0x00002aaaab6c2000)
=> /lib64/ (0x00002aaaab7cb000)
=> /lib64/ (0x00002aaaab8cf000) /lib64/ (0x00002aaaaaaab000)

You can safely ignore this message if you see a reference to the [vdso]. It means that the kernel dynamically made some temporary memory allocations by loading some executable code into memory space. The fact that VTune Profiler throws this message indicates that some Hotspot samples were taken when that code was running. During the post-processing time the VTune Profiler's collector could not find the vdso anymore. The module ( or on earlier Linux kernels) is a Virtual Dynamic Shared Object (VDSO) that resides in the address space of the program. This is a virtual library that contains a complex logic providing user applications with a fast access to system functions, depending on a CPU microarchitecture, either via an interrupt mechanism or via the fast system calls mechanism (for modern CPUs).