Hızlı Konu Açma

Hızlı Konu Açmak için tıklayınız.

Son Mesajlar

Konulardaki Son Mesajlar

Reklam

Forumda Reklam Vermek İçin Bize Ulaşın

Hata Düzeltme - Debug Olayı ~ Geniş Anlatım

BOMBFACTORY

Uzman Üye
Uzman Üye
Trabzonspor
Katılım
5 Ocak 2014
Mesajlar
3,333
Tepkime puanı
6
Puanları
136
Hata Düzeltme (Debug)

HATALAR
Programcılığa ilk başladığınız zamanlarda mükemmel bir program yazarsınız son derece işlevseldir, görevini tam sizin istediğiniz gibi yerine getirir, ufak tefek eksiklikleri vardır onlarıda ilerde tamamlıycaksınızdır. Sonra programı bir arkadaşınıza gösterirsiniz veya toplu kullanıma açarsınız, ben yaptım dersiniz kendinizle gurur duyarsınız. Ama o da ne; arkadaşınız bişey yapar ve program hata verip kapanır. Bu durumla karşılaşmamak için programınız kullanılırken yapılabilecek tüm hataları görebilmeli ve buna karşı önceden önlem alabilmelisiniz, daha doğru bir tabirle saçma sapan düşünebilmelisiniz. Mesela kullanıcı bilgilerini alan bir form yapmışsınız adını, soyadını ve yaşını alıp bir veritabanına kaydediyorsunuz; herşey güzel ve basit ama bir kullanıcı geliyor sizin yaşını girmesini beklediğiniz Textbox a adını giriyor veya yazıyla otuz yazıyor ve VB önceden ayarlanmamış hatalara karşı verdiği tepkiyi veriyor, yani hatayı ayrıntılarıyla verip kapanıyor. Aslında kapsamlı bir program yazdıysanız yapılabilecek tüm hataları görmenize belkide imkan yoktur, ama programınızı sizden başkalarınında kullanabilmesini istiyorsanız hataları en aza indirmelisiniz.

Hata ÇeşitleriProgram yazarken yapılan 3 tip hata vardır.

1) Yazım Hataları:
VB çok kolay bir dil olmasına rağmen yinede programı yazarken hata yapabiliriz. Mesela "if" den sonra "end if" koymayı unutabiliriz.

2) Run-Time Hataları:
Programınız çalışırken verdiği hatalardır. Mesela Disket sürcüye bazı veriler kaydetmek istiyorsunuz ama disket sürücü bilgisayarda yok.

3) Mantıksal Hatalar:
En tehlikeli hata tipidir. Bir problemle karşılaştınız ve çözümünüde buldunuz. Ama bulduğunuz çözüm doğru değil ve siz farkında bile değilsiniz. VB herhangi bi hata vermez ama doğru çözümede ulaşamazsınız, tüm kodunuzu tekrar incelemeniz ve yeni bir çözüm üretmeniz gerekir, bunun için işlemlerinizi önceden çok iyi tasarlamalısınız.


HATA DÜZELTME
Tamam yapabileceğiniz hatalar bunlar, peki bunları nasıl düzelticez. VB, program yazarken yaptığınız hataları düzeltebilmemiz için bize birçok araç gereç sunar. Şimdi bunları inceleyip nerelerde kullanabileceğimize bakıcaz. Ama önce yapamamız gereken menüden View - ToolBars - Debug" ı işaretlemek ve Debug penceresiniz görünür hale getirmek, bu pencereyi uygun bi yere yerleştirin, hep gözünüzün önünde olsun.

Önce bu pencere üzerinde göreceklerimize ve göremeyeceklerimize topluca bir bakalım.

1) Start (F5)
2) Break (CTRL + BREAK)
3) End
4) Toggle BreakPoint (F9)
5) Step Into (F8)
6) Step Over (SHIFT + F8)
7) Step Out (CTRL + SHIFT + F8)
8) Run To Cursor (CTRL + F8)
9) Set Next Statement (CTRL + F9)
10) Show Next Statement


