Can anybody let me know?
Function names resolution is not dependent on whether you have evaluation version or commercial. Make sure all the modules in the project are compiled with debug info (/Zi and /DEBUG options). Do you profile C/C++ code, by the way?
Thank you for the reply. I profile C code. All the modules are compiled with debug ( /Zi and /DEBUG). I pdb file is generated with symbols but i see only few functions when i open "HotSpots" window.
Even in the same file only few functions are displayed. Hence i thought as it is a evaluation version the profiling will be done for selected functions and files ( few companies do this in evaluation packages). I tried even exporting also i find the same few functions.
If you have any suggestion please let me know.
First of all, try to decrease the level of compiler optimization (ultimately down to Od) and see if the function names appear in the Hotspot results window.
Please, provide some more information. Which Compiler you were using and which version and build number of VTune is installed on your system.
Thanks again. I tried disabling optimization and i found that few more files are seen in the Hotspot result window but yet not the whole.
Information you requested.
Compiler : Microsoft Visual C++ 7.1
Vtune Version : VTune 91_002_win.exe ( I used this version)
I enabled all the settings as given by the manual ( turning DEBUG and /Zi options) and started the sampling.
I built the exe.
I updated all the source code directories in the Tools->Options->VTune..->Directories
I did Event Based Sampling with default settings.
My application has only one exe and no dlls etc.
If you need further information please let me know.
Hmm.. I need to understand what exactly you mean by not all functions are displayed in this case. Would you please share the screen shot of the Hotspot results?
What I'm trying to figure out is whether you have some functions unresolved and therefore displayed as Unknown addresses, OR you just expect some functions to be displayed but does not observe them. If the latter, there might be the situation when the expected functions just do not consume enough time to be statistically visible in the results.
Thanks for your reply. That seems to be the reason for my observation. I tried executing a bigger job and found few functions what i was expecting.
I expected few more functions to be displayed but i dint see them. Also i do see some unresolved address as attached in the file.
I repeated the same with time based sampling and i do see the same results.
Is there a way of getting all the functions profiled, please let me know?
It seems that it partially confirms my supposition of statistically insufficient time spent in the functions. The best way to overcome that is profiling the application when doing bigger job (at least several seconds of even minutes for the whole application). Even with that you have to understand that some functions in the application execute in really small period of time by their nature and could not be sampled effectively because of statistical approach of the Sampling method. You might want to play with SAV (Sampling After Value) setting the value smaller then the default one in order to increase sampling frequency, but you have to careful with that and it's better to start with thorough reading the Help pages regarding Sampling and SAV.
BTW, you screen shot is not attached properly. In order to do that you'd need to push "Add Files" button in the reply message, create a folder, enter the folder, browse the picture file, push "upload" button, and then push the "Add as Attachment" button. It's crazy, I know, but it is how it works.
If you need all the functions profiled, you have to run Call Graph, which exploits binary instrumentation approach and tracks all the functions being called during application execution. However, you will experience the significant overhead while running the application within Call Graph activity. This is the payment for the instrumentation. The advantage of Call Graph technology is that you will get the "dimensional" profile of your application (which function was called by which), as opposite to Sampling which provides "flat" profile.
I'd also recommend you looking at the new profiling set Intel Parallel Studio. Parallel Amplifier as a part of it provides the sampling results but with the call stack, making the profile more "dimensional". I'm sure you'll like the this tools set since you will find many other useful instruments there like memory checking or threads correctness checking capabilities.
Thanks for your reply. I will also try Call Graph Profiling.
I just peed into Intel Parallel Studio and as you have suggested it might be very useful. I will have to download and evaluate. I need to find a good tool for profiling if Parallel Studio will be more helpful then i would prefer to try that.