1. डिबगिङ के हो?
डिबगिङ भनेको प्रोग्राममा बग (त्रुटि) खोजी गरी समाधान गर्ने प्रक्रिया हो। यो कुनै पनि प्रोग्रामको लागि आवश्यक छ, केवल पाइथनका लागि मात्र होइन। डिबगिङ सीपले प्रोग्रामको गुणस्तर र विश्वसनीयता सुधार्छ र प्रभावकारी विकासको आधार बनाउँछ।
डिबगिङको उद्देश्य
डिबगिङको लक्ष्य कोडमा लुकेका समस्याहरू पहिचान गरी समाधान गर्नु हो। अन्ततः, यसले प्रोग्रामलाई सही र प्रभावकारी रूपमा चलाउन लक्ष्य राख्छ।
थनमा सामान्य त्रुटि प्रकारहरू
पाइथनमा सामान्य त्रुटि प्रकारहरू, तिनीहरूको कारण र समाधानहरू हेर्नुहोस्।
- SyntaxError : सिन्ट्याक्स त्रुटि। कोडको व्याकरण गलत हुँदा, जस्तै प्रतीकहरूमा टाइपो वा कोलन नहुनु, यो उत्पन्न हुन्छ।
- TypeError : प्रकार असंगत उत्पन्न त्रुटि। उदाहरणका लागि, इन्टिजर र स्ट्रिङलाई जोड्ने प्रयास गर्दा यो त्रुटि आउँछ।
- NameError : अपरिभाषित भेरिएबल वा फङ्सन कल गर्दा उत्पन्न हुन्छ। टाइपोग्राफिकल त्रुटिहरूले पनि यो हुन सक्छ।
- IndexError : सूची वा ट्युपलको सीमा बाहिरको इन्डेक्स पहुँच गर्ने प्रयास गर्दा हुन्छ।
- ValueError : फङ्सन वा मेथडलाई अनुपयुक्त मान पास गर्दा उठाइन्छ।
यी त्रुटिहरूलाई बुझ्नु र सही तरिकाले ह्यान्डल गर्नु डिबगिङको पहिलो कदम हो।
2. पाइथनमा डिबगिङ प्रविधिहरू
पाइथनले विभिन्न डिबगिङ विधिहरूलाई समर्थन गर्दछ। तल हामी सबैभन्दा सामान्य तरिकाहरू व्याख्या गर्छौं।
प्रिन्ट स्टेटमेन्टहरू प्रयोग गरेर डिबगिङ
सबैभन्दा सरल र सुविधाजनक विधि print स्ट गर्नु हो। तपाईं कन्सोलमा विशेष भेरिएबलहरूको मान वा कार्यान्वयनको प्रगति देखाउन सक्नुहुन्छ।
उदाहरण
def add_numbers(a, b):
    result = a + b
    print(f"Debug: result = {result}")  # Debug print statement
    return result
add_numbers(2, 3)
ाहरू र सीमाहरू
- फाइदाहरू : कुनै सेटअप वा तयारी आवश्यक छैन, र जहाँसुकै तुरुन्तै प्रयोग गर्न सकिन्छ।
- सीमाहरू : printस्टेटमेन्टहरू अत्यधिक प्रयोग गर्दा कोडको पढ्नयोग्यता घट्छ, जसले जटिल बगहरूका लागि उपयुक्त हुँदैन।
pdb मोड्युल प्रयोग गरेर
pdb (पाइथनको बिल्ट‑इन डिबगर) प्रयोग गरेर तपाईं कोडको कार्यान्वयनलाई रोक्न र विस्तृत रूपमा निरीक्षण गर्न सक्नुहुन्छ।
आधारभूत प्रयोग
- **ब्रेकप pdb.set_trace()प्रयोग गरेर तपाईंले डिबग गर्न चाहनु भएको लाइनमा ब्रेकपइन्ट सेट गर्नुहोस्।
- चलाउनु : स्क्रिप्ट चलाउँदा सेट गरिएको ब्रेकपइन्टमा रोकिएर रहन्छ।
- कमाण्डहरू प्रविष्ट गर्नु : तलका कमाण्डहरू प्रयोग गरेर डिबगिङ जारी राख्नुहोस्।
मुख्य कमाण्डहरू
- n: अर्को लाइनमा जानु (स्टेप ओभर)
- s: फङ्सनभित्र प्रवेश गर्नु (स्टेप इन)
- c: अर्को ब्रेकपइन्ट वा प्रोग्राम समाप्ति सम्म जारी राख्नु
- p>: भेरिएबलको मान देखाउनु
import pdb
def calculate_total(a, b):
    pdb.set_trace()  # Pause here
    result = a + b
    return result