Yanlarında kısayollarını da verdim, zamanla zaten çok kullandıklarınızın kısayollarını öğrenirsiniz. Bunların ne işe yaradığına geçmeden önce anlamamız gereken önemli bir kavram var; oda Break Mode. Programımızı VB üzerinden denerken hata verdiğinde durup bize hata oluşan satırı sarı bir ok ve sarı bir zemin üzerinde göstermesi anıdır, bu durumda VB bize hatanın yerini gösterir ve duruma el koymamızı bekler. Türkçem veya İngilizcem yeterince iyi olmadığı için "Break Mode" u öylece bıraktım. Güzel bir türkçe karşılık düşünen olursa bana özel mesaj atsın


1) START:
Programınızı başlatır veya Break Mode a geçmiş programımızı tekrar normal çalışma moduna döndürür.

2) BREAK:
Programımızı Break Mode a alır, böylece kendimiz neler oluyor satır satır inceleyebiliriz.

3) STOP:
Programımızı durdurur yani Disegn Mode(Dizayn mod) ---nasıl çevirdim ama )--- a alır.

4) TOGGLE BREAKPOINT:
Hani kod yazarken yanlışlıkla kod yazılan yerin solundaki boşluğa mouse la dokunursunuz ,bir kırmızı nokta oluşur ve o satırın taban rengi de kırmızı olur. Evet aslında istemeden de olsa Breakpoint koymanın yöntemlerinden birini uygulamış oluyorsunuz. Diğer yöntemler F9 a basmak veya Debug penceresi üzerindeki el işaretine tıklamak. Peki bu yaptığımız ne işe yarar: Programımızı Start düğmesine basarak normal bir şekilde çalıştırdık ama herhangi bir yerde Break Mode a geçerek kodumuzun çalışmasına bakmak istiyoruz. İşte bu yerlere istediğimiz sayıda BreakPoint(Durak Noktası) koyabiliriz

5) STEP INTO:
Programımız Break Mode da çalışırken satır satır ilerlememizi ve neler oluyor iyice incelememizi sağlar. Programınızı direk olarak F8 le yani Step Into ile de çalıştırabilirsiniz. Böylece programınız hiç normal çalışma moduna geçmeden direk olarak Break Mode da çalışacaktır. Bunu Visual Basic e yeni başlayanlar için şiddetle öneririm. Çünkü Döngülerin, koşulların nasıl çalıştığını satır satır inceleme şansınız olur. Böylelikle nasıl daha iyi ve hızlı kod yazabileceğinizi görebilirsiniz. Ayrıca Break Mode da iken mouse u herhangi bir değişkenin üzerinde tutarsak onun değerini de görebiliriz.

6) STEP OVER:
Step Into nun değişik bir halidir diyebiliriz. Ama fonksiyonların ve prosedürlerin içine girip size burada neler oluyor diye göstermez, sadece fonksiyonun yaptığı işlemi yapar ve bir alt satıra geçer. Step Into ile Step Over arasındaki farkı aşağıdaki kodu formunuzun kod bölümüne yapıştırıp, bir kere Step Into ile, bir kere de Step Over la deneyin; farkı daha rahat anlayabilirsiniz, gerçi İngilizce karşılıklarından da durum anlaşılabiliyor.
Private Sub Form_Load()
Dim x As Integer, y As Integer, z As Integer
x = 5
y = 4
z = Topla(x, y)
MsgBox z
End Sub

Function Topla(a, b) As Integer
Topla = a + b
End Function



Eğer Step Into ile ilerlerseniz Toplama fonksiyonunun içine girecek ve size burada neler olup bittiğini gösterecektir, ama Step Over la ilerlerseniz bunu göremezsiniz. Bu size nerde mi lazım olur, aynı burda olduğu gibi fonksiyonun veya sub ın doğru sonuç vereceğinden eminsinizdir ve içine girip bakmaya ihtiyaç duymasınız.

