1. बग

प्रोग्रामर्स की अपनी स्लैंग होती है, हालांकि कई लोग इसे तकनीकी शब्दजाल मानते हैं। किसी भी मामले में, आप इसे जानने से नहीं बच सकते। आपको विस्तार में गोता लगाने की जरूरत है। तो चलिए गोता लगाते हैं।

आपके द्वारा जाने जाने वाले पहले शब्दों में से एक " बग " है, जिसका अर्थ है एक कीट । सॉफ़्टवेयर विकास के संदर्भ में, इस शब्द का अर्थ है किसी प्रोग्राम में त्रुटि , प्रोग्राम द्वारा कुछ गलत या बिल्कुल सही न करने का उदाहरण। या बस अजीब तरह से काम कर रहा है।

लेकिन अगर एक प्रोग्रामर को लगता है कि कार्यक्रम, उसके अजीब व्यवहार के बावजूद, ठीक वही कर रहा है जो उसे माना जाता है, तो वह आमतौर पर "यह बग नहीं है, यह एक विशेषता है" जैसा कुछ घोषित करता है। जिसने इंटरनेट मेम्स का एक गुच्छा पैदा किया है।

सामान्य तौर पर, सॉफ़्टवेयर दोष के कई कारण हो सकते हैं: प्रोग्राम के तर्क, टाइपोस और गलत प्रोग्राम आर्किटेक्चर में त्रुटियों से कुछ भी, कंपाइलर में समस्याओं तक। किसी भी मामले में, प्रोग्रामर को अपने कार्यक्रमों में वास्तविक बग और किसी भी अन्य "कमियों" को ठीक करने की आवश्यकता होती है।

"बग" शब्द का इतिहास

"बग" शब्द की उत्पत्ति का सबसे आम संस्करण एक पौराणिक कथा है।

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

निकाले गए कीट को एक तकनीकी लॉग में टेप किया गया था, जिसके साथ यह शिलालेख था: "बग पाए जाने का पहला वास्तविक मामला।"

इस मजेदार कहानी को " बग " शब्द के उपयोग की शुरुआत माना जाता है, जिसका अर्थ है एक त्रुटि, और " डीबग " शब्द बग को खत्म करने का पर्याय बन गया है।


2. कार्यक्रम डिबगिंग

अपने प्रोग्राम में बग को ठीक करने के लिए, प्रोग्रामर डिबगर्स नामक विशेष प्रोग्राम का उपयोग करते हैं । इनमें से कुछ प्रोग्राम यह भी जानते हैं कि मशीन कोड को कैसे डिबग करना है।

जावा प्रोग्रामर अपने प्रोग्राम डीबग करने के लिए आईडीई का उपयोग करते हैं। जैसे IntelliJ IDEA, एक्लिप्स और NetBeans। IntelliJ IDEA अब तक का सबसे शक्तिशाली IDE है, इसलिए हम एक उदाहरण के रूप में इसका उपयोग करके डीबगिंग प्रक्रिया से चलेंगे।

IntelliJ IDEA आपके प्रोग्राम को दो मोड में चला सकता है:

निष्पादन मोड टूलबार आइकन हॉटकी
सामान्य निष्पादन Shift+F10
डिबग मोड में प्रारंभ करें Shift+F9

आप पहले से ही सामान्य निष्पादन से परिचित हैं: प्रोग्राम प्रारंभ होता है, चलता है और बाहर निकलता है। लेकिन डिबग मोड में आपके लिए स्टोर में बहुत सारे आश्चर्य हैं।

डिबग मोड

डिबग मोड आपको अपने पूरे प्रोग्राम के माध्यम से कदम दर कदम चलने देता है । या अधिक सटीक रूप से, यह आपको पंक्ति दर पंक्ति आगे बढ़ने देता है । क्या अधिक है, आप कार्यक्रम के प्रत्येक चरण में चर के मूल्यों का निरीक्षण कर सकते हैं (कोड की प्रत्येक पंक्ति के निष्पादित होने के बाद)। और आप उनके मूल्यों को बदल भी सकते हैं!

किसी प्रोग्राम को डिबग करने की न्यूनतम समझ हासिल करने के लिए, आपको तीन चीजें सीखने की जरूरत है:

  • विराम बिंदु
  • चरणबद्ध निष्पादन
  • चर के मूल्य का निरीक्षण

3. विराम बिंदु

आईडीई आपको अपने कोड में ब्रेकप्वाइंट नामक विशेष मार्कर लगाने देता है। जब भी डिबग मोड में चलने वाला कोई प्रोग्राम ब्रेकप्वाइंट के साथ चिह्नित लाइन तक पहुंचता है , तो निष्पादन रुक जाएगा।

किसी विशिष्ट लाइन पर ब्रेकपॉइंट लगाने के लिए , आपको केवल IDEA में लाइन के बाईं ओर क्लिक करना होगा। उदाहरण:

ब्रेकप्वाइंट IntelliJ आईडिया

लाइन को ब्रेकप्वाइंट के साथ चिह्नित किया जाएगा, और IntelliJ IDEA इसे लाल रंग में हाइलाइट करेगा:

