Aşağıdaki linkteki topic'de
http://www.tr-demoscene.info/showthread.php?7015-7dx-2011-Parti-Raporları&p=28599#post285997dx'de yayınlanan bir demonun bazı makinelerde sorun çıkarması konusuyla ilgili, diğer topic'in konusunu fazla dağıtmamak için bu başlığı açmayı uygun gördüm. hemen konuyla ilgili mektubumu yazayım.
sevgili demo coder arkadaşlarım, (hmm, en azından PC-Windows üzerinde demo geliştirenler :))
biliyorum demo projeleri her zaman aceleye gelir ve error log dosyası oluşturmak v.b. işler, hatta hatta bazı çağırdığınız fonksiyonlardan dönen değerleri kontrol etmek fazlasıyla külfettir. ancak bu tür durumlar için son derece basit kullanabileceğiniz bir tool mevcut.
DebugView:
http://technet.microsoft.com/en-us/sysinternals/bb896647C++ kullananlar için;
projenizde windows.h'ı include ettikten sonra şu basitçe şekilde kullanabilirsiniz.
void myWorldFirstFXFunction() {
OutputDebugString("application reached myWorldFirstFXFunction");
...
LoadTextures();
OutputDebugString("texture loading is successful");
...
}
Proje ayarlarınız unicode'a ayarlıysa buraya unicode string girebilir ya da kolayca
OutputDebugString() yerine
OutputDebugStringA() kullanabilirsiniz.
C#, C++/CLI, VB.Net gibi .NET dilleri üzerinden managed olarak benzeri fonksiyonalite kullanmak isteyenlerin işi daha da kolay.
System.Diagnostics.Debug.Write("hede");
ya da C++/CLI syntax'ı ile
System::Diagnostics::Debug::Write("hede");
doğrudan bu şekilde debug loglarını DebugView tool'u üzerinden izleyebilirsiniz.
bunun sağladığı avantaj şu ki demonun çalışmadığı makinelerde sorunun kaynağını bulmak için, sorunu yaşayan kullanıcıya 286KB'lık DebugView'ı indirtip, demoyu çalıştırmadan önce DebugView'ı çalıştırmasını rica etmeniz yeterli. demo hata verdikten sonra DebugView penceresinde CTRL+S ile kaydettiği log dosyasını size e-mail atmasını rica ederek, en azından demonun tam olarak nerede, hangi aşamada patladığını bulup, o bölümdeki olası uyumsuzluklara odaklanabilirsiniz.
bu bahsettiğim en ideal error log'u üretme / sorunları çözme yöntemi değil tabii ki. ancak bence bu tür konularda genel olarak üşengeç olan demo coderları için oldukça ideal ve pratik bir yöntem. demoyu çalıştıramayan kişinin hiçbir teknik bilgisi olmasa da, kolaylıkla DebugView'ı indirip, size bu bilgiyi hızlıca ulaştırabilir.