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 -g
que 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 -g
es equivalente a -g2
. Curiosamente, los documentos de gcc dicen poco sobre qué información -g
/ -g2
incluye o excluye:
Solicite información de depuración y también use el nivel para especificar cuánta información. El nivel predeterminado es 2. El nivel 0 no produce ninguna información de depuración. Por tanto, -g0 niega -g.
El nivel 1 produce información mínima, suficiente para realizar rastreos en partes del programa que no planea depurar. Esto incluye descripciones de funciones y variables externas y tablas de números de línea, pero no información sobre variables locales.
El nivel 3 incluye información adicional, como todas las definiciones de macro presentes en el programa. Algunos depuradores admiten la expansión de macros cuando usa -g3.