126 votes

GCC -g vs -g3 Drapeau GDB: quelle est la différence?

Lors de la compilation du code source C avec gcc ou Clang, j’utilise toujours le drapeau -g pour générer des informations de débogage pour gdb.

gcc -g -o helloworld helloworld.c

J'ai remarqué que certaines personnes recommandent plutôt -g3 . Quelle est la différence entre les drapeaux -g et -g3 ? Existe-t-il également une différence entre -g et -ggdb ?

121voto

MByD Points 78505

À partir de la docs:

-g

Produire des informations de débogage dans le système d'exploitation le format natif (stabs, COFF, XCOFF, ou le NAIN 2). GDB peut travailler avec ce les informations de débogage. Sur la plupart des systèmes qui utilisent des lames de format, -g permet d'utiliser des informations de débogage supplémentaires que seulement GDB peut utiliser; ce de l'information supplémentaire rend le débogage mieux travailler dans GDB, mais probablement d'autres débogueurs de crash ou de refuser de lire le programme. Si vous voulez de contrôle pour certains que pour générer de l'information supplémentaire, utilisez -gstabs+, -gstabs, -gxcoff+, -gxcoff, ou -les ptc (voir ci-dessous).

...


-ggdb

Produire des informations de débogage pour une utilisation par GDB. Cela signifie que la plus expressive format disponible (NAIN 2, stabs, ou autochtone format si aucun de ceux-ci sont pris en charge), y compris GDB extensions si à tous les possibles.


-gvmslevel

Demande des informations de débogage et également utiliser un niveau pour spécifier la façon dont beaucoup d'informations. Le niveau par défaut est 2. Niveau 0 ne produit pas de les informations de débogage à tous. Ainsi, -g0 nie -g.

....

Le niveau 3 comprend des informations supplémentaires, telles que toutes les définitions de macro présents dans le programme. Certains débogueurs de soutien macro-expansion vous utilisez -g3.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X