hoSSohbeT.com  Sohbet  forumlari

Anasayfa Bugünki Mesajlar Forumları Okundu Kabul Et
Geri git   hoSSohbeT.com Sohbet forumlari > Bilgisayar ve İnternet Dünyası > Bilgisayar - İnternet > Bilgisayar Dünyası > Programlama > C ve C++
Kayıt ol Yardım Sohbet Gazete oku Diyetsaglik Üye Listesi Ajanda Arama Bugünki Mesajlar Forumları Okundu Kabul Et



Cevapla
 
LinkBack Seçenekler Stil
Alt 03-09-08, 23:37   #1
Dokunma Yanarsın
 
aLayıNaiSyaN - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: 04-02-08
Nerden: . . .
Mesajlar: 1,981
Tecrübe Puanı: 496 aLayıNaiSyaN 1000 aLayıNaiSyaN 1000 aLayıNaiSyaN 1000 aLayıNaiSyaN 1000 aLayıNaiSyaN 1000 aLayıNaiSyaN 1000 aLayıNaiSyaN 1000 aLayıNaiSyaN 1000 aLayıNaiSyaN 1000 aLayıNaiSyaN 1000 aLayıNaiSyaN 1000
Visual C++ de Debugger Kullanımı

Visual C++ Derleyicisinde Debugger Nasıl Kullanılır?
Bugün yeni bir konu ile karşınızdayım. Fonksiyon yazımı ile ilgili derslere baslayacagımız icin ek olarak böyle bir konu anlatmayı uygun gördüm. Çünkü derleyicide debuger (hata ayıklayıcı) kullanımını iyi bilmek sorunları daha hızlı çözmeye yarar sağlar. O yüzden burada tek dersten oluşan Visual C++ Debugger Kullanımı Hakkında Bilgi Vermek İstiyorum. Derleyicilerde Debugger kodunuzda yolunda gitmeyen durumları size bildirmek için kullanılan bir uygulamadır. Yaptığınız sözdizimi hataları veya uyarılar. Projenizi Build ederken kontrol edilir ve eğer ki bir yanlışlık varsa debugger penceresine bunu yazar. Siz de buradaki hata açıklamalarını görerek nerde hata var bunu görüp gerekli düzeltmeleri yapabilirsiniz. Bir çok arkadaş bir yerden misal bir kod alıyor ve akabinde şöyle bir soru soruyor. Ben bu kodu derlemeye çalıştım ama bissürü hata verdi? Gibisinden sözlere cok şahit oldum. Ve bunun olmaması için böyle bir yazı yazma gereği duydum. Şimdi bir kod örmeği yazalım ve bunun neresinde hata var uyarı var debugger kullanarak görelim.






Yukarıdaki kodu aynen buraya yazıyorum.

void main()
{
bool durum
int sifre;
int deger;
cout<<"Lütfen sifrenizi giriniz..."<<endl;
cin>>sifre;

if (sifre == 124 )
cout<<"Sifre Dogru. Sisteme Hosgeldiniz"<<endl;
durum = true;
else
{
cout<<"Hatali sifre"<<endl;
durum = false;
}

return 0;

}

Şimdi bu kodlara dokundmadan derleme işlemini gerçekleştirelim.



Bakın bi dünya hata ve uyarı var. Şimdi bunların kaynağı neresi bunları tek tek bulalım. Hata kaynağını bulmak için description yani açıklamanın üstüne çift tıklayın hatanın kaynaklandığı yeri derleyici bize gösterecek. Resimde de görelim.



İlk satırdaki açılmaya tıkladık ve bizi cin>>sifre; satırına götürdü. Hatanın descriptionuna baktığımızda bize cin ifadesinin porgram kodlarında deklare edilmediğini söylüyor. Aceba bu nedemek?. Bu şu demek oluyor. Biz cin ifadesinin tanımlı olduğu header dosyasını include etmemişiz. Bunu declare etmemiz lazım. Bunu koda deklare edip tekrar bir projeyi build edelim.



Cin in bulunduğu header dosyasını include ettik. Ve tekrardan build dedik. Ama hata ve uyarılar bitmedi. Ama yukardaki şekilde de görüldüğü gibi hatalar bitmemiş. Şimdi yine ilk sıradaki satıra çift tıklayalım. Ve hata nerdeymiş görelim.



