SORU
11 Ocak 2009, Pazar


C gdb ile STL/Boost için hata ayıklama en İyi Uygulamalar

Gdb, STL/boost kullanan herhangi bir c kodu ile hata ayıklama hala bir kabus. STL ile gdb kullanmış olan herkes bilir bunu. Örneğin, kod içinde bazı hata ayıklama oturumları here örnek yürütüyor.

İpuçlarını toplayarak acıyı azaltmak için çalışıyorum. Aşağıda topladığı ipuçları (kullanmakta ve özellikle onlara tavsiye ederim herhangi bir değişiklik) hakkında yorum lütfen - listeledim ipuçlarını teknik azaltılması amacıyla.

  • Herkes "Stanford GDB STL utils" "UCF GDB utils" kullanıyor? Veri yapıları artırmak için bu tür araçları var mı? Kullanışlı görünmüyor yukarıdaki araçlarının yinelemeli olarak, destek vektör yazdırma için örneğin::shared_ptr bir komut içinde okunaklı bir şekilde.
  • Senin yazın .dosya gdbinit. Vardır, örneğin, C ile ilgili beautifiers, EAST GDB alt kısmında listelenen formundadır.
  • Kullanmak hata ayıklama STL/Boost library/kontrol, STLport gibi.
  • Günlük (örnek olarak here tarif) kullanın

Güncelleme: GDB new C branch vardır.

CEVAP
12 Ocak 2009, PAZARTESİ


Belki bir tür "bahşiş" aradığını, ama söylemek zorundayım benim deneyim sonra bir kaç yıllık hareket C & C STL ve boost ve STL ben şimdi harcamaçokben eskiden daha GDB daha az zaman. Bu aşağı bir kaç şey koydum:

  • akıllı işaretçiler artırmak (özellikle "paylaşılan gösterici" ve işaretçi kapları performans gerekli olduğunda). Açık bir delete ("goto" C IMHO). yazmak zorunda kaldım en son ne zaman hatırlamıyorum GDB çok zaman geçersiz ve sızıntı işaretçileri takip gidiyor.
  • boost muhtemelen birlikte yoksa alt sürüm kesmek istediğin şeyler için kanıtlanmış kod dolu. e.0* *g LRU mantık önbellekleme ortak desen harika. GDB zaman başka bir yığın gidiyor.
  • Unittesting benimsiyor. **1'ler OTOMATİK makroları mutlak bir oyuncağı test durumları (easier than CppUnit) kurmak. Bu uzun bir hata ayıklayıcı gerek, her şeyi içine inşa gelmeden önce bir sürü yakalar.
  • Buna bağlı olarak boost::bind gibi araçlar daha kolay tasarım için test yapın. e.g algoritmalar olabilir daha genel ve daha az bağlı olan türlerini çalıştırmak; Bu yapar takma onları test levhaları/vekiller/mock nesneler vb daha kolay (ve aslında bu poz için destek şablonu-tasticness olacak teşvik için "cesaret için şablon" işler asla kabul etmeden önce, getirisi benzer test faydaları).
  • boost::array. "C dizi hata ayıklama yapılarında kontrol aralığı ile" performansı.
  • boost ama yardım öğrenemezsin büyük kod dolu

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • edwin maldonado

    edwin maldon

    28 Mart 2009
  • SoundHound

    SoundHound

    8 Mart 2006
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011