Je dois dire à VC++ de générer des fichiers ASM pendant la compilation, ce que je n'ai jamais vraiment utilisé auparavant. Mais cela semble assez limité, comme ce sont juste des fichiers supplémentaires jetés lors de la compilation. Je pensais que peut-être le code ASM/C++ pourrait être lié, donc je peux passer de C++ directement au code ASM généré? Ou pourrait définir des points d'arrêt dans le code ASM? Est-ce possible et je ne connais pas les outils, ou est-ce la génération ASM pour l'analyse hors ligne?Comprendre la génération ASM VC++
Répondre
Le fichier de langage assembleur produit par le compilateur est principalement destiné à l'analyse hors ligne. Si vous voulez par exemple définir un point d'arrêt dans le code d'assemblage généré, vous pouvez le faire. Lorsque le fichier source approprié est ouvert, cliquez avec le bouton droit de la souris et sélectionnez "Aller au démontage". Cela vous montrera le code du langage d'assemblage avec les instructions source entrelacées comme des commentaires (à peu près comme le fichier qu'il génère séparément). Vous pouvez ensuite définir des points d'arrêt sur des instructions de langage assembleur individuelles qui ont été générées à partir d'une instruction source particulière.
Cela ne fonctionne vraiment que dans le mode de débogage, où l'assemblage généré n'est pas aussi éducatif que dans la version. http://stackoverflow.com/questions/563000/can-optimizations-affect-the-ability-to-debug-a-vc-app-using-its-pdb –
@BlueRaja: Oui et non. Tant que vous avez généré des informations de débogage en mode release, vous pouvez toujours faire à peu près les mêmes choses. La différence est que l'optimisation globale peut réorganiser le code de sorte que vous n'obteniez plus une correspondance 1: 1 entre le code source et ce qu'il génère. –
- 1. syntaxe asm en ligne VC l'erreur
- 2. Intrinsics Vs inline ASM pour le codage SSE dans VC++ 2K8
- 3. x86 asm rapide question
- 4. ASM x86 relatif JMP
- 5. impossible contrainte dans 'asm'
- 6. Question d'entrevue Microsoft ASM?
- 7. Explication du code Asm
- 8. Cygwin gcc - erreur asm:
- 9. Asm Débutant aide
- 10. Initialiseur statique dans asm
- 11. Conseils pour lire le code ASM?
- 12. Comprendre la JVM Sun
- 13. comprendre la sortie WinDbg
- 14. Comprendre la vulnérabilité Wordpress
- 15. Comprendre la récursion
- 16. ASM .com ne fonctionnera pas
- 17. Étiquette Delphi et asm étrangeté?
- 18. enregistrer en ligne asm valeur de registre au pointeur C, peut l'obtenir sur GCC mais pas VC
- 19. Question sur la dimension VC
- 20. VC++ 2010 exclure la bibliothèque
- 21. x86 instructions asm max/min?
- 22. MOV BX, [SI] - ASM question
- 23. linux asm x86 produisant segfault
- 24. Comprendre
- 25. Projet VC++ 2008 toujours "obsolète"
- 26. désemballage à l'aide de la bibliothèque Java ASM
- 27. Comprendre la comète par l'exemple
- 28. Une autre question sur la sortie ASM compilateur C
- 29. ASM instrumentation bytecode pour l'entrée de la méthode/sortie
- 30. ERREUR LINK dans VC++
Cela va être difficile à faire parce que C++ et asm n'ont pas de représentation 1: 1. –
Mais le compilateur sait exactement quel code il a généré et devrait pouvoir mapper à partir de C++ -> ASM. D'où la question, si le fichier PDB contient des données pour cela, ou le code ASM est seulement un produit secondaire. –