141 votes

Comment visualiser l'assemblage derrière le code en utilisant Visual C++ ?

Je lisais une autre question concernant l'efficacité de deux lignes de code, et le PO a dit qu'il avait regardé l'assemblage derrière le code et que les deux lignes étaient identiques en assemblage. Digression mise à part, comment pourrais-je voir le code d'assemblage créé lorsqu'un programme est compilé.

J'utilise le logiciel Visual C++ de Microsoft, mais j'aimerais également savoir s'il est possible de visualiser l'assemblage derrière un code écrit en Visual Basic.

Alors, comment puis-je voir le code assembleur derrière un programme écrit dans des langages de plus haut niveau comme C++ et Visual Basic ?

6voto

Steve Steiner Points 4044

Pour MSVC, vous pouvez utiliser le linker.

link.exe /dump /linenumbers /disasm /out:foo.dis foo.dll

foo.pdb doit être disponible pour obtenir des symboles

5voto

jcopenha Points 3409

Dans Visual C++, les options du projet sous "Output Files" ont, je crois, une option pour sortir le listing ASM avec le code source. Ainsi, vous verrez le code source C/C++ et l'ASM résultant dans le même fichier.

1voto

Aabbee Points 51

Si vous parlez de déboguer pour voir le code d'assemblage, le moyen le plus simple est Debug->Windows->Disassembly (ou Alt-8). Cela vous permettra d'entrer dans une fonction appelée et de rester dans Disassembly.

0voto

Dave L Points 1380

Red Gate's .NET Reflector est un outil assez génial qui m'a aidé plus d'une fois. L'avantage de cet utilitaire, en plus de vous montrer facilement le MSIL, est que vous pouvez analyser de nombreuses DLL tierces et laisser le Reflector se charger de convertir le MSIL en C# et VB.

Je ne promets pas que le code sera aussi clair que la source, mais vous ne devriez pas avoir beaucoup de mal à le suivre.

0voto

Tim Pearson Points 1

Utilisation de Visual Studio 6.0

Cliquez sur l'élément de menu "Projet".

Cliquez sur "Paramètres".

Sélectionnez l'en-tête de l'onglet C/C++

Remplacer "Catégorie" par "Fichiers d'inscription".

Sous "Listing file type", changez la combobox de "No listing" à "Assembly with machine code".

Les fichiers de code source de l'assemblage apparaîtront dans le dossier "Release" sous forme de fichiers .cod.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X