VTune™ Amplifier XE collection warning: Symbol file is not found

Submit New Article

October 16, 2011 1:00 PM PDT


The VTune™ Amplifier XE may display a warning about “Symbol file not found” during Hotspots, Concurrency, or Locks and Waits analysis. For example:

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

The tool notifies that there is a module [vdso] that cannot be resolved for symbols (the 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
        linux-vdso.so.1 =>  (0x00002aaaaaac6000)
        libtbb.so.2 => /opt/intel/tbb/tbb40_233oss/lib/libtbb.so.2 (0x00002aaaaabc7000)
        libstdc++.so.6 => /usr/intel/pkgs/gcc/4.5.2/lib64/libstdc++.so.6 (0x00002aaaaadf5000)
        libm.so.6 => /lib64/libm.so.6 (0x00002aaaab117000)
        libgcc_s.so.1 => /usr/intel/pkgs/gcc/4.5.2/lib64/libgcc_s.so.1 (0x00002aaaab26c000)
        libc.so.6 => /lib64/libc.so.6 (0x00002aaaab481000)
        librt.so.1 => /lib64/librt.so.1 (0x00002aaaab6c2000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00002aaaab7cb000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aaaab8cf000)
        /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)
 

You can safely ignore this warning 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 Amplifier XE throws this warning indicates that some Hotspot samples were taken when that code was running. During post-processing time VTune Amplifier XE’s collector could not find the vdso anymore. The module linux-vdso.so.1 (linux-vsyscall.so.1 or linux-gate.so.1 on earlier Linux kernels) is a Virtual Dynamic Shared Object (VDSO), which resides in the address space of the program. This is a virtual library which contains a complex logic that provides user applications with fast access to system functions depending on CPU microarchitecture – either through interrupt mechanism or though the fast system calls smechanism (most applicable for modern CPUs) [1].



Do you need more help?


This article applies to: Tools,   Intel® VTune™ Amplifier XE Knowledge Base