weird call stack

weird call stack

During evaulating intel parallel studio, it shows weird call tree so I cannot figure out the performance bottlenecks.
Here's one example. CriticalSection::Lock never calls IsExistant and Alloc.

Of course, the pdb file is up-to-date. I completely disabled compiler optimization settings and the problem continues.
Any helps are welcomed. Thanks in advance.

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

Is that possible that methods IsExistant and Alloc are located further in the call stack for CriticalSection::Lock? In some cases Amplifier can miss frames in a chain due to incomplete information.
Which compiler and version?

-Vladimir

Quoting - Vladimir Tsymbal (Intel)

Is that possible that methods IsExistant and Alloc are located further in the call stack for CriticalSection::Lock? In some cases Amplifier can miss frames in a chain due to incomplete information.
Which compiler and version?

No. because of "CriticalSection.Lock() { EnterCriticalSection(&m_cs); }"
Build environments:
Windows Server 2008 x64
Visual Studio 2008 SP1(no modifications or C runtime library nor rebuilds)
Compiler settings: x64, DLL C runtime library, no optimizations, no inline function, NO omit frame buffer, no .net framework usage, NO Intel C++ compiler
By the way, class CriticalSection is wrapped by this pragma:

#pragma managed(push, off)

#pragma managed(pop)

(details: http://msdn.microsoft.com/en-us/library/0adb9zxe(VS.80).aspx)

Leave a Comment

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