2010-06-26 23 views
1

Je profile un service Windows en y attachant en mode 'sampling'.Le profileur VS2010 ne semble pas résoudre les symboles des images ngen'd

J'ouvre le fichier de résultats, la vue "fonctions" et je vois la fonction "la plus chaude" affichée comme [System.Runtime.Serialization.ni.dll] sans indication de la fonction .net concrète à l'intérieur de cet assemblage.

Il semble que tous les autres symboles des assemblys ngen'd (.ni.dll) soient affichés de la même manière. En outre, je ne vois pas aucun symboles d'assemblées gérées mais non ngen'd dans la liste, ce qui est assez étrange.

Cependant, tous les symboles indigènes résolvent OK, comme "AwareLock :: Contention (int)", etc. De plus

, l'onglet Sortie dit:

Loaded symbols for C:\Windows\assembly\NativeImages_v2.0.50727_64\System.Runtime.Seri#\12aaff696a0c54773664b4c5407deaa2\System.Runtime.Serialization.ni.dll. 

De plus, je ne lancé vsperfclrenv, mais tout résout OK dans le mode de profilage de concurrence, donc je pensais que je n'ai pas besoin vsperfclrenv depuis VS2010 fait tout pour moi.

J'ai essayé d'exécuter ngen update /debug /profile mais cela n'a rien changé.

Comment est-ce que je configure mon environnement de sorte que le profileur d'échantillonnage de VS2010 résout des symboles dans ces assemblées managées?

En attendant, je vais essayer ngen uninstall les ing.

Répondre

0

Lorsque vous ouvrez le rapport de performances dans VS2010, des messages apparaissent-ils dans la liste d'erreurs? Sans les bonnes variables d'environnement, un composant requis pour résoudre les symboles gérés ne sera pas injecté dans le processus et seules les images natives seront résolues.

Si vous profilez un service, vous devrez utiliser vsperfclrenv /globalsampleon, puis redémarrer pour vous assurer que les variables d'environnement sont correctement définies.