7) STEP OUT:
Bu da bir yardımcıdır. Şimdi diyelim yukardaki örnekte Break Mode da F8 le yani Step Into ile ilerliyorsunuz,yanlışlıkla Topla fonksiyonunun içine de girdiniz, burası doğruydu niye girdim ben buraya dediğiniz zamanlar için yapılmıştır. Hemen Step Out a tıklarsınız ve fonksiyonun geri kalanının işleyişini görmeden bir sonraki adıma atlarsınız. Ve rahat bir nefes alırsınız çünkü yazdığınız fonksiyonlar herzaman bu kadar kısa olmaz, yüzlerce binlerce döngü içerebilir.Bunu da yukardaki örnekte deneyebilirsiniz

8) RUN TO CURSOR:
İmlecin olduğu yere git diyebiliriz. Bu da bir ihtiyaç sonucunda çıkmıştır. Diyelim ki yine Break Mode da yine F8 ile (Step Into) ilerliyorsunuz, o da ne önünüzde 100 döngülük bir kod parçası var, döngüde herhangi bir hata yok biliyorsunuz ve onun çalışmasını görmeyi kesinlikle istemiyorsunuz ama mutlaka çalışsın ve yapacağı işlemleri yapsın da istiyorsunuz. Şimdi ne olcak tek tek ilerleyerek bu işkenceye katlancakmısınız yoksa Run To Cursor u mu kullancaksınız. İmleci istediğiniz yere getirin ve Debug menüsünden Run To Cursora tıklayın yada hemencecik CTRL + F8 e basın ve istediğiniz olsun. Hem kodlarınız çalışsın hemde siz rahat edin.

9) SET NEXT STATEMENT:
Az önceki duruma dönelim Break Mode da F8 ile satır satır ilerliyorsunuz, yine karşınıza uzun bir ayı çıktı ) pardon uzun bir döngü çıktı, sizde biliyorsunuz bu döngüde bir hata yok ben bunu Run To Cursor metoduyla geçiyim diyorsunuz ve geçiyorsunuz sonra bir düşünüyorsunuz o geçtiğiniz döngüde de hata olabilir. Şimdi ne yapacaksınız herşeye yeniden mi başlıycaksınız,tabiki hayır. Hemen siz F8 ile ilerlerken sizinle beraber ilerleyen sarı ok varya, o sarı oku tutup döngünün olduğu satıra çekiyorsunuz işte bu kadar kolay F8 ile ilerlemeye döngünün üzerinden devam edebilirsiniz, aynı işlemi kodunuzda ileri satırlara gitmek için de kullanabilirsiniz. Burada unutmamanız gereken en önemli şey bu yöntemi kullandığınızda arada kalan kodlar çalıştırılmayacak, atlanacaktır.

10) SHOW NEXT STATEMENT:
Bu diğerlerine göre daha basit bir yöntemdir. Yaptığı tek şey sizi sarı okun olduğu yere götürmektir. Ne işime yarıyacak ki bu benim, ben zaten sarı oku görüyorum ) diyorsanız, bunun size sağladığı avantajı, sayfalarca kod yazıp bu kodların içinde Debug yapmaya çalıştığınız zaman daha iyi anlayabilirsiniz.

Biliyorum Debug penceresi üzerinde daha başka araçlarda var, ama yazıyı daha fazla uzatamamak için ve bu yukardakilerden biraz farklı olmaları ; mesela tıklanınca bir pencerede açılmaları gibi ; çeşitli sebeplerden dolayı onları başka bir yazıya bırakıyorum.Şimdilik bu kadar diyip kolay gelsin diyorum

Ha son bir Şey. Debug dan hataları göremeye bilirsiniz. Run>Start With Full Compile’ye yada F5 yaparak debug Yapabilirsiniz.
 

Users Who Are Viewing This Konu (Users: 0, Guests: 1)

Üst