tl; dr: Untuk menjawab pertanyaan spesifik Anda, -g3"sertakan informasi tambahan seperti definisi makro ... Beberapa debugger mendukung perluasan makro saat Anda menggunakan -g3", sementara -gtidak 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 -gsama dengan -g2. Anehnya, dokumen gcc hanya menjelaskan sedikit tentang informasi -g/ -g2termasuk 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.