İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır
Raşit Fidan
fidanras79@yahoo.com

Hata Ayıklama,Debug yöntemi

Köşemde bu ayki yazımda sizlere debug yönteminden, yani hata ayıklamaktan bahsedeceğim.

Pek çok programcı (belki profesyoneller de) için design edilen program derlendiğinde hata vermezken çalıştırılınca istenilen davranışları sergilemediği görülür.Bu durumun benim de başıma geldiği olur.O kadar uğraşırım ve ekranda istediğim etkinliği görmezsem deliye döner(d)im.

Bu yüzden bazen yazmak istediğim script'i bir kenara atar ve 1-2 hafta uğraşmazdım.Ta ki Zafer Teker beyefendi'den debug yöntemini öğreninceye kadar.

Nedir bu yöntem?

Bu yöntemi uzun uzadıya anlatmak yerine bir örnek verelim:

Aşağıdaki javascript örneği çok uzun olup ben kısaltmış bulunuyorum.Bu benim script'i yazarken yaşadığım gerçek bir deneyimdir.

<html>
<head>
	<title>Büyük Sayılara Virgül Koyarım</title>
	<script language="javascript">
		var numbers=new Array("0","1","2","3","4","5","6","7","8","9");
		var memory="";
		function changed(formName,inputField){
			//alert("ok");
			var display;
			var obj=eval("document."+formName+"."+inputField);
			display=obj.value;
			.
			.
			.
		}
	</script>
</head>
<body>
	<form name="myform">
		<INPUT type=text size=50 name="screen" onKeyUp="changed('myform','screen'));">
	</form>
</body>
</html>

Script'i yazıp bitirdiğimde çalışmamıştı.Sizin de gördüğünüz gibi changed() fonksiyonunun içinde yorum haline getirilmiş bir kısım var.

	//alert("ok");

Bunu sonradan ekledim.Eklememin sebebi,bu yorum haline gelmeden önce script ekranda bir alert kutusu çıkartarak script'in o kısmına erişildiğini gösterirdi.Yani script'in o kısmına kadar erişilebilir olduğunu (veya olağan çalıştığını) gösterir.Fakat ben bunu test ettiğimde ekrandan bir alert de alamadım.Yani bu demek oluyor ki scriptin o kısmına erişilmiyor.Daha öncesine bakmak lazım.Sizin de göreceğiniz gibi input elementinin içinde changed() fonksiyonu çağırılmış.Fakat orada fazladan bir ")" parantez işareti var.İşte gözden kaçan ve incelerken bir türlü farkına varılamayan bu parantez bulunuverdi.

Aynı şekilde java'da da "system.out.println()" le de aynı şeyi yapabilir ve orada da debug yöntemini uygulayabilirsiniz.

Bazen programdan istenenler alınamıyor, istenmeyen aksiyonlarla sizi deliye çeviriyor ve program sapıtıyor mu?(Motor yağı reklamı gibi oldu:-))

Hemen debug yöntemi ile program icraasında değişkenlerin aldığı değerler denetlenebiliyor(yani java'da consoldan; system.out.println() ile veya javascript'de alert ile değerler görüntülenebilir) ve sapıtmanın nerede olduğu kestirilebiliyor.Hele ki kod çok uzun ise o zaman bu iş gözün yapabileceğinin çok-çok üstündedir.

Bu durumda muhakkak ki debug yöntemi imdadımıza yetişiyor.

Aslında bu konu, yani hata ayıklama bu kadar kısa geçiştirilecek bir şey değil.Belki www.godoro.com'da bununla ilgili bir döküman da hazırlamamız mümkün olabilir.

Not:Yukarıdaki kod büyük sayıları virgülleme scriptinin bir parçasıdır.Kodun tamamını Web programlama örnekleri arasında görebilirsiniz.

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır