Comment déboguer et profiler n'importe quel fichier EXE à l'aide de Visual Studio

Avez-vous déjà dû déboguer ou profiler un fichier exécutable (fichier .exe) pour lequel vous n'avez pas de code source ou ne pouvez pas le créer? Alors le type de projet Visual Studio le moins connu, le projet EXE, est fait pour vous!

Dans Visual Studio, vous pouvez ouvrir n'importe quel fichier EXE en tant que «projet». Allez simplement dans Fichier -> Ouvrir -> Projet / Solution et allez dans le fichier .exe . Comme s'il s'agissait d'un fichier .sln . Visual Studio ouvrira ce fichier EXE en tant que projet. Cette fonctionnalité existe depuis longtemps. Il fonctionne sur toutes les versions actuellement prises en charge de Visual Studio et sa documentation se trouve sur la page Débogage de l' application, qui ne fait pas partie de la solution Visual Studio .



Débogage


Comme dans un projet normal, vous pouvez commencer le débogage avec F5, qui lancera l'EXE et activera le débogueur. Si vous souhaitez déboguer le lancement, vous pouvez commencer à utiliser F11, qui lancera l'EXE et s'arrêtera à la première ligne de code utilisateur. Ces deux options sont disponibles dans le menu contextuel du projet EXE dans la fenêtre de l' Explorateur de solutions , comme indiqué ci-dessous:



Pour le débogage, vous aurez besoin de symboles, de fichiers PDB, d'EXE et de toutes les DLL qui doivent être déboguées. Visual Studio suivra le même processus et essaiera d'obtenir les caractères de la même manière que lors du débogage d'un projet normal. Comme il est peu probable que les fichiers PDB aient été distribués avec le fichier .exe, vous souhaiterez peut-être les trouver dans l'assembly ou, mieux encore, sur le serveur de symboles. De plus amples informations et recommandations sur l'utilisation des symboles sont disponibles sur ce blog .

Pour un débogage efficace, vous aurez également besoin du code source qui a été utilisé pour créer l'EXE, ou même pour plusieurs fichiers qui vous intéressent. Vous devez rechercher ces fichiers et les ouvrir dans Visual Studio. Si le code source ne correspond pas au code source qui a été compilé, Visual Studio EXE vous avertira lorsque vous essayez d'insérer un point d'arrêt et le point d'arrêt ne sera pas lié. Ce comportement peut être modifié dans la fenêtre d'aperçu des paramètres . Dans la vue des paramètres, cliquez sur le texte du lien Doit correspondre à la source , puis cochez la case pour résoudre la source inappropriée, comme illustré ci-dessous. Bien sûr, avec une source inappropriée, vous ne savez jamais ce qui se passera, alors utilisez-le uniquement à vos risques et périls.



Si l'EXE a été compilé avec SourceLink , les informations sur la source seront incluses dans la PDB et Visual Studio essaiera de charger la source automatiquement. C'est une très bonne raison d'utiliser SourceLink avec vos projets. Même si vous avez un ensemble local, vous ne pouvez pas avoir la version utilisée pour construire le binaire. SourceLink est votre moyen fiable de vous assurer que la bonne source est liée au bon binaire.

Si vous ne pouvez pas obtenir le code source, vous avez encore plusieurs options:

  1. Utilisez l'outil pour décompiler les assemblys en C #, que vous pouvez recompiler dans un nouvel assemblage pour corriger l'ancien.
    1. ILSpy est un excellent choix pour cela, mais il existe de nombreux autres outils gratuits et payants.

  2. Utilisez la fenêtre de l'outil de désassemblage dans Visual Studio.
    1. Le document Source Not Found contient un lien pour afficher le démontage . Gardez à l'esprit que si vous avez l'habitude de déboguer du code C #, le désassemblage des vues est un dernier recours.


Enfin, si vous devez transmettre des arguments à un fichier EXE débogué, vous pouvez les configurer avec d'autres paramètres sur la page Propriétés du projet ( clic droit -> Propriétés dans le nœud de projet dans l'Explorateur de solutions).



Profilage


Vous pouvez également utiliser des outils de profilage avec un fichier .exe en les exécutant à partir du débogage -> Profilage des performances . Sur la page de lancement des outils de profilage, vous pouvez choisir les outils à utiliser contre l'EXE. De plus amples informations sur le profilage sont disponibles dans ces documents ( https://docs.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2019 ).



Conclusion


C’est tout. Un bref aperçu de la façon dont vous pouvez utiliser Visual Studio pour déboguer et profiler des applications que vous ne créez pas et qui peuvent même ne pas avoir de code source. La prochaine fois que vous devrez déboguer ou profiler un fichier .exe, assurez-vous de l'ouvrir en tant que solution dans Visual Studio!

Source: https://habr.com/ru/post/fr468333/


All Articles