Bir zamanlar çok fazla hata ayıklama kodu kullanırdım. Neredeyse tamamen Windows’u hedefliyordum, bu yüzden daha fazla hecelemeyi hatırlayamadığım çok sayıda hata ayıklama dizgisi çıktı işlevi vardı, bu yüzden izlemeyi belirli bir programla yakalayabiliyordum.
Bazı hata ayıklama kodları, aramaların iç içe geçmesi için tasarlanan belirli şeyler yerinde kaldı. Ancak, hata ayıklama dizisi olayı çoğunlukla bir üretim sisteminde görünmez olsa da, tümü hala koşullu derleme altında yapıldı.
Gerçek şu ki, tüm bu hata ayıklama kodunun, ideal olarak farklı bir yolla ele alınan bir şey için çok çaba gösterdiği, elbette bir hata ayıklayıcı kullanarak. O zamanlar, Borland C ++ hata ayıklayıcısından o kadar etkilenmedim. Araçlar oradaydı, ancak çok sık sık yanıltıcı sonuçlar verdiler ve IDE olmayan hata ayıklayıcısını kullanmak (genellikle gerekli) kısayol tuşlarını ezberlemek anlamına geliyordu;
Daha kötü bulduğum tek hata ayıklama deneyimi GDB komut satırı.
Her gün kullandığınız araçlarda uzman olmak elbette önemlidir - ancak hata ayıklama gerçekten her gün yaptığınız bir şey olmamalıdır. Hata ayıklayıcısını çok sık kullanırsanız düzinelerce komut ve / veya klavye kısayolu öğrenmekte sorun yok, bu bana biraz kırmızı bayrak gibi geliyor.
Visual Studio 7'de çalıştığım zaman hata ayıklamanın çok pratik ve etkili olabileceği açıktı. Hata ayıklama işleminizi Visual Studio'da yapabiliyorsanız (dahil hızlı sürümleri), hata ayıklama çok kolaydır. Hiç şüphesiz doğru GUI / IDE ön ucunu bulabilirseniz, GDB de kolay ve etkilidir, ancak henüz bu aramayı yapmadım.
Birim testi için söylenecek bir şey var, gcov kullanarak kapsama analizi. Kütüphanelerinizin davranışında olduğunuzdan emin olduğunuzda, hata ayıklama işleminiz ne kadar derin olursa olsun - ve hata ayıklayıcısını en başta ne kadar sık ihtiyaç duyarsanız. Birim testleri yazmak, çoğu gün yapmanız gereken oldukça makul bir şeydir.
Beklenmedik şekilde önemli bir araç = cmake, diğer şeylerin yanı sıra GCC ve VC ++ için bina arasında kolayca geçiş yapmamı sağlayan bir oluşturma aracı. Böylece birim test ve gcov tabanlı kapsama alanımı GCC kullanarak yapabilirim, ancak hata ayıklayıcıyı kullanmak için kolayca VC ++ 'ya geçiş yapabilirim.