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

- Office 365: Nettoyage des versions de List Item avant migration depuis SharePoint On Premise vers SharePoint Online par Blog Technique de Romelard Fabrice le 08-08-2017, 15:36

- Office 365: Comment supprimer des éléments de liste SharePoint Online via PowerShell par Blog Technique de Romelard Fabrice le 07-26-2017, 17:09

- Nouveau blog http://bugshunter.net par Blog de Jérémy Jeanson le 07-01-2017, 16:56

- Office 365: Script PowerShell pour assigner des droits Full Control à un groupe défini par Blog Technique de Romelard Fabrice le 04-30-2017, 09:22

- SharePoint 20XX: Script PowerShell pour exporter en CSV toutes les listes d’une ferme pour auditer le contenu avant migration par Blog Technique de Romelard Fabrice le 03-28-2017, 17:53

- Les pièges de l’installation de Visual Studio 2017 par Blog de Jérémy Jeanson le 03-24-2017, 13:05

- UWP or not UWP sur Visual Studio 2015 ? par Blog de Jérémy Jeanson le 03-08-2017, 19:12

- Désinstallation de .net Core RC1 Update 1 ou SDK de Core 1 Preview 2 par Blog de Jérémy Jeanson le 03-07-2017, 19:29

- Office 365: Ajouter un utilisateur ou groupe dans la liste des Site collection Administrator d’un site SharePoint Online via PowerShell et CSOM par Blog Technique de Romelard Fabrice le 02-24-2017, 18:52

- Office 365: Comment créer une document library qui utilise les ContentTypeHub avec PowerShell et CSOM par Blog Technique de Romelard Fabrice le 02-22-2017, 17:06