Debugging dengan pdb
Gunakan debugger bawaan Python untuk menelusuri kode secara interaktif.
Debugging dengan pdb adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Apa Itu pdb?
pdb adalah debugger interaktif bawaan Python. Alat ini memungkinkan Anda menghentikan sementara eksekusi, memeriksa variabel, dan menelusuri kode baris demi baris.
import pdb
def faulty(n):
result = n * 2
pdb.set_trace() # execution pauses here
return result + 1
faulty(5)breakpoint() — Python 3.7+
breakpoint() adalah singkatan bawaan untuk import pdb; pdb.set_trace(). Fungsi ini mengikuti variabel lingkungan PYTHONBREAKPOINT.
def process(data):
for item in data:
if item < 0:
breakpoint() # drop into pdb here
print(item)
process([1, -2, 3])Perintah Inti pdb
Perintah penting: n (baris berikutnya), s (masuk ke dalam), c (lanjutkan), q (keluar), p expr (cetak), l (tampilkan sumber).
# 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 — quitMemeriksa Variabel
Gunakan p untuk mencetak ekspresi, pp untuk pencetakan yang rapi, dan locals() untuk melihat semua variabel lokal.
# (Pdb) p data
# [1, -2, 3]
# (Pdb) pp {"key": "value", "num": 42}
# {'key': 'value',
# 'num': 42}
# (Pdb) p locals()Breakpoint Bersyarat
Atur breakpoint bersyarat agar eksekusi berhenti hanya saat suatu kondisi benar, sehingga Anda tidak perlu melakukan penelusuran berulang.
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 < 0Debugging Pascakejadian
Periksa keadaan tepat setelah pengecualian yang tidak tertangani menggunakan pdb.post_mortem() atau jalankan skrip Anda dengan python -m pdb script.py.
import pdb
try:
1 / 0
except ZeroDivisionError:
pdb.post_mortem() # inspect at the crash point
# Or from CLI:
# python -m pdb my_script.pyMengamati Variabel dengan w dan where
w (where) mencetak pelacakan tumpukan pemanggilan saat ini agar Anda mengetahui bagaimana eksekusi sampai ke bingkai saat ini.
# (Pdb) w
# /app/main.py(10)main()
# -> process([1,-2,3])
# /app/main.py(5)process()
# -> breakpoint()Berpindah Antar-Bingkai
u (up) dan d (down) berpindah antarbingkai dalam tumpukan pemanggilan sehingga Anda dapat memeriksa variabel dalam fungsi pemanggil.
# (Pdb) u — move to calling frame
# (Pdb) d — move back down
# (Pdb) p data — inspect variable in that frameipdb — Alat Penelusuran Kesalahan yang Disempurnakan
ipdb membungkus pdb dengan fitur IPython: pelengkapan tab, penyorotan sintaksis, dan perintah ajaib.
# pip install ipdb
import ipdb
def calc(x):
ipdb.set_trace()
return x ** 2
calc(7)pudb — Alat Penelusuran Kesalahan Terminal Visual
pudb menyediakan alat penelusuran kesalahan TUI layar penuh di terminal, dengan panel kode, variabel, dan tumpukan.
# pip install pudb
# python -m pudb my_script.py
import pudb
def run():
pudb.set_trace()
data = [1, 2, 3]
return sum(data)Menonaktifkan Titik Henti di CI
Atur PYTHONBREAKPOINT=0 agar semua pemanggilan breakpoint() tidak melakukan apa pun di CI atau produksi.
# In CI pipeline:
# export PYTHONBREAKPOINT=0
# python my_script.py
# breakpoint() is silently skippedPemeriksaan Cepat
Perintah pdb apa yang melanjutkan eksekusi hingga titik henti berikutnya?
Ringkasan
Gunakan breakpoint() untuk menjeda eksekusi dan masuk ke pdb. Perintah inti: n, s, c, p, q. Untuk pengalaman yang lebih lengkap, cobalah ipdb atau pudb. Nonaktifkan dengan PYTHONBREAKPOINT=0 di CI.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Debugging dengan pdb” gratis?
Ya — teks lengkap “Debugging dengan pdb” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Debugging dengan pdb”?
Gunakan debugger bawaan Python untuk menelusuri kode secara interaktif. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Debugging dengan pdb” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar-Dasar Modul logging
- Handler, Formatter, dan Filter
- Logging Terstruktur
- Debugging dengan pdb