I have noticed that both PTU and VTune loose track of symbols in certain .dll's for code build with the .NET2005 MicrosoftVisual C++ compiler when profiled with call graph. This appears to be related to the base address of the dll where routines reside.
By way of example I have the routine a in dll A.dll calling routine b in dll B.dll, calling routine c in dll C.dll. If I start from c in the profile output, it will say the parent is unknown. Through VTune support we have discovered that this occurs if the dll is in a relatively low address range, VTune, at least, drops the dll thinking it is a Windows system dll. I am testing on a 64-bit system, and in that case this appears to have happen for dll's located before the 2GB mark in memory.
We can work around the problem by relinking the .dll with the /base option and specifying a location, but this is not a great solution.
Does it make sense that what is happening in VTune would also be happening in PTU? If so, is there possibly a fix for this?