tl; dr: Para responder a su pregunta específica, -g3
"incluye información adicional, como las definiciones de macros Algunos depuradores apoyan la expansión de macros cuando se utiliza -g3
.", Mientras que -g
no.
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, el gcc docs dice poco acerca de qué información incluye o excluye -g
/-g2
.
Solicite información de depuración y también use el nivel para especificar la cantidad de información. El nivel predeterminado es 2. El nivel 0 no produce información de depuración. Por lo tanto, -g0 niega -g.
El nivel 1 produce información mínima, suficiente para realizar trazas inversas en partes del programa que no tiene previsto 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 macro expansión cuando usa -g3.
¿Qué desea saber que no está cubierto por la documentación? –
Vine aquí porque estoy usando el archivo MAKE de otra persona, y la documentación es una bestia para empezar. Buena pregunta para tener en StackOverflow para encontrar una respuesta fácil de google. – GreenAsJade