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:
Minta informasi debugging dan juga gunakan level untuk menentukan berapa banyak informasi. Level default adalah 2. Level 0 tidak menghasilkan informasi debug sama sekali. Jadi, -g0 meniadakan -g.
Level 1 menghasilkan informasi minimal, cukup untuk membuat jejak belakang di bagian program yang tidak Anda rencanakan untuk di-debug. Ini termasuk deskripsi fungsi dan variabel eksternal, dan tabel nomor baris, tetapi tidak ada informasi tentang variabel lokal.
Level 3 mencakup informasi tambahan, seperti semua definisi makro yang ada dalam program. Beberapa debugger mendukung ekspansi makro saat Anda menggunakan -g3.