tl; dr: Sorunuzu yanıtlamak için, -g3
"makro tanımları gibi ekstra bilgiler içerir ... Bazı hata ayıklayıcılar -g3
, kullandığınızda makro genişletmeyi destekler ", ancak -g
bu ekstra bilgileri içermez.
Daha geniş cevap, gcc'nin -g0
(hata ayıklama bilgileri devre dışı bırakılır) ile -g3
(maksimum hata ayıklama bilgisi) arasında dört düzeyde hata ayıklama bilgisini desteklemesidir .
Belirtmek -g
eşdeğerdir -g2
. Merakla, gcc belgeleri hangi bilgilerin bulunduğu -g
/ -g2
içerdiği veya hariç tuttuğu konusunda çok az şey söylüyor :
Hata ayıklama bilgisi isteyin ve ayrıca ne kadar bilgi olduğunu belirtmek için düzey kullanın. Varsayılan düzey 2'dir. Düzey 0 hiçbir şekilde hata ayıklama bilgisi üretmez. Böylece -g0, -g'yi olumsuzlar.
Düzey 1, programın hata ayıklamayı planlamadığınız bölümlerinde geri izleme yapmaya yetecek kadar minimum bilgi üretir. Bu, işlevlerin ve harici değişkenlerin açıklamalarını ve satır numarası tablolarını içerir, ancak yerel değişkenler hakkında bilgi içermez.
Seviye 3, programda bulunan tüm makro tanımları gibi ekstra bilgileri içerir. Bazı hata ayıklayıcılar, -g3 kullandığınızda makro genişletmeyi destekler.