インテル® VTune™ Amplifier 2018 ヘルプ

Error Message: Symbol File Is Not Found

Intel® VTune™ Amplifier may display an error message about missing symbol file during user-mode sampling and tracing collection. For example:

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

Cause and Solution

VTune Amplifier 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 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 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 Amplifier throws this message indicates that some Hotspot samples were taken when that code was running. During the post-processing time the VTune Amplifier'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) 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).

関連情報