Merhaba ve tekrar hoş geldiniz.
Bu derste, hata ayıklayıcıyı nasıl kullanabileceğinizi göstermek istiyorum.
Bu yüzden grafiksel kullanıcı arayüzünü incelemek, bir programı hata ayıklama modunda nasıl başlatabileceğinizi, kesme noktalarını
nasıl ayarlayabileceğinizi, çağrı yığınına nasıl bakabileceğinizi ve izleme penceresini kullanarak farklı değişkenleri nasıl görüntüleyebileceğinizi
göstermek istiyorum.
Sadece bir ortalama belirleyen basit bir program.
Bunu gösteri olarak kullanacağım.
Tek yaptığı üç tamsayıyı okuyup saklamak ve ardından ortalamalarını hesaplamaktır.
Şimdi, hata ayıklayıcıyı kullanmadan önce bahsetmek istediğim bir şey var, yapılandırmanızın doğru
şekilde kurulduğundan emin olmalısınız.
Bu konudan daha önceki bir videoda bahsetmiştim, temel olarak hata ayıklayıcıyı kullanmak için kod ışığını yapılandırmak.
Ancak hafızanızı tazelemek için buradan projeyi seçebilir, sağ tıklayabilir ve ayarlara gidebilirsiniz.
Hangi platformda olduğunuza bağlı olarak, sol taraftaki hata ayıklayıcı ayarlarının
GDB'ye giden doğru yola sahip olduğundan emin olmak istersiniz.
Eğer Windows kullanıyorsanız, bu Cygwin'den GDB X kullanmanızı gerektirebilir ya da MinGW w64'ü kullanabilirsiniz.
Unix ve Linux kullanıyorsanız, bu yolun ayarlanması bile gerekmez.
Diğer önemli şey ise derleyici seçeneklerinde hata ayıklama için derleme yaptığınızdan emin
olmak istemenizdir, böylece Dash G dwarf optimizasyon için dash o üzerinde olur.
Yine, Windows'ta, yürütülebilir dosyanızla birlikte hata ayıklama bilgilerine sahip olmak için bu şeylerin ayarlanması
gerekir.
Ayrıca hata ayıklama modu için derleme yaptığınızdan da emin olmalısınız.
Bu yüzden hata ayıklamanın seçili olduğundan ve serbest bırakmanın seçili olmadığından emin olmalısınız.
Tüm bunları doğru bir şekilde yapılandırdıktan sonra, hata ayıklayıcıyı ve kod ışığını kullanabilmeniz
gerekir.
Bununla ilgili herhangi bir sorun yaşarsanız, lütfen platformunuzda yapılandırma için videoma geri dönün.
Hata Ayıklayıcı ve Kod Işığı.
Hata ayıklayıcı ile ilgili en önemli kavram kesme noktası fikridir.
Dolayısıyla kesme noktası, programınızda kodunuzun yürütülmesini durduracak şekilde ayarlayabileceğiniz
bir şeydir.
Esasen, Hey, bu satırda durmak istiyorum diyebilirsiniz ve hata ayıklayıcıyı çalıştırdığınızda programınız
bu satırda duracaktır Bu, değişkenlere, değişkenlerin değerlerine bakmanıza olanak tanır.
Kodunuzda her seferinde bir satır ilerleyerek olabilecek sorunları teşhis etmeye ve düzeltmeye çalışmanıza olanak
tanır.
Normalde, programınızı çalıştırdığınızda, hata ayıklayıcıda çalıştırmaya çalışırsanız ve bir kesme noktası ayarlamadıysanız,
hiçbir şey olmayacaktır.
Yani normalde inşa ettiğinizde, bilirsiniz, gidebilirsiniz ve projenizi diğer herhangi bir
proje gibi inşa edebilirsiniz, inşa etmeye gidin, proje inşa etmeye gidin.
Derlediğinizde ve hata ayıklama modunda çalıştırdığınızda, hata ayıklayıcı menü seçeneğine gitmeniz ve başlat, hata ayıklayıcıya
devam et seçeneğine gitmeniz gerekir.
Ve bunu tekrar yürüttüğünüzde, bir kesme noktası ayarladıysanız, ona çarpacaktır.
Eğer bir kesme noktası ayarlamadıysanız, sadece çalışacaktır.
Eğer bu programı hata ayıklama modunda çalıştırmayı denersek, karşımıza çıkar ve enter tuşuna basmamızı ister
çünkü tam sayıların olduğu yerde durur ve siz de birkaç sayıya basarsınız ve program kapanır.
Aslında bilgilerin çıktısını bile almıyor, değil mi?
Bu nedenle, hata ayıklayıcıyı kullanmak istiyorsanız en az bir kesme noktası belirlemiş olmanız çok önemlidir.
Bir kesme noktası belirlemenin en kolay yolu, kesme noktasını belirlemek istediğiniz satır numarasındaki satır numaralarının kenar boşluğunun
içine tıklamaktır.
Ve yine, bir kesme noktası yürütmeyi o satır numarasında durduracaktır.
Yani onuncu satırdaki printf fonksiyonunun hemen yanında bir kesme noktası belirlersek, sadece çift tıklarız, kırmızı bir dairenin
yerleştirildiğini göreceksiniz.
Bu, hata ayıklayıcıya onuncu satırda durmasını söylüyor.
Yine, hata ayıklayıcıyı başlatmanın yolu, hata ayıklayıcıya gitmek ve başlat, devam et demek, değil
mi?
Diğer her şey gri renkte, değil mi?
O halde sadece o kesme noktasına ulaşmak için hata ayıklayıcıyı başlatalım.
Şimdi hata ayıklayıcıya devam etmeye başlayalım ve build and debug diyelim ve programın
onuncu satırda durduğunu fark edeceksiniz.
Yeşil oku görüyorsunuz, ayrıca hata ayıklayıcı bölmesinin açıldığını da görüyorsunuz.
Bu nedenle, görünüme giderseniz, hata ayıklayıcı bölmesini manuel olarak açabilirsiniz veya hata ayıklama
moduna geçtiğinizde otomatik olarak gelebilir ve hata ayıklayıcı bölmesinde görülebilecek bilgiler için birçok farklı sekme vardır.
GDB pencerelerine gittiğiniz hata ayıklayıcı aracılığıyla da inceleyebilirsiniz, kontrol edilenlerin tümünü
görebilirsiniz.
Bakabileceğiniz birçok hata ayıklayıcı penceresi vardır.
Yani yerel halk genellikle yerel değişken saatlerinizle ilgilidir.
Bir değişkene bir saat koyabilirsiniz, böylece değişken değişirse ortaya çıkar.
Çıktı, farklı hata ayıklama seçenekleri ve çıktı iş parçacıkları için kullanım içindir.
Aslında programınızı çalıştıran iş parçacıklarına bakabilirsiniz.
Daha gelişmiş konsept Callstack, odaklandığımız şeydir.
Temel olarak çağrı yığınına ve yerellere bakarız.
Bunlar, hata ayıklama konusunda size yardımcı olan en önemli iki tanesidir ve daha sonra bellek ve ayrıca kesme noktaları.
Kesme noktalarının nerede ayarlandığını görebilirsiniz.
Yani birçok farklı seçenek.
Şu anda onuncu hatta durmuş durumdayız.
Çağrı yığınına bakabiliriz.
Çağrı yığını bize ana fonksiyonun çağrıldığını gösterir.
Yerellere bakarsak, bize sıfır bir ve sıfır olmak üzere üç değişken gösterir.
Aslında bunlara herhangi bir bilgi girmedik, sıfır bir ve sıfır olarak başlatıldı.
Saat aslında ekleyebileceğiniz bir şey.
Belirli bir değişkene izleme eklemek için artı işaretine basarak ekleyin.
Dikkat edilmesi gereken bir diğer önemli nokta da hata ayıklama modunda çalıştırdığınızda, artık hata ayıklayıcı için
araç çubuğuna sahip olmanızdır, değil mi?
Oynat düğmesi sadece devam edecektir.
Öyle olacak.
Oynat tuşuna basarsam programdan çıkar, değil mi?
Çalışmaya başlayacaktır.
Program aslında girdi isteyecektir.
Ben de oynat tuşuna bastım.
Konsol uygulamasına geri dönüyorum ve Enter diyor.
Böylece program çalışmalarında üç sayıma ulaştım.
O zaman hala yazdırma işlevini görmediniz.
Pencere gitti.
Yine hata ayıklama modunda çalıştırıyoruz ve yine kesme noktasına gidiyor, hata ayıklayıcı bölmesi geliyor, onuncu satırı
durduruyor.
Şimdi araç çubuğu önemlidir çünkü kodunuzda gerçekten bu şekilde adım atabilirsiniz ve aslında
araç çubuğunu kullanabilir veya hata ayıklayıcıya gidebilir ve buradaki tüm seçeneklere bakabilirsiniz.
Böylece step into step into instruction next, next instruction, step out, step into bir fonksiyonun içine girecek
diyebilirsiniz.
Eğer bu satırda bir fonksiyon çağrılıyorsa, komuta girme adımı daha çok assembly dili tipindeki şeylere
gider.
Daha sonra, bu kod satırının üzerinden atlayacağız.
Boyun talimatı da aynı şey sayılır.
Dışarı çıkın, zaten bir işlevin içindeyseniz o işlevden çıkmaya ve havuç hattına atlamaya çalışır.
Aslında sanırım imlece gidiyor.
Aynı şey havuç hattına koşmak için de geçerli.
Kesme noktalarını açıp kapatabilir, hepsini devre dışı bırakabilir, tüm bu şeylere menüden erişebilirsiniz.
Ya da yine, araç çubuğu.
Genellikle araç çubuğunu kullanıyorum çünkü zaten açık.
Ve sonra tekrar farklı pencerelere bakarsanız, yerel çağrı yığını ve kesme noktaları.
Gerçekten önemli olanlar.
Bu, onuncu satırda bir kesme noktam olduğunu söylüyor.
Ve sonra sanırım biri sadece imleci söylüyor.
Şimdi onuncu satırdaki print F enter'da durdum.
Bir sonraki talimata geçebilirim ve bu 11. satır taramasına gidecektir.
F aslında girdi isteyen bir engelleme fonksiyonudur.
Yani bir sonraki adıma geçmeye çalıştığımda, aslında duraklıyor.
Aslında birden fazla kez ileri tuşuna basmanız gerekebilir.
Genellikle program girdi istediğinde ve ben bunu istediğimde yaptığım şey, zaten engellendi, zaten durdu ve bir
sonrakine geçmesini istiyorum.
Bir sonraki satıra bir kesme noktası koyacağım ve oynat düğmesine basacağım.
Şimdi oynat düğmesine basıyorum ve hiçbir şey olmuyor çünkü giriş bekliyor.
Programda Enter yazıyor.
Yani burada beş, altı, yediye basabilirim, enter düğmesine basabilirim ve şimdi kırılma noktama ulaşır.
Şimdi yazdırma işlevine geçebileceğimiz yazdırma düğmesine geldik.
Ve aslında ilk olarak ortalama fonksiyonuna atlayacaktır.
Eğer adım at dersek, ortalama fonksiyonuna gittiğimizi görürüz.
Değişkenlerinize baktığınızda, değişkenlerinizin değiştiğini görebilirsiniz.
Yani bir sonraki satıra geçerseniz, 27'deki bir sonraki satıra, ardından 28'e geçersiniz ve vurmaya devam edersiniz.
Sonra, aslında dışarı atlıyorsunuz ve aslında fonksiyonun sonundasınız.
Böylece oynat düğmesine basabilir ve programınızın tamamlandığını ve pencerenin kaybolduğunu görebilirsiniz.
Ama değişkenlerinize bakabilirsiniz, diğer her şeye bakabilirsiniz.
Ve yine burada yazdırma işlevinin içine bir kesme noktası da koyabilirsiniz.
Ve eğer bunu çalıştırırsak, print fonksiyonunun ortalama yerine yürütmeyi durduracağını tekrar görebiliriz.
Ve sonra, eğer adım atarsak ve uygulamaya gidersek, gerçekte neler olup bittiğini
görebiliriz, bilgilerin yazdırıldığını görebilirsiniz.
Değil mi?
Devam ettiğinizde, sonuna kadar koştuğunuzda, return deyimini alırsınız ve programdan çıkarsınız.
Bu nedenle, programın çıktısını görmek istiyorsanız, bu dönüşten önce bir kesme noktası
yerleştirmeniz ve devam etmeniz gerekmemesi önemlidir.
Bu kırmızı dikdörtgene basarak hata ayıklayıcıyı durdurabilir, iki paralel çubuğa basarak hata ayıklayıcıyı duraklatabilir,
bu seçenek ve çağrı yığını ile hata ayıklayıcıyı yeniden başlatabilirsiniz.
Yine, bir fonksiyonun içine girip hata ayıklayıcıyı çalıştırırsanız burada görmek daha kolaydır, hata ayıklayıcıyı tekrar çalıştıracağız.
Hata ayıklayıcı de, başla, devam et.
Bir fonksiyonun içine bilgi girdikten sonra o kesme noktasına geldiğimizde, araç yığınının daha önce gösterdiğimiz
gibi main ve print'e sahip olduğunu göreceksiniz.
Böylece, çok sayıda işlevi olan bir programda çağrılan son işlevi görebilirsiniz, çağrı
yığını bundan çok daha büyük olabilir.
Önemli olabilecek diğer tek şey kesme noktalarıdır.
Hangi kesme noktalarını ayarladığınızı görmek istiyorsanız, size tüm kesme noktalarını ve bunların bulunduğu tüm programınızı
gösterecektir.
Ancak bununla oynamanız, aşina olmanız, rahat etmeniz ve temel hata ayıklama teknikleri veya programlarıyla
çözemediğiniz sorunlar için oldukça sık kullanmanız gerekecektir.
Crash satır satır gidiyor.
Satır satır ilerlediğinizde, programın çöktüğünde çıktığını görebilirsiniz ve bunun hangi
satırda gerçekleştiğini bilirsiniz.
Yine, bu küçük bir programdır, ancak hata ayıklamanın nasıl çalıştığına dair temel anlayışı edinmelisiniz.
Tekrar, umarım bu yardımcı olmuştur.
Bu tür şeyleri öğrenmenin en iyi yolu, onlarla oynamaya ve kullanmaya başlamaktır.
Önceki mücadelenizde üzerinde çalıştığınız programlardan birini gündeme getirin.
Bir kırılma noktası ekleyin, çok basit.
Kırılma noktaları eklemek için şeyin içine tıklamanız yeterlidir.
Hata ayıklama modunda başlatın ve her satırda adım adım ilerleyerek değişkenlerin nasıl değiştiğini ve çağrı yığınının
nasıl arttığını görün.
Eğer daha büyük fonksiyonlarınız varsa.
Teşekkür ederim.