Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

Utilisation des sources du framework .net - Configuration de Visual Studio et quelques astuces

Depuis janvier 2008, Microsoft fournis les sources du framework, cela peut être utile pour faire du pas à pas directement depuis le framework. Cette fonctionnalité est directement intégré dans Visual Studio, c'est donc très accès debugging. Pour la consultation de source, je préfère encore reflector, qui me permet en un click d'aller directement dans la méthode etc ...

Voici, en image, comment utiliser cette fonctionnalité. J'utilise Visual Studio 2008 SP1.

Lorsque vous debugger, par défaut vous avez ca :

image

La première étape pour voir les sources du framework et d'afficher le code externe dans le "Call Stack"

image 

Puis vous devez charger les symboles (pdb) depuis les serveurs de Microsoft. Un pdb est un fichier contenant des métadonnées sur une assembly, cela permet à Visual Studio d'afficher la bonne ligne de code suivant où se trouve votre programme : en savoir plus sur les pdb (MSDN)

image

La première fois, Visual Studio vous indique qu'il doit désactiver l'option "Just My Code".

image

Puis, il va télécharger les symboles, cette opération peut prendre plusieurs minutes en fonction du fichier à télécharger : quelques Mo 

image

Le call stack passe alors de gris à noir, en double cliquant sur une entrée du call stack, Visual Studio va automatiquement télécharger la source du framework si celle-ci n'a pas déjà été consulté.

image

Vous pouvez également charger tous les symboles d'un coup. Pour cela allez dans le menu Tools > Options, puis Debugging > Symbols,  enfin cliquez sur le bouton "Load symbols from Microsoft symbol servers".

image

Cela va charger tous les symboles du framework .net, cela peut prendre plusieurs minutes.

Lorsque vous avez chargé un symbole, vous n'avez plus besoin de le recharger, VS le fera automatiquement pour vous.

Un peu plus loin dans cette fonctionnalité !

Point d'arrêt

Vous voulez pouvoir mettre un point d'arrêt dans le code du framework ? Si vous le faites comme d'habitude, par défaut cela ne fonctionnera pas, en effet Visual Studio demande que le fichier source soit exactement le même que celui ayant servi pour construire le pdb. Pour enlever cette limitation, faites un clic droit sur votre point d'arrêt puis "Location ..."

image

Enfin, cocher la case "Allow the source code to be different from the original version"

image

Votre point d'arrêt fonctionnera alors comme d'habitude. Vous pouvez également cocher cette case une bonne fois pour toute dans le menu Debug > Tools > Debugging.

Variable non accessible / optimisé

Dans certains cas, certaines variables ne sont pas accessible, vous avez le message "Cannot obtain value of local or argument 'currentTarget' as it is not available at this instruction pointer, possibly because it has been optimized away." Cela vient du fait que la CLR a été optimisé via NGEN. Il est possible d'indiquer à la CLR de ne pas charger les images pre-JIT (via NGEN). Cet astuce est décrit dans la FAQ du site site Microsoft Reference Source Code Center : FAQ

Si vous voulez accéder à toutes les sources du framework vous pouvez télécharger un zip ici : Available Source Code Components 


D'autres astuces sur la consultation des sources du framework ? Je n'ai pas réussi à trouver comment faire un "step into" d'une méthode du framework si la source n'est pas déjà téléchargé, par exemple rentrer dans Math.Abs, une idée ?


Posted: mardi 28 octobre 2008 09:33 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Nouveau blog en anglais / New blog in english ! par Le blog de Patrick [MVP SharePoint] le il y a 6 heures et 52 minutes

- [ #Yammer ] From Mailbox to Yammer and back / De votre messagerie vers Yammer et retour ! par Le blog de Patrick [MVP SharePoint] le 09-15-2014, 11:31

- [ #Office 365 ] New service settings panel / Nouveau panneau de paramétrage des services par Le blog de Patrick [MVP SharePoint] le 09-11-2014, 08:50

- Problème de déploiement pour une démo SharePoint/TFS? par Blog de Jérémy Jeanson le 09-10-2014, 21:52

- [ #Office365 ] Delve first impressions / Premières impressions sur Delve par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 16:57

- [ #Office365 ] How to change Administration console language ? / Comment changer la langue de la console d’administration ? par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 08:25

- [ #SharePoint 2013 ] Suppression de bases de données en état “Pas de Réponse” par Le blog de Patrick [MVP SharePoint] le 09-04-2014, 14:10

- Changer l’adresse d’une ferme Office Web Apps associée à SharePoint par Blog de Jérémy Jeanson le 09-01-2014, 22:21

- Une ferme #SharePoint 2013 dans @Azure en quelques clics (1ère partie) ! par Le blog de Patrick [MVP SharePoint] le 08-28-2014, 18:52

- SharePoint 2013: Préparation de la migration - Création des site Templates dans 2010 et 2013 par Blog Technique de Romelard Fabrice le 08-20-2014, 16:31