I am trying to profile an SGX application on Ubuntu 18.04 LTS with Vtune profiler (Intel(R) VTune(TM) Profiler 2020 (build 605129)). I am trying to run hotspot analysis (based on Hardware Event-Based Sampling) for two different configurations of my application. 1) runs for under a minute 2) runs over 5 minutes. Between these configurations, the source code changes are minimal. During (1), everything looks good, vtune is able to capture all the information (including symbols of `enclave.signed.so`). When I run (2), vtune runs to completion, but refuses to resolve symbols present in `enclave.signed.so`. It is listed as [Outside any module] in the Bottom-up tree. When I dug in, I figured (by grepping thro the result directory for `enclave.signed.so`) that when (2) is run, vtune fails to produce the modmap file under `data.0` sub-directory of the result directory. The modmap seems to be a binary file with header 'ITT Collector API' and contains hostname, bunch of records and the absolute path of `enclave.signed.so`. Moreover, when finalizing the result, vtune did not complain on "Failed to create modmap file".
To understand better, I ran the (2) configuration and stopped collecting after a minute or so. Under this setting, modmap is generated. My observation is that: When run for a longer time, modmap file does not seem to be generated.
I dug through the known issues and could not find any issue related to my problem. Also tried profiling with sgx-hotspot analysis. This does not solve my modmap missing problem.
Any ideas would be much appreciated.
please run your application with 5 minutes workload under debugger to ensure there is no exceptions or segmentation faults at the end of your application. Also such behavior is possible in case of your application is killed from outside.
If this doesn't help you can insert __itt_detach() at the end of your code as a workaround and please send us your application to reproduce the issue and a result from failed launch.