Community
cancel
Showing results for 
Search instead for 
Did you mean: 
inteleverywhere
Beginner
183 Views

Unable to see function names (HOT-SPOTS) in performance results

Hello Everyone,
When an executable is runin VTune to obtain the performance summary the hot-spots section lists the function names.

So basically the problem is that:
When the executable makes a call to an .lib (static) file the function names are listed. When the executable makes a call to an .dll file (dynamic) the function names are sometimes listed and on many other occassions not listed (In place of functionnames we have addresses).

It is understanable if thisis always true. However the behaviour is unpredictable: sometimes with the DLL the functionnames get displayed, sometimes not. On rare occassions this behaviour has also happened when a LIB filewas used. Is there a wayto make surethefunction names are always listed.

Cheers!
D

0 Kudos
9 Replies
Vladimir_T_Intel
Moderator
183 Views

Make sure the debug information is ON when compiled the DLL.Hereis the article explaining that.
Another reason for some function names not reported in the VTune results might be the function in-lining by the compiler. Check if the functions are not in-lined.
inteleverywhere
Beginner
183 Views

Basically the entire set of functions are not getting displayed. One or two functions getting inlined is possible not the entire code. Secondly the VTune results in some cases display the function names in the hot spots list even in Release mode build with DLLand in other extreme cases do not display the function names even for Debug mode build for aLIB (Release + exe + DLL <-----> Debug + exe + LIB).The question is about this unpredictable behaviour and not about function inlining.

Thanks anRegards
D

Vladimir_T_Intel
Moderator
183 Views

Well, another reason for a function to not appear in the hotspot list might be that it didnt collect enough samples because of the statistical method and all the samples were in the callee function. Why is the difference in dll-lib, it needs closer investigation of the function.

inteleverywhere
Beginner
183 Views

Hello Vladimir,
I have mentioned my observation earlier. The behaviour is unpredictable. Sometimes the hotspots show the function names while on other occassions the function names are replaced by address offests as is possible in the case of linking a DLL file.

There are substantially large functions that are present in the tests that I have done and they are called inside the executable file so the question of the function names not appearing for those reasons is remote in my opinion.

Another point is that either all the function names appear or all the function names are replaced by address offsets (for example:0x01100, 0x120103.... orMod1, Mod2 ....)

Thanks and Regards
D
Vladimir_T_Intel
Moderator
183 Views

What is the compiler? Version?
inteleverywhere
Beginner
183 Views

ICC 11.0
VS2008
VTune 9.1

Thanks
D
Vladimir_T_Intel
Moderator
183 Views

The only reason for such behavior I could guess is incomplete debug info generated by the compiler.

Could you try the 11.1 Update 6 compiler version?

Note: PDB files should not be getting moved after the compilation.

Also, please make sure you are using the VTune 9.1 Update 8.

inteleverywhere
Beginner
183 Views

Hello Vladimir,
I have been using both ICC 11.0 and ICC 11.1. VTune9.1+Build 187 and VS2008+SP1. As mentioned before one rareoccassions and unexpectedly the correct results are obtained i.e. the Hot-Spots view provides the names of the functions insteadof their adsress.This has happened for all the versions just mentioned.I was curious to know if anybody else had similar problems and whether they brought them to the notice of the concerned people.

Could also be that there are some settings that have to be changed in the VTune Perf Analyser, or something to do with the OS!?

Thanks
D
Vladimir_T_Intel
Moderator
183 Views

I'd be interested to know if anybody else had the similar problems as well.

VTune doesn't have any specific settings, except probably the Microsoft Symbol Server, which can be used to resolve names of system functions. Although, it doesn't help much with user code, until it's getting called from the system (any registered callbacks or .Net specific asynchronous mechanisms).

Reply