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

- Créer un périphérique Windows To Go 10 ! par Blog de Jérémy Jeanson le 11-21-2014, 04:54

- RDV à Genève le 12 décembre pour l’évènement “SharePoint–Office 365 : des pratiques pour une meilleure productivité !” par Le blog de Patrick [MVP Office 365] le 11-19-2014, 10:40

- [IIS] Erreurs web personnalisées par Blog de Jérémy Jeanson le 11-19-2014, 00:00

- BDD/TDD + Javascript par Fathi Bellahcene le 11-16-2014, 16:57

- Sécuriser sans stocker de mots de passe par Blog de Jérémy Jeanson le 11-15-2014, 08:58

- Où télécharger la preview de Visual Studio 2015 ? par Blog de Jérémy Jeanson le 11-13-2014, 21:33

- Les cartes sont partout ! par Le blog de Patrick [MVP Office 365] le 11-13-2014, 17:26

- [ #Office365 ] Courrier basse priorité ! par Le blog de Patrick [MVP Office 365] le 11-12-2014, 08:56

- [Oracle] Fichier oranfsodm12.dll absent du package client par Blog de Jérémy Jeanson le 11-10-2014, 20:44

- [ #Office365 ] Le chapitre 1 des Groupes est écrit, et alors ? par Le blog de Patrick [MVP Office 365] le 11-10-2014, 20:23