Comment déboguer et profiler n'importe quel EXE avec Visual Studio

Avez-vous déjà eu besoin de déboguer ou de profiler un exécutable (fichier .exe) dont vous n'avez pas la source ou que vous ne pouvez pas 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 EXE en tant que «projet». Allez simplement dans Fichier-> Ouvrir-> Projet / Solution et recherchez le fichier .exe . Comme vous le feriez si c'était un fichier .sln . Visual Studio ouvrira ensuite cet EXE en tant que projet. Cette fonctionnalité existe depuis longtemps. Il fonctionne sur toutes les versions de Visual Studio actuellement prises en charge et les documents correspondants se trouvent dans « Déboguer une application qui ne fait pas partie d'une solution Visual Studio ».



Cet article dans notre blog .

DĂ©bogage


Tout comme avec un projet normal, vous pouvez commencer le dĂ©bogage avec F5, qui lancera l'EXE et attachera le dĂ©bogueur. Si vous souhaitez dĂ©boguer le dĂ©marrage, vous pouvez lancer avec F11, qui lancera l'EXE et s'arrĂȘtera sur 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 illustrĂ© ci-dessous:



Pour le dĂ©bogage, vous devrez avoir des symboles, des fichiers PDB, pour l'EXE et toutes les DLL que vous devez dĂ©boguer. Visual Studio suivra le mĂȘme processus pour essayer d'obtenir des symboles comme lors du dĂ©bogage d'un projet normal. Comme il est peu probable que les fichiers PDB aient Ă©tĂ© distribuĂ©s aux cĂŽtĂ©s de l'EXE, vous souhaiterez peut-ĂȘtre les localiser Ă  partir d'une compilation ou, mieux encore, Ă  partir d'un serveur de symboles. Vous trouverez plus d'informations et de bonnes pratiques sur les symboles dans ce blog .

Pour dĂ©boguer efficacement, vous aurez Ă©galement besoin du code source utilisĂ© pour crĂ©er l'EXE, mĂȘme pour quelques fichiers qui vous intĂ©ressent. Vous devrez localiser ces fichiers et les ouvrir dans Visual Studio. Si le code source n'est pas exactement le mĂȘme que le code source qui a Ă©tĂ© crĂ©Ă©, EXE Visual Studio vous avertit lorsque vous essayez d'insĂ©rer un point d'arrĂȘt et le point d'arrĂȘt ne se liera pas. Ce comportement peut ĂȘtre remplacĂ© Ă  partir de la fenĂȘtre d'aperçu des paramĂštres de point d'arrĂȘt . Dans la fenĂȘtre d'aperçu des paramĂštres, cliquez sur le texte du lien source doit correspondre , puis cochez la case pour autoriser la source non compatible, comme illustrĂ© ci-dessous. Bien sĂ»r, avec une source inadĂ©quate, vous ne savez jamais vraiment ce qui va se passer, alors utilisez-le Ă  vos risques et pĂ©rils.



Si l'EXE a Ă©tĂ© crĂ©Ă© avec SourceLink activĂ©, les informations sur la source seront incluses dans les PDB et Visual Studio essaiera de tĂ©lĂ©charger la source automatiquement. C'est une trĂšs bonne raison d'utiliser SourceLink avec vos projets. MĂȘme si vous avez un enrĂŽlement local, vous pourriez ne pas avoir la mĂȘme version qui a Ă©tĂ© utilisĂ©e pour construire le binaire. SourceLink est votre moyen infaillible pour vous assurer que la bonne source est liĂ©e au bon binaire.

Si vous ne pouvez pas obtenir de code source, vous avez encore quelques options:

  1. Utilisez un outil pour décompiler les assemblys en C #, que vous pouvez recompiler en un nouvel assemblage pour patcher 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 . Soyez averti, si vous avez l'habitude de déboguer du code C #, la vue de désassemblage est un outil de dernier recours.


Enfin, si vous devez transmettre des arguments Ă  l'EXE en cours de dĂ©bogage, vous pouvez les configurer avec d'autres options dans la page PropriĂ©tĂ©s du projet ( clic droit-> PropriĂ©tĂ©s sur le nƓud du projet dans l'explorateur de solutions).



Profilage


Vous pouvez Ă©galement utiliser les outils de profilage avec l'EXE en les lançant Ă  partir du dĂ©bogage -> Profilage des performances . À partir de la page de lancement des outils de profilage, vous pouvez sĂ©lectionner les outils Ă  utiliser contre l'EXE. Plus d'informations sur le profilage peuvent ĂȘtre trouvĂ©es dans cette documentation ( https://docs.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2019 ).



Conclusion


VoilĂ . 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 dont vous n'avez peut-ĂȘtre mĂȘme pas la source. Donc, la prochaine fois que vous devrez dĂ©boguer ou profiler un EXE, n'oubliez pas que vous pouvez l'ouvrir en tant que solution dans Visual Studio!

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


All Articles