- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I changed some of my code to use a Windows Critical Section instead of a Windows Mutex to conserver processor time.
I ran the re-built application through the MSVC debugger and verified that I call EnterCriticalSection.
(I even have a screen snapshot showing the call.)
But in the VTune Call Graph, the display still lists WaitForSingleObject where I call EnterCriticalSection.
And EnterCriticalSection does not appear anywhere in the Call Graph Run Function Summary.
These windows calls are in Kernel.dll which is configured to export its functions.
Do you have any suggestions for me?
Thanks.
VTune version9.1, build 210
I ran the re-built application through the MSVC debugger and verified that I call EnterCriticalSection.
(I even have a screen snapshot showing the call.)
But in the VTune Call Graph, the display still lists WaitForSingleObject where I call EnterCriticalSection.
And EnterCriticalSection does not appear anywhere in the Call Graph Run Function Summary.
These windows calls are in Kernel.dll which is configured to export its functions.
Do you have any suggestions for me?
Thanks.
VTune version9.1, build 210
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Steven Katz
I changed some of my code to use a Windows Critical Section instead of a Windows Mutex to conserver processor time.
I ran the re-built application through the MSVC debugger and verified that I call EnterCriticalSection.
(I even have a screen snapshot showing the call.)
But in the VTune Call Graph, the display still lists WaitForSingleObject where I call EnterCriticalSection.
And EnterCriticalSection does not appear anywhere in the Call Graph Run Function Summary.
These windows calls are in Kernel.dll which is configured to export its functions.
Do you have any suggestions for me?
Thanks.
VTune version9.1, build 210
I ran the re-built application through the MSVC debugger and verified that I call EnterCriticalSection.
(I even have a screen snapshot showing the call.)
But in the VTune Call Graph, the display still lists WaitForSingleObject where I call EnterCriticalSection.
And EnterCriticalSection does not appear anywhere in the Call Graph Run Function Summary.
These windows calls are in Kernel.dll which is configured to export its functions.
Do you have any suggestions for me?
Thanks.
VTune version9.1, build 210
Hi Steven,
First at all, please check if you built your application with compiler option "/Zi", and linker options "/DEBUG", "/FIXED:NO" (generate relocatable section).
I have a simple example on handle which uses EnterCriticalSection & LeaveCriticalSection, after doing call graph data collection - it seems that RtlEnterCriticalSection and RtlLeaveCriticalSection are displayed in my call graph result.
You can modify call graph activity, and review "Configure Call Graph" dialog. Select your module then click "Functions..." button, "Function Selection" dialog should display all instrumented/un-instrumented functions in your module, EnterCriticalSection/LeaveCriticalSection are unchecked-Propbably these functions are imported stub functions, so willnot be instrumented. Instead RtlEnterCriticalSection/RtlLeaveCriticalSection in ntdll.dllwere instrumented (checked),if you select ntdll.dll module then click "Functions..." button on "Configure Call Graph" dialog.
If you have other concerns about your app, please go to https://premier.intel.com to submit issue with your app.
Regards, Peter
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