J'optimise l'intégralité du code, mais je ne souhaite pas qu'une certaine fonction soit optimisée, par exemple pour le débogage. Existe-t-il un moyen de le faire sur le compilateur gcc 3.4+?Comment empêcher l'optimisation d'une fonction
3
A
Répondre
12
De la manière la plus simple, placez la fonction dans sa propre unité de compilation, compilez celle-ci sans indicateurs d'optimisation.
versions récentes de gcc (4.4+ je pense) ont un attribut pour contrôler l'optimisation par les fonctions, utilisez
__attribute__((optimize(0)))
sur la fonction pour désactiver les optimisations
Questions connexes
- 1. Empêcher d'exécuter une fonction JavaScript plusieurs fois
- 2. empêcher l'exécution de la fonction en Javascript et JQuery
- 3. jquery empêcher la duplication de la fonction affectée
- 4. Comment empêcher le passage vers le bas du paramètre d'une fonction à une autre
- 5. Python Débutant: Comment empêcher l'exécution de 'finally'?
- 6. Comment empêcher l'ajout du même événement dans la page Asp.net?
- 7. Comment pouvez-vous empêcher quelqu'un d'appeler Android?
- 8. Comment faire pour empêcher l'événement ListBox.SelectedIndexChanged?
- 9. Liaison d'assembly sous WindowsImpersonationContext. Comment empêcher FileLoadException?
- 10. Comment empêcher un RichTextBox d'actualiser son affichage?
- 11. Comment empêcher Datagrid de réutiliser itemRenderers?
- 12. Comment empêcher l'URLRequest de Flash d'échapper l'URL?
- 13. Comment empêcher VS2008 d'enregistrer des signets?
- 14. Comment empêcher la fusion dans TFS
- 15. Asp.Net MVC - ValidationMessage() - comment empêcher l'échappement HTML?
- 16. Comment empêcher les autres d'intégrer mon flash?
- 17. Comment empêcher TreeView de changer sa position?
- 18. Comment puis-je empêcher l'iPhone NSNumberFormatter d'arrondir?
- 19. Comment empêcher un affichage de ModalPopupExtender?
- 20. Comment empêcher IIS7 de supprimer mes cookies?
- 21. C#: comment empêcher l'échec de l'appel
- 22. Comment empêcher Turbine d'écrire sur ma console?
- 23. Comment empêcher TFS d'écraser une étiquette?
- 24. Comment faire pour empêcher Iframe hack
- 25. Comment empêcher la décompilation du code ActionScript
- 26. Comment empêcher un objet d'être collecté?
- 27. Comment empêcher Hibernate de couper les chaînes?
- 28. Comment empêcher les modifications de fichiers manquantes dans ReadDirectoryChangesW
- 29. Comment empêcher Emacs de modifier automatiquement mon fichier de démarrage?
- 30. Comment empêcher la file d'attente des fonctions SlideToggle?
Compilateurs __do généralement not__ gurantee que la version debug/release de Les binaires ont le même ABI ou padding etc .... Ainsi, il n'est pas sûr (dans le cas général) de supposer que cela fonctionnera (bien que cela puisse fonctionner pour votre compilateur). –
Avez-vous un exemple? Je sais que Microsoft utilise un runtime C différent pour les exécutables de débogage, mais que l'interopérabilité entre l'appel de fonction et l'alignement de la structure est garantie. Et gcc génère 100% de sortie compatible dans tous les régimes, autant que je sache. De toute évidence, des choses comme l'alignement de la structure et les ABI ne font pas partie du langage standard, donc les compilateurs n'ont pas * besoin * de les respecter lorsqu'ils génèrent une sortie de débogage. Mais cela me semble plus un point pédant que pratique. –
OP a posé une question à propos de gcc et gcc n'a pas de bêtises comme différents ABI "debug" et "release". –