Home > Delphi > Başka bir bilgisayarda debug yapın!

Başka bir bilgisayarda debug yapın!

Posted on 30 Temmuz 2007 | Yorum Yapılmamış

Uzun uğraşlar vererek hazırladığınız projeniz üzerinde bir çok testler yaptınız, hataları bulup giderdiniz. Ardından programı son kullanıcıya verdiniz. Kullanıcı belli bir süre sonra size telefon açtı ve programın hata verdiğini söyledi. Siz de hatayı nasıl çıkarttığını öğrenip, aynı şeyi kendi bilgisayarınızda denediniz ama ne yazık ki sizin bilgisayarınızda böyle bir hata oluşmadı ve siz kafayı yeme hadlerine yaklaştınız.

Bu senaryo hemen hemen çoğu programıcının başına gelebilecek hadiselerden. Ve çok sinir bozucu bir durum. O an herkesin içinden, son kullanıcının bilgisayarına Delphi, C++ Builder, ya da VS’yi kurup programı orada test etmek geçer. Ama bu her zaman için müsait olmayan bir durum. Üstelik kaybolan zaman da cabası.

Bu gibi sorunların üstesinden gelebilmek için Remote Debugging denen bir sistem geliştirilmiştir. Kullanıcının bilgisayarına Remote Debugger programı kurulur ve siz kendi bilgisayarınızdan uzaktaki bilgisayara bağlanarak debug işleminizi yaparsınız. Ve hatanın ne olduğunu anlamaya çalışırsınız.

Bir çok geliştirme ortamı remote debug işlemine izin vermektedir. Bizim bu yazıda bahsedeceğimiz işlem, Delphi ve C++ Builder için olacak. Bir kaç adımda bu işlemin nasıl yapıldığını öğrenin ve yukarıdaki senaryonun aktörlerinden biri olmayın.

Uzak Bilgisayarda Yapılacak İşlemeler

İlk önce Remote Debugger’ın kurulum programına ihtiyacımız var. Delphi ya da BCB kurulum diskinizde eğer yoksa CodeGear ya da Borland’ın sitesinden bu programı edinelim. Ardından üzerinde debug yapacağımız uzak makinada şu işlemleri gerçekleştirelim:

  • Eğer uzak bilgisayar LAN üzerinde değilse, daha rahat çalışabilmek için Hamachi kurabilirsiniz. Ama zorunlu değil.
  • Uzak masaüstü bağlantısı, Vnc, DameWare ya da Radmin gibi programlar ile uzaktaki bilgisayara bağlantı kurun. Burada bu programların nasıl kurulup kullanıldığından bahsetmeyeceğim.
  • Remote Debugger’ı uzak bilgisayara kurun.
  • Ardından C:\Program Files\Remote Debugger altındaki rmtdbtXXX.exe programını çalıştıralım. Buradaki XXX, programın versiyonu olacak. Karşınıza bir dos penceresi çıkacak ve saatin yanında bir tray ikonu göreceksiniz.
  • Ardından bu bilgisayarda "DebugKullanicisi" isimli bir kullanıcı oluşturun ve şifre verin. Eğer bu kulanıcının bilgisayarı kullanan kişi tarafından görünmesini istemiyorsanız Users gurubundan kaldırırmanız gerekmekte. Bu kullanıcı sadece klasör paylaşımı için kullanılacak.
  • Uzak bilgisayarın C sürücüsünü, sadece "DebugKullanicisi"na izin vermek şartıyla paylaşıma açın. Ayrıca paylaşımı "yazılabilir" de yapın.
  • Programınızın hangi klasörde çalışacaksa oraya dosyaları kopyalayın. Mesela "C:\Program Files\ProgramAdi"
  • Programın uzak bilgisayarda çalışabilmesi için gereken veritabanı, bde, registry ayarları vs.. gibi işlemleri gerçekleştirin. Eğer programın çalışması için böyle şeylere ihtiyaç yoksa bu maddeyi atlayabilrsiniz.

