Pregunta

When I profile my .net 4.5 application, VS profiler only shows msvcr120_clr0400.dll. It also fails to load its symbols. Here is the output of the profiler

Output of the profiler

Failed to load symbols for C:\Windows\System32\msvcr120_clr0400.dll

I found no information regarding this dll. I followed this post: I unchecked Just My Code option and tried to generate pdb files of the dll with ngen, however ngen complains that given file is not a valid image.

The specified native image is not valid. Unspecified error (Exception from HRESULT: 0x80004005 (E_FAIL))

I have no reference to this dll in my References. I have three 3rd party libraries: C5, MathNet, MIConvexHull. Rest is ordinary C# code.

When I create new project and do a performance analysis there, it works fine. I further added 3rd party libraries to this new project, still profiling worked fine.

¿Fue útil?

Solución

Are you using Windows 8.1 by any chance? If you are using sampling on Windows 8.1, you need to upgrade to VS2012 Update 4 (or a newer version of VS) in order to be able to resolve symbols. This is due to changes in Windows that occurred in the 8.1 release which made it so that the profiler from older versions of VS can't get the unique identifier that allows it to match a symbol file (PDB) with a binary.

More information at my blog post here.

This issue is unrelated to NGEN (which is what the post you linked to is about).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top