Python Academy · पाठ

pdb से डीबगिंग

कोड को इंटरैक्टिव रूप से चरण-दर-चरण चलाने के लिए Python के अंतर्निहित डीबगर का उपयोग करें।

पाठ 4, कुल 4 में से13 चरण

pdb से डीबगिंग, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

pdb क्या है?

pdb Python का अंतर्निर्मित इंटरैक्टिव डीबगर है। यह आपको निष्पादन रोकने, चरों का निरीक्षण करने और कोड को पंक्ति-दर-पंक्ति आगे बढ़ाने देता है।

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() का अंतर्निर्मित संक्षिप्त रूप है। यह PYTHONBREAKPOINT पर्यावरण चर का सम्मान करता है।

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

process([1, -2, 3])

pdb की मुख्य कमांड

ज़रूरी कमांड: n (अगली पंक्ति), s (अंदर जाना), c (जारी रखना), q (बाहर निकलना), p expr (अभिव्यक्ति दिखाना), l (सोर्स सूचीबद्ध करना)।

# 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

चरों का निरीक्षण

किसी अभिव्यक्ति को प्रिंट करने के लिए p, सुंदर रूप में प्रिंट करने के लिए pp और सभी स्थानीय चर देखने के लिए locals() का उपयोग करें।

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

सशर्त ब्रेकपॉइंट

सशर्त ब्रेकपॉइंट सेट करें, ताकि किसी शर्त के सही होने पर ही निष्पादन रुके और बार-बार स्टेप करने से बचा जा सके।

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

पोस्ट-मॉर्टम डीबगिंग

pdb.post_mortem() का उपयोग करके या अपनी स्क्रिप्ट को 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.py

w और where से चरों को देखना

w (where) वर्तमान कॉल स्टैक का ट्रेसबैक प्रिंट करता है, जिससे आपको पता चलता है कि आप वर्तमान फ़्रेम तक कैसे पहुँचे।

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

फ़्रेम के बीच जाना

u (up) और d (down) कॉल स्टैक के फ़्रेम के बीच जाते हैं, ताकि आप कॉल करने वाले फ़ंक्शन के चरों का निरीक्षण कर सकें।

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

ipdb — उन्नत डीबगर

ipdb, IPython की सुविधाओं के साथ pdb को बेहतर बनाता है: टैब पूर्णता, सिंटैक्स हाइलाइटिंग और मैजिक कमांड।

# pip install ipdb
import ipdb

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

calc(7)

pudb — दृश्य टर्मिनल डीबगर

pudb टर्मिनल में कोड, चर और स्टैक पैनल वाला पूर्ण-स्क्रीन TUI डीबगर उपलब्ध कराता है।

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

import pudb

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

CI में ब्रेकपॉइंट अक्षम करना

CI या उत्पादन वातावरण में सभी breakpoint() कॉल को निष्क्रिय बनाने के लिए PYTHONBREAKPOINT=0 सेट कीजिए।

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

त्वरित जाँच

कौन-सा pdb कमांड अगले ब्रेकपॉइंट तक निष्पादन जारी रखता है?

पुनरावलोकन

निष्पादन को रोकने और pdb में जाने के लिए breakpoint() का उपयोग कीजिए। मुख्य कमांड हैं: n, s, c, p, q। अधिक सुविधाओं के लिए ipdb या pudb आज़माइए। CI में PYTHONBREAKPOINT=0 से इसे अक्षम कीजिए।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
320

अक्सर पूछे जाने वाले प्रश्न

क्या “pdb से डीबगिंग” पाठ निःशुल्क है?

हाँ—“pdb से डीबगिंग” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“pdb से डीबगिंग” में मैं क्या सीखूँगा?

कोड को इंटरैक्टिव रूप से चरण-दर-चरण चलाने के लिए Python के अंतर्निहित डीबगर का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“pdb से डीबगिंग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. logging मॉड्यूल की मूल बातें
  2. हैंडलर, फ़ॉर्मैटर और फ़िल्टर
  3. संरचित लॉगिंग
  4. pdb से डीबगिंग
← Python Academy पर वापस जाएँ