Gcc -ggdb ve gcc -g arasındaki fark nedir


91

C programlarını derlemek için gcc kullandığımda genellikle -gelf dosyasına bazı hata ayıklama bilgileri almak için kullanırım , böylece gerekirse gdb bana yardımcı olabilir.

Bununla birlikte, -ggdbhata ayıklama bilgilerini daha gdb dostu yapması gerektiği için bazı programların kullandığını fark ettim .

Nasıl farklılık gösterirler ve hangisinin kullanılması önerilir?


Not: Programınızda veya GCC'de Hata Ayıklama seçeneklerine bir bağlantı, http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options

Yanıtlar:



63

-gve -ggdbbazı küçük farklılıklarla benzer , bunu burada okudum :

-g İşletim Sisteminin yerel biçiminde (stabs, COFF, XCOFF veya DWARF 2) hata ayıklama bilgileri üretir.

-ggdb özellikle gdb için tasarlanmış hata ayıklama bilgilerini üretir.

-ggdb3 Ekstra hata ayıklama bilgileri üretir, örneğin: makro tanımları dahil.

-ggdbseviye varsayılanlarını belirtmeden kendi başına -ggdb2(yani seviye 2 için gdb).


12

-Ggdb'nin benim için kullandığımız başka bir hata ayıklama seçeneğinden daha iyi çalıştığı en az bir örneğim var:

Not: Bu yalnızca x86-64 kutularında olur ve -ggdb ile derlendiğinde ortadan kalkar. Ancak hata ayıklayıcının daha yeni sürümleri -gstabs + ile bile çalışır.


7

Bir şey, "-g" nin taşınabilir olmasıdır (örneğin, GNU olmayan platformlarda çalıştırılmak üzere Makefiles'da). Son zamanlarda bir AIX makinesinde -g ve -ggdb ile ilgili bir taşınabilirlik sorunum vardı, bu yüzden bu konuyu açtım.

-Ggdb'nin kullanılabilirliğe ne kattığı hakkında hiçbir fikrim yok.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.