Lorsque l’on utilise une bibliothèque externe dont on n’a pas le code source, il peut parfois être utile de comprendre son fonctionnement. Il existe pas mal de décompilateur sur le marché : Reflector, DotPeek, JustDecompile, ILSpy. Ceux-ci permettent de décompiler une DLL ou un EXE .NET afin d’en comprendre leur fonctionnent. C’est très pratique mais parfois on souhaite aller plus loin et voir comment se comporte ce code à l’exécution.

Pour afficher le code source d’une DLL, Visual Studio se base sur les fichiers PDB (Symbol file) pour faire le lien entre le code compilé et le code source. Visual Studio peut charger ces fichiers soit depuis le disque local soit à partir d’un serveur de symbôles. Le problème avec les DLL tierces est que l’on a ni le code source, ni les fichiers PDB. C’est là qu’intervient DotPeek. Il se positionne en tant que serveur de symbôles et décompile les DLL à la volé et génère un PDB. Visual Studio peut ainsi afficher le code source.

Installation de DotPeek

  1. Télécharger et installer DotPeek : https://www.jetbrains.com/decompiler
  2. Démarrer le serveur de symbôles
  3. Configurer Visual Studio pour utiliser ce serveur (l’url complète est disponible dans la fenêtre d’options de DotPeek) :

configurer visual studio

configuration de visual studio

Utilisation

Maintenant que DotPeek est configuré, il suffit d’utiliser F11 à outrance dans Visual Studio

Utilisation

Utilisation 2

Troubleshooting

En cas de problème vous pouvez vérifier les points suivants :

  • Ouvrez la fenêtre “Project/Pdb Generation Log” dans DotPeek. Toutes les demandes de symbôles s’y affichent. Si l’assembly n’est pas listé vérifiez le point suivant.
  • Dans Visual Studio ouvrez la fenêtre Debug/Windows/Module puis vérifier que les symbôles sont chargés pour l’assembly souhaité. Si ce n’est pas le cas, forcez le chargement de ceux-ci :

troubleshooting

Ne ratez plus aucunes actualités avec la newsletter mensuelle de SoftFluent