- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I used vtune to create a call graph for my application. As you can see in the picture, some of the functions called in the main (source code in the right window) are not shown in the call graph (left window) and also some of things that are listed in the call graph are not in the main (right window).
Thanks for any sugestion.
Thanks for any sugestion.
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
7 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I can't seethis picture, please verify.
If some of functions called by main(), but not shown in call graph report window - probably
1) Your called functions are "inline", please use disabling optimization to rebuild and retry.
2) Your called functionwere not executed.
Regards, Peter
I can't seethis picture, please verify.
If some of functions called by main(), but not shown in call graph report window - probably
1) Your called functions are "inline", please use disabling optimization to rebuild and retry.
2) Your called functionwere not executed.
Regards, Peter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Here is the image location: http://www.imagechicken.com/uploads/1275389830077720300.png
Please note that in the main function I have "cipher()" but it is not listed in the call graph window.
I also have to say that the code is an AES example which is located at http://www.hoozi.com/post/829n1/advanced-encryption-standard-aes-implementation-in-c-c-with-comments-part-1-encryption
As you can see, the function is not inlined and I checked with a simple printf() to check that the function is actually running.
Regards,
Here is the image location: http://www.imagechicken.com/uploads/1275389830077720300.png
Please note that in the main function I have "cipher()" but it is not listed in the call graph window.
I also have to say that the code is an AES example which is located at http://www.hoozi.com/post/829n1/advanced-encryption-standard-aes-implementation-in-c-c-with-comments-part-1-encryption
As you can see, the function is not inlined and I checked with a simple printf() to check that the function is actually running.
Regards,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You were right. My first run was in release mode and as you said I rebuild run again in debug mode. It is now working.
Two more question:
1- Debug mode is not of my interest in performance analysis. How can I disable the inlining in release mode?
2- When I run the counter monitor activity, I get this:
"No data to display for selected couters. Either no counters have been selected or there is no data available for the selected counters. Try selecting additional counters or run the activity again to collect new data.
I tried running the counter monitor again as it is stated but get the same message.
Considering this "Either no counters have been selected or there is no data available for the selected counters.", where should I select counters?
Thanks,
Two more question:
1- Debug mode is not of my interest in performance analysis. How can I disable the inlining in release mode?
2- When I run the counter monitor activity, I get this:
"No data to display for selected couters. Either no counters have been selected or there is no data available for the selected counters. Try selecting additional counters or run the activity again to collect new data.
I tried running the counter monitor again as it is stated but get the same message.
Considering this "Either no counters have been selected or there is no data available for the selected counters.", where should I select counters?
Thanks,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
1- I am using VS2008 but the article is for intel compiler. Anyway, I set three options as you mentions: "/Zi", "/DEBUG" and "/Fixed:no". But when I check the inlining optimization option I only have these options:
default
Only __inline (/Ob1)
Any suitable (/Ob2)
I tested all three but in the call graph still there is no "cipher()".
2- The article is for windows 2000. Many registry keys that are listed are not available in my XP. But I found this artivle useful http://software.intel.com/en-us/articles/intel-vtune-performance-analyzer-for-windows-counter-monitor-issues/
default
Only __inline (/Ob1)
Any suitable (/Ob2)
I tested all three but in the call graph still there is no "cipher()".
2- The article is for windows 2000. Many registry keys that are listed are not available in my XP. But I found this artivle useful http://software.intel.com/en-us/articles/intel-vtune-performance-analyzer-for-windows-counter-monitor-issues/
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have no idea for Microsoft* C/C++ compiler to disable inline with using optimization options.
For using counter monitor - try Perfmon.exe first.
For using counter monitor - try Perfmon.exe first.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your advice. I found this article that explains the optimization switches in VS. Hope this will be usefull for others too
Developing optimized code with microsoft visual c++6.0
http://msdn.microsoft.com/en-us/library/aa260969%28VS.60%29.aspx
Developing optimized code with microsoft visual c++6.0
http://msdn.microsoft.com/en-us/library/aa260969%28VS.60%29.aspx
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page