Al compilar el código fuente de C con gcc o Clang, siempre uso la -gbandera para generar información de depuración para gdb.
gcc -g -o helloworld helloworld.c
Me di cuenta de que algunas personas recomiendan en su -g3lugar. ¿Cuál es la diferencia entre las banderas -gy -g3? ¿También hay una diferencia entre -gy -ggdb?

Respuestas:
De los documentos :
fuente
tl; dr: Para responder a su pregunta específica,
-g3"incluye información adicional como definiciones de macros ... Algunos depuradores admiten la expansión de macros cuando se utiliza-g3", mientras-gque no incluye esta información adicional.La respuesta más amplia es que gcc admite cuatro niveles de información de depuración, desde
-g0(información de depuración desactivada) hasta-g3(información de depuración máxima).Especificar
-ges equivalente a-g2. Curiosamente, los documentos de gcc dicen poco sobre qué información-g/-g2incluye o excluye:fuente