ब्रेकपॉइंट के साथ चिह्नित

कोड के बाईं ओर फलक पर दूसरा माउस क्लिक ब्रेकपॉइंट को हटा देगा ।

केवल हॉटकी संयोजन + का उपयोग करके एक ब्रेकपॉइंट को वर्तमान लाइन पर भी रखा जा सकता है । जिस लाइन में पहले से ब्रेकप्वाइंट है, उस पर फिर से + दबाने से वह हट जाएगी।CtrlF8CtrlF8


4. प्रोग्राम को डिबग मोड में प्रारंभ करें

यदि आपके प्रोग्राम में कम से कम एक ब्रेकप्वाइंट है, तो आप Shift+ दबाकर F9या "बग आइकन" पर क्लिक करके प्रोग्राम को डिबग मोड में चला सकते हैं।

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

प्रोग्राम को डिबग मोड में प्रारंभ करें

स्क्रीनशॉट के ऊपरी भाग में, आप प्रोग्राम कोड को दो ब्रेकप्वाइंट के साथ देखते हैं। कार्यक्रम का निष्पादन लाइन 5 पर बंद हो गया, जिसे एक नीली रेखा से चिह्नित किया गया है। लाइन 5 को अभी तक निष्पादित नहीं किया गया है: कंसोल में अभी तक कुछ भी आउटपुट नहीं किया गया है।

स्क्रीन के निचले आधे हिस्से में, आप डिबग फलक देखते हैं: डीबग फलक, कंसोल  फलक और डीबग मोड के लिए बटनों का एक सेट।

आप निचले बाएँ फलक पर प्रोग्राम फिर से शुरू करें बटन दबाकर (या दबाएं ) अपने प्रोग्राम को रोक सकते हैं (यानी निष्पादन जारी रखें)।F9

प्रोग्राम को डिबग मोड 3 में प्रारंभ करें

यदि आप इस बटन (या F9) को दबाते हैं, तो प्रोग्राम तब तक चलता रहेगा जब तक कि यह अगले ब्रेकपॉइंट या समाप्त नहीं हो जाता। यहाँ हम बटन पर क्लिक करने के बाद क्या देखते हैं:

प्रोग्राम को डिबग मोड 4 में प्रारंभ करें

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


5. चरण-दर-चरण निष्पादन

यदि आपका प्रोग्राम डिबग मोड में चल रहा है, तो आप इसके माध्यम से कदम भी उठा सकते हैं: एक कदम एक पंक्ति है । चरण-दर-चरण निष्पादन के लिए दो हॉटकी हैं: F7और F8: प्रत्येक कोड की वर्तमान पंक्ति को निष्पादित करने का कारण बनता है। लेकिन सबसे पहले, आपको अभी भी अपने प्रोग्राम को ब्रेकपॉइंट से रोकना होगा ।

यदि आप अपनी प्रोग्राम लाइन को लाइन से निष्पादित करना चाहते हैं, तो आपको विधि की शुरुआत में ब्रेकपॉइंटmain() डालना होगा और इसे डीबग मोड में चलाना होगा।

जब प्रोग्राम बंद हो जाता है, तो आप इसे लाइन से लाइन निष्पादित करना शुरू कर सकते हैं। कुंजी का एक प्रेस F8एक पंक्ति को निष्पादित करता है।

हमारा प्रोग्राम रुकने के बाद ऐसा दिखता है और हम F8कुंजी को एक बार दबाते हैं:

प्रोग्राम को डिबग मोड में प्रारंभ करें।  चरणबद्ध निष्पादन

मुख्य विधि की पहली पंक्ति पहले ही निष्पादित हो चुकी है, और वर्तमान पंक्ति दूसरी पंक्ति है। आप स्क्रीनशॉट के नीचे यह भी देख सकते हैं कि Helloस्क्रीन पर शब्द पहले से ही प्रदर्शित है।


6. चरण-दर-चरण निष्पादन विधियों में कदम रखने के साथ

यदि आपने प्रोग्राम में अपने तरीके लिखे हैं और आप चाहते हैं कि निष्पादन डिबग मोड में आपके तरीकों के अंदर जाए, यानी आप "विधि में कदम" रखना चाहते हैं, तो आपको इसके बजाय प्रेस करने की आवश्यकता F7है F8

मान लीजिए कि आप प्रोग्राम के माध्यम से आगे बढ़ते हैं और अब लाइन 4 पर रुके हुए हैं। यदि आप दबाते हैं F8, तो आईडीईए केवल चौथी पंक्ति को निष्पादित करेगा और पांचवीं पर चलेगा।

चरण-दर-चरण निष्पादन विधि 2 में कदम रखने के साथ

लेकिन अगर आप दबाते हैं F7, तो आईडिया विधि में कदम रखेगा main2():

चरण-दर-चरण निष्पादन विधि 3 में कदम रखने के साथ

यह बहुत सरल है। यदि आप वास्तव में परवाह नहीं करते हैं कि किसी विधि के अंदर क्या होता है या कैसे होता है, तो आप दबाते हैं F8। यदि यह महत्वपूर्ण है, तो F7इसके सभी कोड को दबाएं और चरणबद्ध करें।