Saat mengompilasi kode sumber C dengan gcc atau Clang, saya selalu menggunakan -g
flag untuk menghasilkan informasi debugging untuk gdb.
gcc -g -o helloworld helloworld.c
Saya perhatikan bahwa beberapa orang merekomendasikan -g3
sebagai gantinya. Apa perbedaan antara bendera -g
dan -g3
? Juga apakah ada perbedaan antara -g
dan -ggdb
?
Jawaban:
Dari dokumen :
sumber
tl; dr: Untuk menjawab pertanyaan spesifik Anda,
-g3
"sertakan informasi tambahan seperti definisi makro ... Beberapa debugger mendukung perluasan makro saat Anda menggunakan-g3
", sementara-g
tidak menyertakan informasi tambahan ini.Jawaban yang lebih luas adalah bahwa gcc mendukung empat tingkat informasi debug, dari
-g0
(informasi debug dinonaktifkan) hingga-g3
(informasi debug maksimum).Menentukan
-g
sama dengan-g2
. Anehnya, dokumen gcc hanya menjelaskan sedikit tentang informasi-g
/-g2
termasuk atau tidak termasuk:sumber