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.
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.
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.
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 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 } ] }