Kendi Bilgisayarımızda Yapılacak Olanlar

Bu işlemlerden sonra artık uzaktaki bilgisayar debug yapılmak için hazır. Şimdi kendi bilgisayarımızda şu işlemleri gerçekleştirelim:

  • Map Netowork Drive(Ağ Sürücüsüne Bağlan) ile uzaktaki bilgisayarda paylaşıma açtığınız C sürücüsünü Z gibi bir sürücü ismine bağlayın. Kullanıcı adı ve şifre olarak uzaktaki bilgisayarda oluşturduğumuz "DebugKullanicisi"nı kullanın. Artık kendi bilgisayarımızdan "Z:\" ile uzaktaki bilgisayarın C sürücüsüne bağlanabiliyoruz.
  • Projemizi açalım ve "Project Options" ile proje özelliklerini açalım. Burada Directories kısmından Output Folder olarak Z:\ altından programın çalışacağı klasörü belirleyin. Mesela "Z:\Program Files\ProgramAdi"
  • Proje özelliklerinde Linker sekmesinde remote debugger ile ilgili kısmı seçin. RAD Studio 2007 için bu seçenek "Include remote debug symbols" şeklinde geçiyor.
  • Programınızı Shift+F9 ile bir kez derleyin böylece "Z:\Program Files\ProgramAdi" altına programın çalıştırılabilir hali oluşacaktır.
  • Şimdi remote debug işlemine başlayabiliriz. Bunun için ilk önce Run menüsünden Load Process kısmına gelelim.
  • Burada "Remote" sekmesine geçelim.
  • "Remote Path" olarak uzak masa üstündeki programın yolunu yazalım. Burada dikkat etmeniz gereken nokta buraya "Z:\" üzerindeki yolu yazmamanız gerekmekte. Uzak bilgisayarda programımıza ulaşmak için hangi yol gerekiyorsa onu yazın. Mesela bizim örneğimiz için "C:\Program Files\ProgramAdi\Program.EXE" gibi bir şey yazmanız gerekmekte.
  • "Remote Host" olarak uzak bilgisayarın IP’sini buraya yazın.
  • Eğer gerekiyorsa "Parameters" ve "Working Directory" kısımlarını da doldurun.
  • Eğer bir adım atlamadı isek "Load" düğmesine basabiliriz.

Eğer her şey yolunda gittiyse artık remote debug işlemine başladık. Uzak masaüstü bağlantısı, Vnc ya da Radmin gibi programlar ile programınızı görebelir, kullanabilir ve kendi bilgisayarınızda da debug işlemini gerçekleştirebilirsiniz. Bu arada bu işlemler, Firewall ayarları göz ardı edilerek anlatılmıştır. Gerekli port izinleri size kalmış.

Karşılaşabileceğiniz Bazı Sorunlar

Bazen remote debugger inatçılık yapabiliyor. Özellikle bazı durumlarda remote debugger kilitlenip çökebiliyor. Ve tekrar remote debugger’ı çalıştırmaya kalktığınızda çalışmadığını göreceksiniz. Çünkü arkaplanda halen çalışmakta olduğundan ikinci bir debugger açılamıyor. Görev yöneticisi ile bu işlemi sonlandırarak tekrar açmayı denemelisiniz.

Diğer sorunlardan biri de, debugger’ın breakpointleri bazen es geçmesi. Bu gibi bir durumda programı tekrar derlemeyi deneyebilir ve debugger’ı tekrar çalıştırmayı deneyebilirsiniz.

Bunun gibi sorunlarınız olduğunda ingilizceniz varsa doğrudan CodeGear ekibine newsgrouplar üzerinden danışabilirsiniz. Ya da http://www.delphiturkiye.com/forum adresinden karşılaştığınız sorunları iletebilirsiniz.

Umarım faydası olmuştur.

Hayırlı çalışmalar.

» Tags: , ,

Yorum Yapılmamış

    (Required)
    (Required, will not be published)

    Switch to our mobile site