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

- Etes-vous yOS compatible ? (2/3) : la nouvelle plateforme Yammer–Office 365–SharePoint par Le blog de Patrick [MVP SharePoint] le 04-22-2014, 09:27

- [ #Yammer ] [ #Office365 ] Quelques précisions sur l’activation de Yammer Entreprise par Le blog de Patrick [MVP SharePoint] le 04-22-2014, 09:03

- Après Montréal, ce sera Barcelone, rendez-vous à la European SharePoint Conference 2014 ! par Le blog de Patrick [MVP SharePoint] le 04-19-2014, 09:21

- Emportez votre sélection de la MSDN dans la poche ? par Blog de Jérémy Jeanson le 04-17-2014, 22:24

- [ #Office365 ] Pb de connexion du flux Yammer ajouté à un site SharePoint par Le blog de Patrick [MVP SharePoint] le 04-17-2014, 17:03

- NFluent & Data Annotations : coder ses propres assertions par Fathi Bellahcene le 04-17-2014, 16:54

- Installer un site ASP.net 32bits sur un serveur exécutant SharePoint 2013 par Blog de Jérémy Jeanson le 04-17-2014, 06:34

- [ SharePoint Summit Montréal 2014 ] Tests de montée en charge SharePoint par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 20:44

- [ SharePoint Summit Montréal 2014 ] Bâtir un site web public avec Office 365 par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 18:30

- Kinect + Speech Recognition + Eedomus = Dommy par Aurélien GALTIER le 04-16-2014, 17:17