calculate_total(5, 3)
डिबगिङ
पाइथनका लागि एकीकृत विकास वातावरण (IDE) ले अझै सुविधाजनक डिबगिङ सुविधाहरू प्रदान गर्छ। विशेष गरी Visual Studio Code र PyCharm पाइथन विकासकर्ताहरूबीच लोकप्रिय छन्।
Visual Studio Code मा डिबगिङ सुविधाहरू
- ब्रेकपइन्ट सेट गर्नु : डिबग गर्न चाहन लाइनमा क्लिक गरेर ब्रेकपइन्ट सेट गर्नुहोस्।
- डिबगिङ सुरु गर्नु : Run → Start Debugging चयन गर्नुहोस्।
- भेरिएबलहरू निरीक्षण गर्नु : प्रोग्राम चल्दै गर्दा भेरिएबलको मान हेर्न सक्नुहुन्छ।
PyCharm मा डिबगिङ सुविधाहरू
- ब्रेकपइन्ट सेट गर्नु : डिबग गर्न चाहनु ब्रपइन्ट सेट गर्नुहोस्।
- डिबग मोडमा चलाउनु : माथिल्लो दायाँको Debug बटनमा क्लिक गर्नुहोस्।
- रियल‑टाइम मोनिटरिङ : रियल‑टाइममा भेरिएबलको मान र वस्तुहरूको स्थिती निगरानी गर्न सक्नुहुन्छ।
3. प्रभावकारी डिबगिङका टिप्स
डिबगिङलाई अझ प्रभावकारी बनाउने टिप्स र विधिहरू प्रस्तुत गर्नेछौं।
त्रुटि सन्देशहरू कसरी पढ्ने प्रयोग गर्ने
पाइथनको त्रुटि सन्देशले त्रुटिको प्रकार र कहाँ भएको। सन्देशलाई बिस्तारपूर्वक बुझ्दा समस्या समाधान छिटो हुन्छ।
लगिङको उपयोग
print स्टेटमेन्टहरू भन्दा लगिङ अधिक उपयुक्त डिबगिङ विधि हो। logging मोड्युल प्रयोग गरेर कोड कार्यान्वयनको क्रममा हुने घटनाहरू र त्रुटिहरूलाई रेकर्ड गर्न सकिन्छ।
import logging
logging.basicConfig(level=logging.DEBUG)
def divide(a, b):
    logging.debug(f"Divide function called with a = {a}, b = {b}")
    if b == 0:
        logging.error("Division by zero!")
        return None
    return a / b
divide(10, 0)
लगिङ विकासको समयमा मात्र उपयोगी छैन तर उत्पादनमा समस्याहरू ट्र्याक गर्नका लागि पनि उपयोगी छ।
युनिट टेस्टहरूको परिचय
युनिट टेस्टहरूले कोड परिवर्तनहरूबाट उत्पन्न हुन सक्ने त्रुटिहरूलाई रोक्न मद्दत गर्छन्। तल unittest मोड्युल प्रयोग गरेर एउटा उदाहरण छ।
import unittest
def add_numbers(a, b):
    return a + b
class TestAddNumbers(unittest.TestCase):
    def test_add_positive(self):
        self.assertEqual(add_numbers(2, 3), 5)
    def test_add_negative(self):
        self.assertEqual(add_numbers(-2, -3), -5)
if __name__ == '__main__':
    unittest.main()
बग पुनरुत्पादन चरणहरू दस्तावेजीकरण गर्नुहोस्
यदि तपाईंले बगलाई पुनरुत्पादन गर्न सक्नुहुन्छ भने, यसको कारणलाई pinpoint गर्न सजिलो हुन्छ। जति बढी यो reproducible छ, तपाईंले कारण पहिचान गर्न तीव्र गर्न सक्नुहुन्छ, र समान बगहरू spot गर्न सजिलो हुन्छ। 
४. डिबगिङ उपकरणहरूको परिचय
यहाँ, हामीले पाइथनका लागि उपयोगी डिबगिङ उपकरणहरू परिचय गराउँछौं।
pdb मोड्युल
pdb एउटा स्ट्यान्डर्ड डिबगर हो। यसमा set_trace() बाट ब्रेकपोइन्ट सेटिङ सुविधा छ।
भिजुअल स्टुडियो कोड
यो एक निःशुल्क IDE हो जसमा धनी पाइथन डिबगिङ सुविधाहरू छन्। GUI मार्फत सञ्चालन गर्न सकिने भएकाले, शुरुआतीहरूले पनि सजिलै डिबग गर्न सक्छन्।
सुविधाहरू
- ब्रेकपोइन्टहरू सेटिङ
- रियल-टाइम भेरिएबल मोनिटरिङ
- स्टेप निष्पादन
PyCharm
पाइथन-विशिष्ट IDE जसमा व्यापक डिबगिङ सुविधाहरू छन्। ठूला परियोजनाहरू र टिम विकासका लागि आदर्श।
सुविधाहरू
- शक्तिशाली डिबगिङ विकल्पहरू
- रियल-टाइम भेरिएबल मोनिटरिङ
- ब्रेकपोइन्टहरूसँग विस्तृत सञ्चालनहरू
लगिङ (logging) मोड्युल
logging ले विस्तृत निष्पादन लगहरू क्याप्चर गर्न सक्छ र त्रुटि लगहरू रेकर्ड गर्नका लागि विशेष रूपमा उपयोगी छ। यसलाई विकास र सञ्चालनको समयमा समस्याहरू ट्र्याक गर्न पनि प्रयोग गर्न सकिन्छ।
५. डिबगिङका उत्कृष्ट अभ्यासहरू
यहाँ डिबगिङलाई सुव्यवस्थित गर्न र कोड गुणस्तर सुधार गर्नका लागि उत्कृष्ट अभ्यासहरू छन्।
कोड पढ्न सकिने सुधार गर्नुहोस्
स्पष्ट भेरिएबल र फङ्क्शन नामहरू प्रयोग गर्दा कोड पढ्न सजिलो हुन्छ र डिबगिङ सरल हुन्छ।
संस्करण नियन्त्रणको लाभ लिनुहोस्
Git जस्ता उपकरणहरू प्रयोग गरेर कोड इतिहास व्यवस्थापन गर्नुहोस् र बग कारणहरू ट्र्याक गर्न सरल बनाउनुहोस्।
टेस्ट‑ड्रिभन विकास (TDD) अभ्यास गर्नुहोस्
पहिले टेस्टहरू लेख्दा बगहरूको घटना घटाउँछ र डिबगिङ प्रयास घटाउँछ।
कोड समीक्षाहरू सञ्चालन गर्नुहोस्
अन्य डेभलपरहरूसँग समीक्षा गर्दा लुकेका बगहरू र डिजाइन सुधारहरू उजागर गर्न मद्दत गर्छ।
बग‑ट्र्याकिङ उपकरणहरू प्रयोग गर्नुहोस्
Jira वा GitHub Issues जस्ता उपकरणहरूले बगहरू व्यवस्थापन गर्न, पुनरावृत्ति रोक्न, र फिक्स स्थिति निगरानी गर्न दिन्छन्।
६. सारांश
पाइथन डिबगिङ त्रुटिहरू ठीक गर्नु मात्र होइन; यसले समग्र कार्यक्रम गुणस्तर सुधारमा पनि नेतृत्व गर्छ। यस लेखमा परिचय गराइएका विधिहरू र उत्कृष्ट अभ्यासहरू प्रयोग गरेर कुशलतापूर्वक डिबग गर्नुहोस्। उपयुक्त डिबगिङ उपकरणहरू र प्रविधिहरू अपनाएर, विकास कार्य थप कुशल हुन्छ, र बगहरू छिट्टै पत्ता लगाउन र ठीक गर्न सकिन्छ। तपाईंको डिबगिङ कौशल सुधार गर्दा कार्यक्रमको विश्वसनीयता पनि बढ्छ र लामो‑अवधिका परियोजना सफलतातर्फको एक कदम हो।

 
 



