जब आप अपने प्रोग्राम को निष्पादित करना चाहते हैं और इसका आउटपुट देखना चाहते हैं, तो Run Code / Run का उपयोग करें। जब आप एक पंक्ति पर रुकना चाहते हैं, वेरिएबल्स की जांच करना चाहते हैं, और यह पता लगाना चाहते हैं कि परिणाम गलत क्यों है, तो Debug का उपयोग करें। डिबगिंग विशेष रूप से तब उपयोगी होती है जब आपका कोड बिना किसी त्रुटि के चलता है लेकिन अप्रत्याशित उत्तर देता है।

यह गाइड कोडयूटिलिटी पायथन एक्जीक्यूटर और एक छोटे गणना उदाहरण का उपयोग करती है। ब्रेकपॉइंट-और-स्टेप वर्कफ़्लो अन्य एक्जीक्यूटर्स पर भी लागू होता है जहाँ डिबग उपलब्ध है। रनटाइम समर्थन और नियंत्रण भिन्न हो सकते हैं; इस पायथन वॉकथ्रू के लिए एक समर्थित सर्वर रनटाइम का उपयोग करें। स्क्रीनशॉट अंग्रेजी इंटरफ़ेस दिखाते हैं।

1. लॉजिक बग के साथ एक छोटे प्रोग्राम का प्रयास करें

पायथन एक्जीक्यूटर खोलें, संस्करण मेनू में पायथन 3.11 चुनें, और निम्नलिखित चार पंक्तियाँ दर्ज करें। 12 की कीमत को 3 की मात्रा से गुणा करने पर 36 मिलना चाहिए। यह प्रोग्राम जानबूझकर जोड़ का उपयोग करता है, इसलिए यह 15 देता है।

price = 12
quantity = 3
total = price + quantity
print(total)

2. डिबग शुरू करने से पहले एक ब्रेकपॉइंट सेट करें

लाइन 3 के बाईं ओर के गटर में क्लिक करें, जो total = price + quantity वाली पंक्ति है। एक लाल ब्रेकपॉइंट मार्कर प्रकट होता है। एक ब्रेकपॉइंट डिबगर को बताता है कि कहाँ रुकना है। इसे हटाने के लिए मार्कर पर फिर से क्लिक करें। ब्रेकपॉइंट्स को निष्पादनीय बयानों पर रखें न कि खाली पंक्तियों या टिप्पणियों पर।

लाइन 3 के बगल में एक लाल ब्रेकपॉइंट है जो बताता है कि निष्पादन कहाँ रुकना चाहिए।
लाइन 3 के बगल में एक लाल ब्रेकपॉइंट है जो बताता है कि निष्पादन कहाँ रुकना चाहिए।

3. डिबग शुरू करें और मानों की जांच करें

संपादक टूलबार में Debug चुनें; एक आइकन पर होवर करें ताकि उसका लेबल दिखाई दे। डिबगर विंडो का Paused at line 3 रिपोर्ट करने का इंतजार करें। रुकना मतलब है कि प्रोग्राम आपके अगले डिबगिंग क्रिया का इंतजार कर रहा है।

VARIABLES के तहत देखें: price 12 है और quantity 3 है। लाइन 3 अभी तक निष्पादित नहीं हुई है, इसलिए total सूचीबद्ध नहीं है। हाइलाइट की गई पंक्ति अगला बयान है जिसे निष्पादित किया जाना है। CALL STACK दिखाता है कि निष्पादन वर्तमान में कहाँ रुका है।

लाइन 3 से पहले रुका हुआ: कीमत 12 है और मात्रा 3 है; कुल अभी तक असाइन नहीं किया गया है।
लाइन 3 से पहले रुका हुआ: कीमत 12 है और मात्रा 3 है; कुल अभी तक असाइन नहीं किया गया है।

4. गणना के माध्यम से कदम बढ़ाएं

एक बार Step Over पर क्लिक करें। निष्पादन लाइन 4 पर चला जाता है, और total अब 15 के मान के साथ प्रकट होता है। यह दिखाता है कि गलत उत्तर लाइन 3 पर दो मानों को जोड़ने से आता है।

स्टेप ओवर के बाद, डिबगर लाइन 4 पर रुकता है और दिखाता है कि कुल = 15 है।
स्टेप ओवर के बाद, डिबगर लाइन 4 पर रुकता है और दिखाता है कि कुल = 15 है।

Continue तब तक जारी रहता है जब तक कि कोई अन्य ब्रेकपॉइंट नहीं पहुँचता या प्रोग्राम समाप्त नहीं होता। Step Over वर्तमान बयान को निष्पादित करता है बिना किसी कॉल की गई फ़ंक्शन में कदम बढ़ाए। Step Into एक कॉल की गई फ़ंक्शन में प्रवेश करता है जब समर्थित हो। Step Out वर्तमान फ़ंक्शन लौटने तक चलता है। Stop, जो एक वर्ग आइकन के रूप में दिखाया जाता है, डिबगिंग सत्र को समाप्त करता है।

5. कोड को ठीक करें और इसे फिर से चलाएँ

उदाहरण को समाप्त करने के लिए Continue चुनें, या सत्र समाप्त करने के लिए Stop चुनें। लाइन 3 पर प्लस साइन को गुणा साइन से बदलें, फिर आउटपुट की जांच करने के लिए Run Code / Run चुनें। आपको 36 दिखाई देना चाहिए। आप डिबग फिर से शुरू कर सकते हैं और सही मान की पुष्टि करने के लिए Step Over का उपयोग कर सकते हैं।

price = 12
quantity = 3
total = price * quantity
print(total)

यदि डिबगिंग उस जगह पर नहीं रुकती जहाँ आप अपेक्षा करते हैं

जांचें कि डिबग शुरू करने से पहले एक लाल ब्रेकपॉइंट सेट किया गया है, कि आपने डिबग चुना है, और कि प्रोग्राम वास्तव में उस पंक्ति तक पहुँचता है। एक निष्पादनीय पंक्ति चुनें और पुष्टि करें कि चयनित रनटाइम डिबगिंग का समर्थन करता है। सिंटैक्स त्रुटियाँ निष्पादन को ब्रेकपॉइंट तक पहुँचने से रोक सकती हैं। यदि आपका प्रोग्राम इनपुट मांगता है, तो टर्मिनल में इसे प्रदान करें ताकि निष्पादन जारी रह सके।

आपके अगले डिबगिंग सत्र के लिए, संदिग्ध गणना से ठीक पहले एक ब्रेकपॉइंट रखें, इसके इनपुट की जांच करें, और पहले अप्रत्याशित मान को खोजने के लिए आगे बढ़ें। यदि आपको केवल अंतिम आउटपुट की आवश्यकता है, तो Run Code चुनें।