Bodyguardd 1
Bodyguardd
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
BySadoTR60 1
BySadoTR60
berzahx 1
berzahx
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Best Studio 1
Best Studio
Cancan.1234 1
Cancan.1234
romegames 1
romegames
Reklam vermek için turkmmo@gmail.com

Debug Bilgilerini Kapatmak

  • Konuyu başlatan Konuyu başlatan CNCN
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 9
  • Görüntüleme Görüntüleme 2K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Türkiye'nin ilk Cross-Platform OldSchool MOBİL & PC 1-99 Sunucusu Lamira2 6 Kasım'da Açılıyor! Büyük Açılışı Kaçırma HEMEN TIKLA!

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.


[CODE lang="python" title="root/game.py dosyasını açıp, aşağıdaki kodu buluyoruz."] if self.isShowDebugInfo:
self.UpdateDebugInfo()[/CODE]

[CODE lang="python" title="Yorum satırı haline getiriyoruz ya da siliyoruz."] # if self.isShowDebugInfo:
# self.UpdateDebugInfo()[/CODE]


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

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++:
#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++:
#ifdef _DEBUG
        stRegisterDebugFlag ="__DEBUG__ = 1";
#else
        stRegisterDebugFlag ="__DEBUG__ = 0";
#endif

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

Turkmmo SF'ye baktığımızda aşağıdaki gibi bir yapı görüyoruz.
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...
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst