Hata Ayıklama: Debugging

  • Konbuyu başlatan Konbuyu başlatan csbugra
  • Başlangıç tarihi Başlangıç tarihi
1
EXE RANK

csbugra

Fexe Kullanıcısı
Puanları 0
Çözümler 0
Katılım
17 Ağu 2009
Mesajlar
1,221
Tepkime puanı
0
Puanları
0
Yaş
34
csbugra
Hata ayıklama
virgs.gif
bir bilgisayar programında ya da elektronik donanımda hataları bulmanın
virgs.gif
kusurları düzeltmenin ve bütün bunların sayılarını en aza indirmenin yoludur. Hata ayıklama işlemi sonunda
virgs.gif
bu işi uyguladığımız yazılımın ya da donanımın istediğimiz ve beklenen şekilde çalışması gerekir. Yanlız hata ayıklama işleminin çok dikkatli yapılması gerekir; çünkü diğerleriyle sıkı ilişkilendirilmiş bir programdaki küçük bir hatayı düzeltmek
virgs.gif
diğer programda hiç beklenmedik bir hata yaratmaya sebep olabilir.

tb-bug-in-hardware.jpg
Şimdi bu terimin nasıl kullanılmaya başlandığına bir göz atalım. Aslında bu terimin ortaya çıkışı pek net olmamakla birlikte
virgs.gif
ilk olarak
virgs.gif
1945 yılında yayınlanan uçak motorunun test edilmesi konulu bir makalede kullanılmıştı. Bundan sonra Oxford'un sözlüğünde yer almaya başladı; fakat o zamanlar daha bilgisayar terimi olarak kullanılmıyordu. Nitekim bilgisayarlar onlarla ilgili özel terimler kullanılmaya başlanacak kadar yaygın değillerdi. 1950'lerin başında bu terim ilk kez bir yazılımdaki hatayı düzeltme anlamında kullanıldı. Ve bu ilk diğer ilklerden biraz daha farklıydı
smiley.gif
Bu farkı kılan hikaye ise şöyle: Elektromekanik bilgisayarı için 1950'li yıllarda program geliştiren Grace Hopper isimli ünlü kadın programcı
virgs.gif
hatalı çalışan programındaki problemi bir türlü bulamıyormuş. Uzun aramalar sonucunda
virgs.gif
bilgisayarın röleleri arasında sıkışmış kalmış bir böcek ölüsünün bütün sorunların kaynağı olduğu anlaşılmış. Böylece bug kelimesi bilgisayar bilimine girmiş. Bundan sonra 1952'de yayımlanan ACM (Association for Computing Machinery)'nin üç makalesinde hata ayıklama terimi bilgisayar bilimine uygun kullanıldı. 1963'ten sonra daha da yaygın olmaya başladı. Hatta bu terim CTSS (Compatible Time-Sharing System)'nin el kitabında açıklama yapılmadan yer aldı. O zamandan beri de şu an kullandığımız haliyle bilgisayar biliminde yer almaya başladı.
Böcek temizlemenin tarihsel ve etimolojik anlamını inceledik
virgs.gif
gelin şimdi hata ayıklamanın yöntemine bakalım. Hata ayıklama genel olarak karmaşık ve bir o kadar da yorucu bir iş. Fakat
virgs.gif
bir programdaki hataları düzeltmek için harcadığımız efor
virgs.gif
kullandığımız programlama diline göre değişiyor. Her dilin kendine özgü hata ayıklama programları var. Bu programlar bizim programın gidişatına göz atabilmemizi
virgs.gif
istediğimiz yerde durdurup tekrar çalıştırabilmemizi
virgs.gif
programa durma noktaları koyabilmemizi
virgs.gif
değişkenlerin değerleriyle oynayabilmemizi sağlıyor. Örneğin
virgs.gif
Java gibi üst seviye bir dilde hata ayıklamak; kural dışı durumları yakalama ve o durumda ne yapacağını bilme özelliği (exception handling) nedeniyle daha kolayken
virgs.gif
C yada Assembly gibi daha eski dillerde hata ayıklama programları bazen bilgisayar hafızasındaki veri kaybına bile neden olabiliyor. Bu yüzden yapmamız gereken işlemleri iyi bilmemiz ve dikkatli olmamız gerekiyor. Yani başka bir deyişle
virgs.gif
hata ayıklama işlemini kendimiz yapabilmek için birtakım aşamaları gerçekleştirmeye ihtiyacımız var. Genelleştirilmiş olarak bu aşamalar
virgs.gif


tb-no-bug.jpg
  • Hatayı tanımlamak
  • Hatayı tekrarlamak
  • Hatayı anlamak
  • Hatayı düzeltmektir.
Şimdi bütün aşamaları kısa kısa inceleyelim. İlk aşama hatayı tanımlama aşamasıdır. Kullanacağımız programın ya da elektronik donanımın doğru olarak nasıl çalışması gerektiğini düşünürüz. Çalıştırdıktan sonra eğer işler beklenen şekilde yürümüyorsa
virgs.gif
bir problemimiz var demektir. Bu aşamada hatayı bulup
virgs.gif
ne olduğunu teşhis etmemiz gerekir. İkinci aşamamız hatayı tekrarlamadır. Yani bulduğumuz hatayı kendimiz normal çalışan ortamlarda yaratmalıyız. Bu aşama hataya sebep olan şeyleri daha rahat analiz edebilmemiz açısından çok önemlidir. Yani
virgs.gif
artık hataya giden aşamaları kendimiz rahatlıkla bulabiliriz. Kendimiz üretebildiğimiz bir şeyi düzeltmemiz
virgs.gif
tabi ki daha kolaydır. Şimdi sırada hatayı anlama kısmı var. İlk iki aşamadan sonra hatayı iyice öğrenmiş olduk. Bundan sonra hatayı nerede aramamız gerektiğini de biliyoruz. Nereden kaynaklandığını düşünüyorsak
virgs.gif
yazılımın ya da donanımın içinde hatayı bulmamız gerekir. Son olarak tek yapmamız gereken şey hatayı düzeltmektir. Artık hatanın yerini
virgs.gif
hataya neyin sebep olduğunu bildiğimize göre; düzeltmek çok da zor olmamalıdır. Bütün bu aşamaları izlediğimizde hata ayıklama işlemini tamamlamış oluruz.
Peki hata ayıklama işlemi bize yazılım ve donanım geliştirmenin hangi aşamalarında yardımcı olur? Tek seferde hatasız olarak kod yazmamız
virgs.gif
yazılım geliştirmemiz çok da kolay değildir. Mutlaka birtakım problemlerle karşılaşırız. Hataları ayıklama yöntemini kullanarak işimizi daha hızlı bir şekilde bitirebiliriz. Çünkü
virgs.gif
yukarıda da bahsettiğim gibi hemen hemen her programlama diline uygun hata ayıklama programları var. Hata ayıklama işlemi için özelleşmiş bu programları kullanarak bu aşamaları çok daha hızlı ve emin adımlarla da yerine getirebiliriz. Bu programlar içinden en yaygın kullanılanı GDB (GNU Project Debugger) olup
virgs.gif
bu programın kullanımı hakkında ayrıntılı bilgiyi Ekim 2007 sayımızdaki GDByazımızda bulabilirsiniz. Uzun uzun kodlar içine gömülmektense
virgs.gif
hata ayıklama yöntemiyle direk hatanın olduğu yeri tespit edebiliriz. Bu da bize hem kolaylık sağlar
virgs.gif
hem de zamandan tasarruf etmemize yardımcı olur. Ayrıca
virgs.gif
düzeltene kadar izlediğimiz aşamalar da yaptığımız işi daha iyi irdelememizi sağlar. Böylece hata sayısını azaltmak ve hata oluştuğunda müdahale edebilmek için gerekli alt yapıyı hazırlamak
virgs.gif
yazılım geliştirme aşamasında uygulamamızı daha başarılı kılmakla beraber
virgs.gif
yazılım uzmanlığı konusunda deneyimimizi de arttırır.
Kaynaklar:
 
Geri
Üst