İçindekiler:
- Hata ayıklayıcı nedir?
- Programınızı hata ayıklayıcıyı kullanacak şekilde ayarlama
- Kesme noktası ayarlamak için satır numarasının sağındaki alanı tıklamanız yeterlidir; bu alan Kod:: Bloklar sözlüğünde
- Bunu yapmak, programın anlık olarak yanıp sönmesine neden olur, çünkü kontrol, Şekil 6'da gösterildiği gibi tekrar hattına gelmeden önce hattı 11 yürütmek için yeterince uzun süre programa geçer.
- döngüsüne hiç
- Bu efekti görmek için, kontrol hattı 26'ya erişene kadar PrintArgs programını tek adımda çalıştırın.Next Line (Sonraki Satır) 'ı seçtiğinizde, imleç Şekil 8'de gösterildiği gibi kaybolur. Gone, programda olduğum yeri size hatırlatan hoş sarı oktur. Ne oldu?
Video: Saçlarını Kendi Kesmek İsteyenler İzlemeli , Nasıl Olur TV 2024
Hata ayıklayıcıyı kullanmayı öğrenmek, C ++ oyununuz için yapabileceğiniz en önemli şeylerden biridir. Aşağıda, bir kesme noktası ayarlamak, programınızı durdurmak, birkaç değişkeni incelemek ve programı sürdürmek için gerekli adımlar bulunmaktadır.
2014 baharında Kod:: Blocks Mac için hata ayıklayıcıyla entegre değildir; bu nedenle bir Mac kullanıcısıysanız, bu örnekler sizin için işinize yaramayabilir.
Hata ayıklayıcı nedir?
Daha ileri gitmeden önce, bir hata ayıklayıcıyı anladığınızda yardımcı olabilir. hata ayıklayıcısı , yürütülmekte olan programınızı kontrol etmenizi sağlayan ayrı bir programdır. Özellikle, programın belirli kod satırlarında yürütülmesini, değişkenlerin değerini incelemek, değişkenlerin değerini değiştirmek ve programın yürütmesini sürdürmek için durdurmanıza olanak tanır.
GNU hata ayıklayıcı, hem hatırlanması zor, hem de zor olması gereken bir komut satırı arayüzüne sahiptir (şimdiye kadar duyduğunuzda kazanan bir kombinasyondur). Neyse ki Code:: Blocks, GNU hata ayıklayıcıya neredeyse kesintisiz bir grafik arayüzü sağlar. Düzenleyici pencerelerini tıklatıp açılır menüleri etkinleştirirken Kod:: Bloklar, arka planda hata ayıklayıcıya şifresiz komutlar gönderir ve sonuçları yorumlar ve grafiksel olarak görüntüler. Arkaplanda iki program sohbet edip çalışmanızı kurtarmak harika değil mi?
Hata ayıklayıcıyı öğrenmenin en iyi yolu yalnızca bu örnekleri takip etmektir.
Programınızı hata ayıklayıcıyı kullanacak şekilde ayarlama
Hata ayıklayıcı denetiminde çalıştırmayı planlıyorsanız programınızı özel derleyici ayarlarını kullanarak oluşturmanız gerekir. Bunu yapmanın en kolay yolu, projenizi ilk oluştururken başınızdadır. Bir Konsol Uygulaması oluşturmak istediğinizi ve programın adını sağladığınızı belirledikten sonra, Kod:: Bloklar, programınızı Debug yapılandırmasında mı yoksa Release yapılandırmasında mı yoksa her ikisinde mi inşa etmek isteyip istemediğinizi soracaktır, Şekil 1'de Hata ayıklama yapılandırmasının etkinleştirildiğinden emin olun.
Hata ayıklama yapılandırmasında bir program, hata ayıklayıcıyı büyüsünü yapmak için ihtiyaç duyduğu bir çok ek bilgi içerir. Bu bilgi arasında
-
C ++ kaynak kodunun her satırının adresi
-
Her değişkenin adresi
-
Programınızdaki her sınıfın isimleri ve makyajı
Bu hata ayıklayıcı bilgilerinin tümü, yürütülebilir program - yüzlerce kilobayt veya daha fazla. Bu alanı, hata ayıklayıcı kontrolünde programı çalıştırmak istemiyorsanız tamamen gereksizdir, bu nedenle Code:: Blocks, yürütülebilir dosyaları Release yapılandırması olarak adlandırılan bu bilgiler olmadan hazırlama seçeneği sunar.Bırakma programları daha küçük, daha hızlı yükleniyor ve daha hızlı çalıştırılıyor.
Projenizde Hem Hata Ayıklama hem de Sürüm yapılandırmalarını etkinleştirirseniz, kurma zamanında oluşturmaya çalıştığınız yürütülebilir türünü seçeceksiniz.
Hata ayıklama ve Release yapılandırmaları arasında iki farklılık vardır:
-
Hata ayıklama yapılandırması, -g derleyici seçeneğini içerir.
Bu seçenek derleyiciye, son yürütülebilir dosyaya sembol bilgilerini eklemelerini söyler. Bu, yukarıda bahsedilen şeylerin hepsidir - kodun ve değişkenlerin her satırının adresi ve programınızda kullanılan her sınıfın bir açıklaması.
-
Kod iyileştirici hata ayıklama yapılandırmasında devre dışı bırakılmış ve Release yapılandırmasında açılmıştır.
GNU kod optimizer programı daha hızlı çalışan programlar üretir; ancak talimatları, programınızı hata ayıklarken oldukça karıştırıcı olabilecek şekilde hareket ettirerek gerçekleştirir. Sürüm yapılandırması, -g anahtarını içermez ve -O anahtarının dahil edilmesiyle bazı düzeydeki optimizasyonu mümkün kılar.
Şekil 2'de gösterildiği gibi, Yapı → Hedef Seç → Hata Ayıkla seçeneğini belirleyerek Hata Ayıklama sürümünü oluşturduğunuzdan emin olun. Şekil 9: Hata ayıklama yürütülebilir dosyasını bile oluşturduğunuzdan emin olmalısınız. projenizi oluştururken Yapılandırmayı Debug'u etkinleştirdiyseniz.
Yapı → Rebuild komutunu seçerek programınızı yeniden oluşturun.Kesme noktasında durma
Kesme noktası ayarlamak için satır numarasının sağındaki alanı tıklamanız yeterlidir; bu alan Kod:: Bloklar sözlüğünde
çukur olarak bilinir. Satır sadece editörün seçtiğini belirten bir çizgi değil, aynı zamanda Şekil 3'te gösterildiği gibi olukta da küçük bir durma işareti görünür. Bu, kesme noktasının 11 satırına ayarlandığının bir göstergesidir. Şekil 3: Kod:: Bloklar, kesme noktasının ne zaman ayarlandığını göstermek için şirin bir küçük dur işareti kullanır.
Bir defada istediğiniz kadar kesme noktası ayarlayabilirsiniz, ancak bu kesme noktası bu örnek için iyi olacaktır.Burada, Şekil 4'te gösterilen Hata Ayıkla → Başlat / Devam seçeneğini kullanarak programı başlatabilirsiniz. Şekil 9: Hata Ayıkla> Başlat / Devam menü seçeneğini kullanarak programınızın başlatılmasını (veya devam ettirin).
Program normal gibi çalıştırılmaya başlar, ancak Şekil 5'de gösterildiği gibi Hat 11'i gösteren küçük sarı bir okla neredeyse derhal durur. Ek olarak normalde program çıkışı içerecek boş bir pencere açılır. 11 nolu satır henüz yürütülmediğinden program çıktısında hiçbir şey görünmüyor.
Şekil 5: Program bir kesme noktası ile karşılaştığında programın çalışması durur.Vay! Çok havalı.
Bir programın yürütülmesine devam etmeBir sonraki satıra bir kesme noktası ayarlayabilir ve isterseniz, programı bir sonraki satıra devam ettirmek için Debug → Start / Continue komutunu seçebilirsiniz; Bununla birlikte, bu yapılması gereken ortak bir şey olduğundan, Code:: Blocks Debug → Next Line seçeneğini sunar, yani "Programı bir sonraki satıra uygulayın."
Bunu yapmak, programın anlık olarak yanıp sönmesine neden olur, çünkü kontrol, Şekil 6'da gösterildiği gibi tekrar hattına gelmeden önce hattı 11 yürütmek için yeterince uzun süre programa geçer.
Şekil 6: Sonraki Satır komutunun yürütülmesine neden olur programda bir satır yürütmek için hata ayıklayıcı.
Bu işlemi istediğiniz gibi sıklıkla tekrarlayarak, etkin bir şekilde programa adım atabilirsiniz.
Bir işlev çağrısı yaptığınızda, Sonraki Satır geçerli işleve kalır ve tüm işlevi yalnızca tek bir satırmış gibi yürütürsünüz (bu düzey bu seviyededir). İşlev çağrısına kontrol aktarmak isterseniz, Bunun yerine Debug → Step Into seçeneğini seçin. Bu, yalnızca kaynak kodunuz olan işlevler için çalışır - bu, C ++ kitaplık işlevleri için çok iyi çalışmaz.Tek adımlık işlemden bıktığınızda, Debug → Debugger'ı Durdur'u seçerek programı sonlandırabilirsiniz. Bu sadece hata ayıklayıcıyı durdurmakla kalmaz, aynı zamanda programınızı da durdurur.
Değişkenların incelenmesi
Programınız boyunca tek adım atma, programınızın nereye gittiğini hissetmek için harika bir yoldur, ancak kararlar almak için kullandığı değişkenleri inceleyemediğiniz takdirde, bunu anlamak zor olabilir. Örneğin, örnek programa bir adım attığınızda, denetimin
döngüsüne hiç
girmediğini fark edebilirsiniz. Neden? Debug → Debugger'ı Durdur'u seçerek veya Shift + F8 tuşlarına basarak ve Debug → Start / Continue komutunu seçerek veya F8 tuşuna basarak programı durdurun. Hata Ayıklama → Sonraki Hat'ı seçerek veya döngü için
'un başına kadar F7 tuşuna basarak tek adım. Bu sefer, Hata Ayıklama → Hata ayıklama pencereleri → Saatler'i seçerek İzleme penceresinin görünür olduğundan emin olun. Bağımsız değişkenlerin değerlerini ve yerel değişkenleri gösteren Şekil 7'deki gibi bir pencere görünür. NNumberofArgs öğesinin 1, yalnızca programın kendisinin adı olduğuna dikkat edin. 1'den başlayan bir değerle başladığımızdan, döngü asla yürütülecek değil. İçinde bulunduklarını görmek için pszArgs [0] ve pszArgs [1] izleme değişkenlerini ekleyin: programın adı ve null. Aha! Programın tekrar etmek için hiçbir argüman yok. Şekil 7: İzleme penceresi programcının değişkenlerin değerini görüntülemesine izin verir.
Argümanları, Proje → SetProgramlar'ın Argümanlar'ı seçerek programa değiştirebilirsiniz. Bu pencerede, istediğiniz bağımsız değişkenleri koyabilirsiniz.
İzleme penceresinin bana değişkenin adını, türünü ve değerini gösterdiğine dikkat edin. Türünü değiştiremezsiniz, ancak isterseniz değerini bu pencereden değiştirebilirsiniz.nNumber ofArgs
değerini değiştirmek çok kullanışlı değildir, ancak bazen bir değişkenin değerini değiştirirsem, ne olacağını görmek için yürütmeyi farklı bir yoldan zorla almamı sağlar. Durdurulan bir programa devam edilmesi Unutulması gereken bir hiledir, bazen bir programın neden durdurulduğu konusunda kafa karıştırıcı olabilmesidir. Durdurulan tüm programlar hata ayıklayıcı denetimindedir. Bazen kullanıcıdan girdi bekliyorlar.
Bu efekti görmek için, kontrol hattı 26'ya erişene kadar PrintArgs programını tek adımda çalıştırın.Next Line (Sonraki Satır) 'ı seçtiğinizde, imleç Şekil 8'de gösterildiği gibi kaybolur. Gone, programda olduğum yeri size hatırlatan hoş sarı oktur. Ne oldu?
Şekil 8: Program kullanıcı girişi için beklerken kontrol dışarıda kalmış gibi gözüküyor.
Olanlar, programın klavyeden Enter tuşuna basmamı bekliyor olması. Önce, program penceresini seçmeniz gerekir. Daha sonra Enter tuşuna basabilirsiniz (bunu birden fazla yapmanız gerekebilir). Bunu yaptıktan sonra, program penceresinde hiçbir şey olmamış gibi gözüküyor çünkü kontrol şimdi Code:: Blocks penceresindeki hata ayıklayıcıya geçti. Bu pencereyi tekrar seçtiğinizde, Korunan sarı ok bana Code:: Blocks'ın kontrolündüğünü bildiriyor.
Programınızı hata ayıklayıcıda çalıştırırken ve kontrol dışarıda kalırsa, klavye, klavyeden girişi bekliyor olabilir. Durum böyle olup olmadığını görmek için program penceresine geçin. Eğer öyleyse, bir şey girer girmez denetim, hata ayıklayıcıya geri dönecektir.