Unidentified / skipped frame

Use this forum for questions on how to use .NET Memory Profiler and how to analyse memory usage.
Post Reply
sthiers
Posts: 8
Joined: Thu Oct 02, 2008 7:44 am

Unidentified / skipped frame

Post by sthiers » Tue Dec 01, 2009 12:16 pm

Hello,

Sorry if the question has already been raised, but I did not find it.

In MemProfile 3.5, Tab "Resource details" for VirtualMemory I have a stack like this one:

ntdll!NtAllocateVirtualMemory( HANDLE, PVOID*, ULONG, PULONG, ULONG, ULONG )
[Skipped frame(s)]
[Unidentified frame(s)]
[Managed to native transition]
Lcl.Dhpl.Data!<Module>.openFile( basic_string<char,stlp_std::char_traits<char>,stlp_std::allocator<char> >* ) // this is some managed C++ code
[...] // I've cut the rest of managed stack

I'm interested by the Unidentified / skipped frame. Is there something to do in order to get more precision on these frames?

thanks
Stéphane

PS: By the way, I find the 3.5 version heap better than the 3.0 which was already a good one: Good job !

Andreas Suurkuusk
Posts: 1005
Joined: Wed Mar 02, 2005 7:53 pm

Post by Andreas Suurkuusk » Tue Dec 01, 2009 10:09 pm

In order for .NET Memory Profiler to identify native frames, it needs access to the symbol files. If no symbols exist, an [Unidentified frame(s)] entry will be added, and the next frame will be analyzed. When profiling a 32-bit application, there is also a substantial risk that the next frame cannot be identified due to stack frame optimizations. To avoid unidentified frames, make sure that you have defined symbol file locations in the "Tools->Settings" window. If the symbol files are not available (e.g. for third party libraries), then you will unfortunately still get unidentified frames.

[Skipped frame(s)] are added when a stack frame has been skipped by the stack reducer or when excluded by a "Call Stacks" setting. I recommend that you make sure that all managed methods and all native methods are included under the "Call Stacks" settings. To avoid excessive memory usage and slow performance, it is probably a good idea to keep the call stacks reducer enabled, but you can try to increase the number of "Max skippable stack frames" (e.g. from 2,000,000 to 4,000,000).
Best regards,

Andreas Suurkuusk
SciTech Software AB

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests