Debug Bilgilerini Kapatmak

hasanmacit

dc: hasanmacit
Site yetkilisi
Moderatör
Premium Üye
Geliştirici
Yardımsever Üye
Mesaj
2.998
Çözümler
95
Beğeni
2.250
Puan
1.840
Ticaret Puanı
2
Konu kadim dostum S ve J den alıntıdır. (ulaş bu forumda hesabın yok olsaydı etiketlerdim knk)

Merhaba arkadaşlar, bugün cncn_m2 projesini paylaştığımdan beri sürekli olarak "Bu yazıları nasıl kapatıyoruz" şeklinde mesajlar alıyordum. Hızlı şekilde cevap veriyordum, konu olarak açmak daha iyi olacağını düşündüm. Yazılardan kastımızı aşağıdaki resimden anlayabilirsiniz.

0906_122015.jpg


Birçok kişinin yaptığı hata bu kısmı kapatmak için python scripti üzerinde düzenleme yapmak. Önce bana göre hatalı olan yöntemden bahsedeyim.


root/game.py dosyasını açıp, aşağıdaki kodu buluyoruz.:

Python:
if self.isShowDebugInfo:
self.UpdateDebugInfo()

Yorum satırı haline getiriyoruz ya da siliyoruz.:
Python:
#if self.isShowDebugInfo:
#self.UpdateDebugInfo()

Peki düzgün şekilde nasıl yapacağız. Userinterface.cpp dosyasında debug parametresini düzenleyeceğiz. Kendi projemden örnek vereceğim.

C++:
C++:
#ifdef _DISTRIBUTE
stRegisterDebugFlag ="__DEBUG__ = 0";
#else
stRegisterDebugFlag ="__DEBUG__ = 1";
#endif


Orjinal mainline kodlarında bu şekilde, Anlamı _DISTRIBUTE olarak derleniyorsa 0 aksi taktirde 1. Bende cncn_m2 projesini release olarak derlediğimden burası 1 oluyor ve bu sebeple client içinde debug bilgileri gözüküyor. Aşağıdaki gibi yaparak üstünkörü bir çözüm elde edebiliriz.

C++:
C++:
#ifdef _DISTRIBUTE
stRegisterDebugFlag ="__DEBUG__ = 0";
#else
stRegisterDebugFlag ="__DEBUG__ = 0";
#endif

Elbette bu geçici bir çözüm. Şu şekilde düzenlersek daha iyi olur.

C++:
C++:
#ifdef _DEBUG
stRegisterDebugFlag ="__DEBUG__ = 1";
#else
stRegisterDebugFlag ="__DEBUG__ = 0";
#endif

Burada şu şekilde ayarlamış oluyoruz. Debug olarak derleniyorsa 1 aksi taktirde 0.

// SF'ye baktığımızda aşağıdaki gibi bir yapı görüyoruz.
C++:
C++:
#ifdef NDEBUG // @warme601 _DISTRIBUTE -> NDEBUG
PyModule_AddIntConstant(builtins, "__DEBUG__", 0);
#else
PyModule_AddIntConstant(builtins, "__DEBUG__", 1);
#endif

Burada zaten bu kısımdaki mantık hatası düzeltilmiş, debug modu dışında derlendiğinde 0, debug olarak derlendiğinde 1 oluyor. Yani değişiklik yapmaya gerek yok. NDEBUG not debug anlamına yani debug değil, anlamına gelmekte biraz daha ileri ve doğru bir kullanım. Sadece örnek olması açısından ekledim.


0906_132524.jpg




Ve pufff, yazılar gitti.
Bir sonraki öğretici konuda görüşmek üzere... Saygılar, sevgiler...​
 
En son bir moderatör tarafından düzenlenmiş:
açtığın bir metin2 konusu hasan konunu oku istersen
forumlardaki aktifliğimi devam ettirmem ya da ARKADAŞLARIMIN BAŞKA FORUMDAKİ KONULARINI BU FORUMA AÇMAM metin2 server fileslerle uğraştığım ya da herhangi bir faaliyet yürüttüğüm anlamına gelmez. ben metin2yi bıraktım forumu değil. sevgilerle.
 
cncn_m2 dosyaları elinde olan var mı bir türlü bulamadım. Github reposu kaldırılmış.
 
Geri
Üst