Python pdb ve Python Debugging

Debug Nedir?

Debug hata ayıklama olarak bilinir ve genelde ortaya çıkan bug’larin nerelerden kaynaklandığını bulmak için kullanılır. Fakat Debugging geliştirme yaparken de çok fazla fayda sağlamaktadır.

Buna örnek olarak oluşturulan class’in içinde o anda neler olduğunu ve nelerin doldurulup nelerin bos kaldığını görebilirisiniz.

Python PDB Debug

Python pdb, built_in gelen ve runtime’da debug yapabilmemize olanak sağlayan bir modüldür.

import pdb
 
 
def addition(a, b):
    answer = a * b
    return answer
 
 
pdb.set_trace()
x = input("Enter first number : ")
y = input("Enter second number : ")
sum = addition(x, y)
print(sum)

# inputs are not convert to int it will give error 
# debug with pdb

Yukarıdaki kod 1 ve 9. satırlar olmadan sizden input alıp hata verecektir. Buradaki hatanın ne olduğunu anlamak için pdb.set_trace() ile debug başlatılmıştır.

python debug

PDB Komutları

n => next bir sonraki satıra geçer.

s => step fonksiyon ise içerisine girer veya bir sonraki satıra geçer.

w => where hangi satırda olduğunu ve satiri yazdirir.

j => jump verilen satira gider

b =>break verilen satıra debug point koyar veya breakpoint olan satırları listeler.

enable, disable => verilen breakpoint numarasını aktif eder veya geçersiz kılar.

h => help tüm komutları listeler.

def addition(a, b):
    answer = a * b
    return answer


breakpoint()
x = input("Enter first number : ")
y = input("Enter second number : ")
sum = addition(x, y)
print(sum)

Yukaridaki kod parcacagi ilk yazdigimiz ile ayni islevi gormektedir.

breakpoint fonsiyonu import pdb; pdb.set_trace() işlemini gerçekleştirmektedir.

Python Debugging

Ide’ler debug yapabilmemiz için gerekli araçları sağlamaktadır. gelin birlikte VSCode ile Python kodunu nasıl debug edebiliriz görelim.

VSCode run and debug

Ilk olarak Vscode ekranında run and debug sekmesine geliyoruz ve launch,json dosyası oluştura basıyoruz.

onumuze cikacak seceneklerden python dosyasini sectiginizde karsiniza bir launch.json dosyasi gelecek burada program yazan yere kendi dosyamizin adini yazdigimizda dosyamizi debug edebiliyor olacagiz.

launch.jsion python

Python dosyanızı çalıştırdığınızda hali hazırda breakpoint var ise orada duracaktır eğer yok ise kod satirinin sol tarafını tıklayarak ekleyebilirsiniz.

python debug breakpoint

Python Django Launch json Örneği

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}\\manage.py",
            "args": [
                "runserver"
            ],
            // "env": [you can write your envs]
            "django": true
        },
        {
            "name": "Python: Django UT",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}\\manage.py",
            "args": [
                "test",
                "--settings=test.test_settings"
            ],
            "django": true,
        }
    ]
}

Python FASTAPI Launch json Örnegi

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: FastAPI",
            "type": "python",
            "request": "launch",
            "program": "fıle_name.py",
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ]
}
debug
Deneyimlerime Göre 🙂
Yazılımda en önemli olaylardan biri de test ortamının kurulmasıdır 🙂 Bu her zaman bu kadar basit olmayabiliyor. Ne kadar zor görünse de veya ne kadar sürerse sürsün kurmanızı tavsiye ederim. (2019 Linux test enviroment preparation)
Tags:,

Add a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir