Para dar un poco de contexto, estoy hablando de compilar el código C++ con g ++ aquí.g ++ - ¿está usando la bandera "-g" para las construcciones de producción una buena idea?
Veo cómo incluir la bandera -g para compilaciones de producción sería conveniente para el mantenimiento: el programa será mucho más fácil de depurar si falla inesperadamente.
Mi pregunta aquí es, ¿la inclusión del distintivo -g afecta al ejecutable de salida de otra manera que no sea aumentar su tamaño? ¿Puede de algún modo hacer que el código sea más lento (por ejemplo, desactivando ciertas optimizaciones)?
Por lo que entiendo, no debería (la documentación solo menciona la inclusión de símbolos de depuración), pero no estoy seguro.
Al leer estos documentos, solo los compiladores que no sean gcc tienen optimizaciones afectadas por -g. Mi experiencia es que para gcc va en la otra dirección: lo que se puede ver y hacer en el depurador se ve afectado por las optimizaciones, a veces severamente. Por supuesto, esto es lo que esperarías de la optimización agresiva: no puedes depurar lo que no está allí. – Gene
@Gene: Oh, ya veo ... interesante, gracias por señalarlo. ¡Entonces parece que fui yo quien estaba equivocado sobre GCC! – Mehrdad