September 09, 2009

Debug ne işe yarar ? Ne zaman kullanılması gerekir ? Nasıl kullanılır ? Örnekler... Debug konusu hakkında bunları paylaşırsanız çok iyi olur.

Örneğin :

debug(string) printf("std.string.succ.unittest\n");

Burada ne denmek istenmiş. Eğer string hatalıysa(Bu nasıl olabilir ki ? En azından neyle karşılaşırsak olur ? ) şunu yaz gibi bir şey mi diyor.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 10, 2009

Bunu anlamam biraz zaman aldı... :)

Programcılar, ileride hata ayıklama konusunda işe yarasın diye programda neler olup bittiğini gösteren mesaj satırları bırakırlar. Örnek:

log_debug("Sunucuya baglandim");

Ondan sonra, bir hata olduğunda log dosyasının (örneğin /var/log/messages) içine bakarak neler olup bittiğini görürler. Tabii ürünün normal işleyişi sırasında bu mesajların log dosyalarını doldurmaları da istenmez. O yüzden, "log düzeyi" denen bir kavram vardır. log_debug da log düzeyi eğer LOG_DEBUG veya daha önemli ise "loglar."

İşte D, buna benzer bir olanak getirmiş: Programın içine böyle mesajlar bırakabiliyoruz, ve programı belirli hata mesajlarını gösterecek şekilde derlersek, bu mesajları görüyoruz.

Örnek:

import std.stdio;

void topla(int a, int b)
{
   debug(deneme_mesajlari) writeln("topla'ya girildi");

   writeln("Toplama sonucu: ", a + b);

   debug(deneme_mesajlari) writeln("topla'dan çıkıldı");
}

void main()
{
   topla(1, 2);
}

Eğer o program dmd'nin '-debug=deneme_mesajlari' seçeneği ile derlenirse, girildi/çıkıldı mesajları da yazdırılıyor; o seçenek kullanılmazsa yazdırılmıyor...

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]