bylge-logo

    Bylge

    Yazılımcının Savaştaki Kalkanı: Debug ve Debugger

    Havelsan adına Hava Kuvvetleri projesinde çalıştığım süre boyunca SAP sistemlerinde en fazla yaptığım iştir Debug. Debug'sız bir süreç mühendisi ve yazılımcı dü

    Picture of the Ali Söylemez

    Ali Söylemez

    @alisoylemez

    Havelsan adına Hava Kuvvetleri projesinde çalıştığım süre boyunca SAP sistemlerinde en fazla yaptığım iştir Debug. Debug'sız bir süreç mühendisi ve yazılımcı düşünemiyorum. Debug, yazılım öğreniminde nadir olarak bahsedilse de uzmanlık isteyen ve öğrenmesi çok kolay olmayan bir yetenektir. Ne yazık ki bazı arkadaşlar bu yeteneği öğrenmek istemezler ve ya öğrenmeye değer bir şey görmezler. Ama mutlaka iyi bir yazılımcı olunmak isteniyorsa çalışan programlama ortamının debug işlemini bilinmesi gerekir. Bu giriş cümlesinden sonra isterseniz detaylı bir açıklamaya geçelim.


    Debug Nedir?

    Debug, programın çalışmasını etkileyen kök nedenleri izole etmek ve nedenlerini bulmak için yapılan bir süreç analizidir. Bazı durumlarda programlar istisnai durumlarla karşılaşabilir ve siz bu sorunu yazılmış olan üst seviye kodlardan çözemezsiniz. Sorunu anlayabilmek için daha derinlere inmek ve sorunu yerinde incelemek gerekir. Tam bu noktada debug yani Türkçe karşılığı hata ayıklama işlemine başvurmak zorundasınız. Eğer bu zamana kadar debug işlemini hiç yapmadıysanız bunu yukarıdaki cümlelerden anlamanız biraz zor olabilir, ama yazılıma başladığınız zaman daha rahat kafanızda oturur.


    Yazılımcının_Savaştaki_Kalkanı:_Debug_ve_Debugger


    Debug, her zaman yapılan bir şey değildir çünkü masraflı ve zaman alan bir iştir. Hiçbir yazılımcı tek tek kodların satır aralarında dolaşmak istemez, aslında bu iş bazı zaman samanlıkta iğne aramaktan farksızdır. Lakin, bazı sorunlarla karşılaştığınız zaman el mahkum buralara girmek zorunda kalırsınız. Bunu gerçek hayattan bir meteforla açıklamak gerekirse, biyoloji alanında kullanılan mikroskoplar gibi düşünebilirsiniz, biyolojik bakteriler gözle göremediğimiz için daha iyi incelemek ve detaylandırmak için bu aracı kullanırız. Aynı şey programlama içinde geçerlidir, kimi durumlarda bu mikroskopu(debugger) elinize alıp içeriye detaylı bir bakış yapmak zorundasınız.


    Debugger ve Debug Nasıl Yapılır?

    Debugger, İngilizce de "er" eki bildiğiniz gibi Türkçe'deki "ci, cu" eki ile aynı şekilde kullanılır. Yani hata ayıklama(debug) işlemi yaparken kullandığımız araca debugger(hata ayıklayıcı) denir. Debugger, kullanıldığı dile göre farklılar ve özellikler içerir. Hatta aynı dil içinde bile farklı debuggerlar olur ama temelde size sunmuş oldukları özellik hata ayıklama işlemini yaparken işinizi kolaylaştırmaktır. Debugger'sız debug yapılabilir mi? Böyle bir şey teknik olarak mümkün olsa bile pratikte neredeyse imkansızdır. Bu tür işlemlerde mutlaka bir debugger kullanmanız şarttır.


    Yazılımcının_Savaştaki_Kalkanı:_Debug_ve_Debugger


    Debug sadece hata alındığı zaman yapılmaz. Bazı durumlarda süreci anlamak ve gerekli olan kodlarını yerleşimini belirlemek için kullanılır. HVBS gibi büyük bir SAP projesinde çalışırken yazılımcı olmama rağmen genellikle debug'u süreçlerini nasıl yerleştirmem gerektiğini karar vermek için kullanırdım. Nasıl yani? gibi bir sorununuz olabilir. Örneğin, bu projede 20 yıl önce yazılmış kodlar ve kodlarla birlikte ilerleyen süreçler vardı ve bu süreçlerin bakımını yapan mühendisler orada bulunmuyordu. Bir programa yukarıdan bakarak her zaman ne yaptığını anlayamazsınız bunun için programa debug yaparak nasıl bir yolda ilerlediğini ve ne yaptığını anlamak için debug yapmanız gerekir. Bir anlamda size bu işin nasıl ilerlediğini gösteren bir rehberdir.


    Özetle, debug bir programcının her zaman cebinde bulundurması gereken bir isviçre çakısıdır. Bu çakıyı kullanarak duruma göre bazı sorunları kolayca halledebilirsiniz.


    Published Date:

    June 21, 2020

    Updated Date:

    December 08, 2023