Holyone Yönetici
Mesaj Sayısı : 3850 Paylaşım Gücü : 9917 Rep Point : 106 Kayıt tarihi : 25/02/09 Yaş : 31
| Konu: C++ de Debugger Kullanımı C.tesi Eyl. 26, 2009 8:11 am | |
| 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. [Resimleri görebilmek için üye olun veya giriş yapın.]
Yukarıdaki kodu aynen buraya yazıyorum.
**** main() { bool durum int sifre; int deger; cout<<"Lütfen sifrenizi giriniz..."< cin>>sifre;
if (sifre == 124 ) cout<<"Sifre Dogru. Sisteme Hosgeldiniz"< durum = true; else { cout<<"Hatali sifre"< durum = false; }
return 0;
}
Şimdi bu kodlara dokundmadan derleme işlemini gerçekleştirelim.
[Resimleri görebilmek için üye olun veya giriş yapın.]
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.
[Resimleri görebilmek için üye olun veya giriş yapın.]
İlk satırdaki açılmaya tıkladık ve bizi cin>>sifre; satırına ***ü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.
[Resimleri görebilmek için üye olun veya giriş yapın.]
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.
[Resimleri görebilmek için üye olun veya giriş yapın.]
Bizi ***ü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.
[Resimleri görebilmek için üye olun veya giriş yapın.]
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.
[Resimleri görebilmek için üye olun veya giriş yapın.]
Bize hatada **** tipli bir fonksiyonun değer döndermeye çalıştığını söylüyor. Biz biliyoruz ki **** tipli bri fonksiyon değer döndermez. O halde kod düzeltelim yani return 0; satırını kaldırıp derleyelim.
[Resimleri görebilmek için üye olun veya giriş yapın.]
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.
[Resimleri görebilmek için üye olun veya giriş yapın.]
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. | |
|
PaTRoN Banned
Mesaj Sayısı : 46 Paylaşım Gücü : 48 Rep Point : 0 Kayıt tarihi : 22/05/10 Yaş : 28
| Konu: Geri: C++ de Debugger Kullanımı C.tesi Mayıs 22, 2010 7:42 am | |
| Gzl Saol Bilsemde Başka Kullanıcılara Yararı Olur SAolll | |
|
sadasdg Geliştirici
Mesaj Sayısı : 440 Paylaşım Gücü : 702 Rep Point : 4 Kayıt tarihi : 23/06/10 Yaş : 27
| Konu: Geri: C++ de Debugger Kullanımı Çarş. Ağus. 04, 2010 12:33 pm | |
| | |
|