Bizi götürdüğü yer int sifre; satırı ama biz bakıyoruz bakıyoruz. Satırda hata yok. Peki neden burayı işaret etti. Açıklamada bize syntax hatası verdi. Ve kodun ; (noktalı virgül) ile devam etmesini söyledi. Burada eğer gösterilen satırda hata yoksa hatayı bu satırdan önceki satırda arayacağız. Derleyici bazen örnekte de olduğu gibi hata yerini tam işaret etmedi bu da biraz sizi düşünmeye zorluyor. Satırdan önceki satıra baktığımızda bool durum ifadesinde ; (noktalı virgül) ün kullanılmadığı görülüyor. Demekki hatayı burada yapmışız. Hemen noktalı virgülü ekleyelim ve projeyi tekrar derleyelim.



Derleme yapılırken yine bir hata karşımıza çıktı. O da if else bloğunun doğru kullanılmadığı ile ilgili. Aceba nerde hatamız var. Şunu bildiğimizi varsayarsak. İf den sonra gelen birden fazla komut {} blokları arasında olmalıdır. Biz koda bakıyoruz ve if den sonraki iki satırın {} bloları arasında olmadığını görüyoruz. Hemen ilgili düzeltmeleri yapıyoruz ve tekrardan bir derleme daha yapıyoruz. Ama aiağıdaki gibi bir hata daha var.




Bize hatada void tipli bir fonksiyonun değer döndermeye çalıştığını söylüyor. Biz biliyoruz ki void tipli bri fonksiyon değer döndermez. O halde kod düzeltelim yani return 0; satırını kaldırıp derleyelim.



Evet kodumuz başarılı bir şekilde derlendi. Yani temiz bir koda sahip olduk. Ama baktım da uyarı demişim ama uyarıya ait bir şekilde kodu yazmamışım onu bari şimdi yapalım temzi kodumuzu şu şekilde değiştiriyorum.




Bu değişikliği yapıp derliyoruz. Karşımıza debugger penceresi çıktı. Bu uyarılar programın derlenmesine engel değildir. Sadece sizi uyarma mahiyetindedir. Burada bizi şu şekilde uyardı. Deger ve oylesine isimli değişkenler tanımlanmış fakat programda bir Allah’ın kulu gelip de bunu kullanmamış. Siz bunu isterseniz kaldırabilirsiniz. İsterseniz de öylece durabilir. Bir zararı yok. Daha örnek verecek olursak int tipinde fonksyionu tanımlayıp değer döndermediğimiz zaman da uyarı alabiliriz. C++ a ait bir anahtar sözcüğü değişken olarak tanımlamışsak haa alabiliriz misal.

int for; veya int break; gibi gerçi syntax renkelndirmesi sayesinde bu gibi hatalara düşmek biraz zor ama olsun.

Bu konuda buraya kadar. Eğer anlamadığınız yerler olursa çekinmeden sorabilirsiniz. Yayınladığım fonksyonlarla ilgili konularda da anlamadığınız noktaları sorabilirsiniz. Şimdilik bu kadar tekrar görüşmek üzere.
__________________
aLL Hope iS Gone

aLayıNaiSyaN isimli Üye şimdilik offline konumundadır  
Digg this Post!Bookmark Post in Technorati
Alıntı ile Cevapla
Cevapla

  • Submit Thread to Digg Digg
  • Submit Thread to del.icio.us del.icio.us
  • Submit Thread to StumbleUpon StumbleUpon
  • Submit Thread to Google Google
  • Bookmarks

    Seçenekler
    Stil

    Yetkileriniz
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is Açık
    Smileler Açık
    [IMG] Kodları Açık
    HTML-KodlarıKapalı
    Trackbacks are Açık
    Pingbacks are Açık
    Refbacks are Açık



    Bütün Zaman Ayarları WEZ olarak düzenlenmiştir. Şu Anki Saat: 13:22 .


    Powered by vBulletin Version 3.8.7
    Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
    Search Engine Friendly URLs by vBSEO 3.5.0 RC2
    Sohbet ve Sohbet odalari sitesi

    Sohbet Chat Forum Oyunlar1