0Pricing
Python Academy · Ders

pdb ile Hata Ayıklama

Kodu etkileşimli olarak adım adım incelemek için Python'ın yerleşik hata ayıklayıcısını kullanın.

pdb ile Hata Ayıklama, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

pdb Nedir?

pdb, Python'un yerleşik etkileşimli hata ayıklayıcısıdır. Yürütmeyi duraklatmanızı, değişkenleri incelemenizi ve kodda satır satır ilerlemenizi sağlar.

import pdb

def faulty(n):
    result = n * 2
    pdb.set_trace()   # execution pauses here
    return result + 1

faulty(5)

breakpoint() — Python 3.7+

breakpoint(), import pdb; pdb.set_trace() için yerleşik bir kısayoldur. PYTHONBREAKPOINT ortam değişkenini dikkate alır.

def process(data):
    for item in data:
        if item < 0:
            breakpoint()   # drop into pdb here
        print(item)

process([1, -2, 3])

Temel pdb Komutları

Temel komutlar: n (sonraki satır), s (içine adım at), c (devam et), q (çık), p expr (yazdır), l (kaynak kodu listele).

# Inside pdb prompt:
# (Pdb) n          — execute next line
# (Pdb) s          — step into function
# (Pdb) c          — continue to next breakpoint
# (Pdb) p my_var   — print value
# (Pdb) l          — show source around current line
# (Pdb) q          — quit

Değişkenleri İnceleme

Bir ifadeyi yazdırmak için p, okunaklı yazdırmak için pp ve tüm yerel değişkenleri görmek için locals() kullanın.

# (Pdb) p data
# [1, -2, 3]
# (Pdb) pp {"key": "value", "num": 42}
# {'key': 'value',
#  'num': 42}
# (Pdb) p locals()

Koşullu Kesme Noktaları

Yalnızca bir koşul doğru olduğunda duraklatmak ve tekrarlanan adımlamadan kaçınmak için koşullu kesme noktaları ayarlayın.

import pdb

def process(items):
    for i, item in enumerate(items):
        if item < 0:   # manual condition
            pdb.set_trace()
        result = item * 2

# Or inside pdb: b filename.py:12, x < 0

Hata Sonrası İnceleme

İşlenmemiş bir istisnadan hemen sonraki durumu pdb.post_mortem() kullanarak inceleyin veya betiğinizi python -m pdb script.py ile çalıştırın.

import pdb

try:
    1 / 0
except ZeroDivisionError:
    pdb.post_mortem()   # inspect at the crash point

# Or from CLI:
# python -m pdb my_script.py

w ve where ile Değişkenleri İzleme

w (where), mevcut çağrı yığını izini yazdırır; böylece mevcut çerçeveye nasıl ulaştığınızı görebilirsiniz.

# (Pdb) w
# /app/main.py(10)main()
# -> process([1,-2,3])
# /app/main.py(5)process()
# -> breakpoint()

Çerçeveler Arasında Geçiş Yapma

u (up) ve d (down), çağrı yığını çerçeveleri arasında geçiş yapmanızı ve çağıran işlevlerdeki değişkenleri incelemenizi sağlar.

# (Pdb) u   — move to calling frame
# (Pdb) d   — move back down
# (Pdb) p data   — inspect variable in that frame

ipdb — Gelişmiş Hata Ayıklayıcı

ipdb, IPython özelliklerini pdb ile birleştirir: sekme tamamlama, söz dizimi vurgulama ve sihirli komutlar.

# pip install ipdb
import ipdb

def calc(x):
    ipdb.set_trace()
    return x ** 2

calc(7)

pudb — Görsel Terminal Hata Ayıklayıcısı

pudb, terminalde kod, değişken ve yığın panelleri içeren tam ekranlı bir TUI hata ayıklayıcısı sağlar.

# pip install pudb
# python -m pudb my_script.py

import pudb

def run():
    pudb.set_trace()
    data = [1, 2, 3]
    return sum(data)

CI Ortamında Kesme Noktalarını Devre Dışı Bırakma

PYTHONBREAKPOINT=0 ayarını yaparak CI veya üretim ortamında tüm breakpoint() çağrılarının hiçbir işlem yapmamasını sağlayın.

# In CI pipeline:
# export PYTHONBREAKPOINT=0
# python my_script.py
# breakpoint() is silently skipped

Hızlı Kontrol

Bir sonraki kesme noktasına kadar yürütmeyi sürdüren pdb komutu hangisidir?

Özet

Yürütmeyi duraklatıp pdb'ye geçmek için breakpoint() kullanın. Temel komutlar: n, s, c, p, q. Daha zengin deneyimler için ipdb veya pudb'yi deneyin. CI ortamında PYTHONBREAKPOINT=0 ile devre dışı bırakın.

Sıkça Sorulan Sorular

“pdb ile Hata Ayıklama” dersi ücretsiz mi?

Evet — “pdb ile Hata Ayıklama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“pdb ile Hata Ayıklama” dersinde ne öğreneceğim?

Kodu etkileşimli olarak adım adım incelemek için Python'ın yerleşik hata ayıklayıcısını kullanın. Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“pdb ile Hata Ayıklama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. logging Modülünün Temelleri
  2. İşleyiciler, Biçimlendiriciler ve Filtreler
  3. Yapılandırılmış Günlükleme
  4. pdb ile Hata Ayıklama
← Python Academy Sayfasına Dön