GDB - Sembollerde Hata Ayıklama

Bir Debugging Symbol Tablederlenmiş ikili programdaki talimatları, kaynak koddaki karşılık gelen değişken, işlev veya satırla eşler. Bu eşleme şöyle bir şey olabilir:

  • Program talimatı ⇒ öğe adı, öğe türü, orijinal dosya, tanımlanan satır numarası.

Sembol tabloları programa yerleştirilebilir veya ayrı bir dosya olarak saklanabilir. Bu nedenle, programınızda hata ayıklamayı planlıyorsanız, programda hata ayıklamak için gerekli bilgileri içeren bir sembol tablosu oluşturmanız gerekir.

Sembol tabloları hakkında aşağıdaki gerçekleri çıkarabiliriz:

  • Bir sembol tablosu programın belirli bir sürümü için çalışır - program değişirse yeni bir tablo oluşturulmalıdır.

  • Hata ayıklama derlemeleri genellikle perakende (hata ayıklama olmayan) derlemelerden daha büyük ve yavaştır; hata ayıklama yapıları, sembol tablosunu ve diğer yardımcı bilgileri içerir.

  • Kendi kendinize derlemediğiniz bir ikili programda hata ayıklamak isterseniz, yazardan sembol tablolarını almanız gerekir.

GDB'nin tüm bu bilgileri sembol tablosundan satır satır okuyabilmesi için, onu biraz farklı bir şekilde derlememiz gerekir. Normalde programlarımızı şu şekilde derleriz:

gcc hello.cc -o hello

Bunu yapmak yerine, aşağıda gösterildiği gibi -g bayrağıyla derlememiz gerekiyor:

gcc -g hello.cc -o hello