¿Cuáles son las diferencias entre las versiones de depuración y versión para una aplicación Cocoa? Sé que la versión de depuración contiene información adicional para la depuración, pero ¿qué más es diferente?Xcode/Cocoa: ¿Cuáles son las diferencias entre las compilaciones de depuración y versión?
Respuesta
Las compilaciones de depuración contendrán símbolos de depuración que pueden ser utilizados por un depurador. Las compilaciones de lanzamiento a menudo no contienen símbolos de depuración, de modo que si obtiene un volcado de bloqueo, todo lo que obtendrá será un conjunto de direcciones hexadecimales en lugar de nombres de símbolos útiles.
versiones de depuración no están compilados con optimización (-O0
con gcc), mientras que las versiones de lanzamiento se compila con optimización (típicamente -O2
o -O3
). La optimización hace que la depuración sea mucho, mucho más difícil. Si intenta depurar una aplicación de lanzamiento, el depurador se confundirá mucho, ya que las instrucciones de ensamblado ya no coinciden con las declaraciones HLL, las instrucciones se reordenan, las funciones se incorporan, los bucles se desenrollan, etc.
Depurar y lanzar compilaciones también se definieron diferentes símbolos de preprocesador, y parte del código se compila de forma condicional en función de esos (por ejemplo, comprobaciones de límites de matriz, aserciones, etc.), aunque eso depende en gran medida de la aplicación. Un ejemplo típico sería #define NDEBUG
para el modo de lanzamiento, que hace que las aserciones sean eliminadas.
En Tiger, las compilaciones de depuración tienen "cero enlaces". Esto es, está optimizado solo para su entorno y no es realmente una compilación completa.
- 1. ¿Cuáles son las diferencias entre g ++ versión 4.0.0.8 y 4.3.2?
- 2. ¿Cuáles son las diferencias entre $ {} y # {}?
- 3. ¿Cuáles son las diferencias entre AssemblyVersion, AssemblyFileVersion y AssemblyInformationalVersion?
- 4. Cuáles son las diferencias entre display: box y display: flexbox
- 5. ¿Cuáles son las diferencias y similitudes entre MVC y MVVM?
- 6. ¿Cuáles son las diferencias entre Doctrine1 y Doctrine2?
- 7. ¿Cuáles son las diferencias de uso entre size_t y off_t?
- 8. ¿Cuáles son las diferencias entre PEG y CFG?
- 9. ¿Cuáles son las diferencias entre la lechuga y la pictografía?
- 10. ¿Cuáles son las diferencias entre JSP, PHP, HTML5 y javascript?
- 11. ¿Cuáles son las diferencias entre @dynamic y @synthesize?
- 12. ¿Cuáles son las diferencias reales entre Zend Framework y Django?
- 13. ¿Cuáles son las diferencias entre ADOdb y PDO en PHP?
- 14. ¿Cuáles son las diferencias entre osql, isql y sqlcmd?
- 15. ¿Cuáles son las diferencias entre struct_time y datetime?
- 16. ¿Cuáles son las diferencias actuales entre jQuery y Prototype?
- 17. ¿Cuáles son las diferencias entre OllyDbg y WinDbg?
- 18. ¿Cuáles son las diferencias fundamentales entre OSGi y Java EE?
- 19. ¿Cuáles son las diferencias entre XmlSerializer y BinaryFormatter?
- 20. ¿Cuáles son las diferencias entre NSURLConnection y ASI-HTTP-Request?
- 21. ¿Cuáles son las principales diferencias entre Meteor, Ember.js y Backbone.js?
- 22. ¿Cuáles son las diferencias entre Vanilla Perl y Strawberry Perl?
- 23. ¿Cuáles son las diferencias entre JSP y Facelets?
- 24. ¿Cuáles son las diferencias entre un UIView y un CALayer?
- 25. ¿Cuáles son las diferencias entre PHP y Java?
- 26. ¿Cuáles son las diferencias entre utf8_general_ci y utf8_unicode_ci?
- 27. ¿Cuáles son las principales diferencias entre JavaScript y ActionScript 3?
- 28. ¿Cuáles son las diferencias entre Gtk + y Qt?
- 29. ¿Cuáles son las diferencias entre LinFu.DynamicProxy y Castle.DynamicProxy?
- 30. ¿Cuáles son las diferencias entre nil, NULL y [NSNULL nil]?