Source/assembly code is not available

Source/assembly code is not available


I am very new to VTune. 

I am trying to find hotspots of my application as guided by "getting started" tutorial. When I navigate to "Bottom-up" tab, I find only <my application>.exe is listed under Thread/Function/Call Stack and no list of subroutines/procedures taking the most CPU Time. When I double click on <my application>.exe, it says "Source/assembly code is not available". Am I missing something to configure my application for VTune? Appreciate your suggestions.

Thank you in advance.


5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

The quick answer is that you have to build application with debug info. Add compiler options "/Zi", "/DEBUG" for windows, and add compiler option "-g" for Linux. Function name was .exe - it meant missing debug/symbol info your exe/pdb. Ensure that your symbol file / source files are locate the directory (or sub-directory) of executable, otherwise specify directories of your symbol file/source files in VTune's Project Properties on GUI.

In command line, use: (for example)
amplxe-cl -collect hotspots --search-dir all:rp=dir1,dir2,dir3 -result /tmp/myhotspots -- application

Thank you Peter Wang for your quick and useful suggestions. Actually I had previously added the compiler option as Fortran > General > Debug Information Format as Full(/debug:full), but was missing to change the Generate Debug Info to Yes(/DEBUG) at Linker > Debugging. Now, VTune is running fine for my application.

I have one more question. This is for the Fortran VTune sample example (nqueens_fortran). I am getting the longest Wait Time by Utilization (red: poor) for "Manual Reset Event 0xe8dbcd9e". What does this mean? Is there a way to resolve this issue?

Thank you.

Thank you, Krishna. I am glad that the issue has been solved.

I think that you works on Locksandwait analysis. longest WaitTime (with red:poor) for event - it meant before that event has been reset, there is no work running in threads (cores), your program wait this event reset and nothing to do. Usually you can adjust algorithm to assign some works in other threads - it doesn't depend on this event. Or you can optimize your program in other ways, for example - scope of this event, etc

Thank you very much for your explanation. I think this is the part where I need some time to think about optimization.

Leave a Comment

Please sign in to add a comment. Not a member? Join today