Debug code
डीबग कोड एक कंप्यूटर कोड है जिसे त्रुटियों का परीक्षण करने या त्रुटि के कारण को निर्धारित करने में मदद करने के लिए एक कंप्यूटर प्रोग्राम में पेश किया जाता है। यह एक प्रोग्राम के कुछ बिंदुओं पर एक चर के मूल्य को प्रिंट करने के लिए एक प्रतिध्वनि कमांड के रूप में सरल हो सकता है। आधुनिक एकीकृत विकास वातावरण कभी-कभी कार्यक्रम में विशिष्ट स्थानों पर स्टॉप पॉइंट्स के प्लेसमेंट की अनुमति देकर और प्रोग्राम आउटपुट के बजाय आईडीई के माध्यम से चर के मूल्य को देखने की क्षमता प्रदान करके इसे अनावश्यक बना देता है। डीबग कोड का उपयोग डीबग कोड का मुख्य कार्य डीबग कोड में मदद करना है। यह कई तरीकों से किया जा सकता है, जैसे कि प्रिंट स्टेटमेंट का उपयोग करना, कमांड का दावा करना और इकाई परीक्षण। कोडिंग में उपयोग छोटे बयानों को कोड में जोड़ा जा सकता है ताकि किसी प्रोग्राम के भीतर बग की उपस्थिति और स्थान का पता लगाया जा सके। इसका उपयोग संभावित उपयोग मामलों का अनुकरण करने के लिए परीक्षण इनपुट प्रदान करने के लिए भी किया जा सकता है जिन्हें एक कार्यक्रम को स्वीकार करने में सक्षम होने की आवश्यकता हो सकती है। इसका उपयोग कोड के लिए एक स्थान धारक के रूप में भी किया जा सकता है जो अभी भी विकास में है। वीडियो गेम में उपयोग कई वीडियो गेमिंग मॉड, चीट कोड, जैसे लेवल चीट कोड, अजेयता, आदि। मूल रूप से प्रोग्रामरों और/या परीक्षकों को बाधाओं को छोड़ने की अनुमति देने के लिए डीबग कोड के रूप में पेश किया गया था जो उन्हें खेल के उन हिस्सों तक तेजी से पहुंचने से रोकेंगे जिन्हें परीक्षण करने की आवश्यकता होती है और इन मामलों में चीट मोड को अक्सर डीबगिंग मोड के रूप में संदर्भित किया जाता है। यह एक सर्वोत्तम अभ्यास के रूप में अनुशंसित है कि डिबगिंग कोड को अनुप्रयोगों के उत्पादन संस्करणों से हटा दिया जाए, क्योंकि यह उन्हें धीमा कर सकता है। हालाँकि कुछ खेल इन आदेशों और धोखाधड़ी को खिलाड़ियों के लिए अपने खेल के अनुभव को बढ़ाने के तरीके के रूप में उपयोग करने के लिए उपलब्ध रखते हैं। उदाहरण के लिए, द एल्डर स्क्रॉल वीः स्काईरिम का पीसी संस्करण खिलाड़ी को कमांड कंसोल तक पहुंच प्रदान करता है, जिससे उन्हें अपने खेल के कुछ पहलुओं को संशोधित करने की क्षमता मिलती है क्योंकि इसे चलाया जा रहा है। इन आदेशों में खिलाड़ी को अजेयता, टेलीपोर्टेशन और असीमित सोना देना शामिल है। डीबग कोड प्रिंट डीबगिंग के उदाहरण प्रिंट डीबगिंग एक प्रोग्राम में बग को खोजने और अलग करने के लिए प्रिंट स्टेटमेंट का उपयोग कर रहा है। इसका उपयोग कोड के एक टुकड़े के डेटा मूल्यों के प्रवाह को ट्रैक करने के लिए किया जा सकता है। इस प्रकार के डीबग कोड के कुछ विशिष्ट नुकसान हैं। यह अस्थायी होता है और आमतौर पर जब बग हल हो जाता है तो इसे हटा दिया जाता है। कई प्रिंट स्टेटमेंट का उपयोग एक प्रोग्राम के वास्तविक आउटपुट को प्रभावित कर सकता है और रन-टाइम को धीमा कर सकता है, यह इस बात पर निर्भर करता है कि प्रिंट स्टेटमेंट को कितनी बार कॉल किया जाता है। कुछ मामलों में प्रिंट स्टेटमेंट समस्या को खोजने में मदद नहीं करते हैं, उदाहरण के लिए सी + + एसटीडीएउट में एक बफर आउटपुट होता है, और कभी-कभी बफर की सामग्री खो जाती है जिससे गलत डीबगिंग जानकारी मिलती है। सी + + उदाहरण शून्य टेस्टफ़ंक्शन (इंट टाइम्स टू रन) {cout <<"एल्गोरिथ्म को चलाना चाहिए" <<टाइम्स टू रन <<"बार" <<एसटीडीः: एंडल; (इंट आई = 0; आई <= टाइम्स टू रन; आई + +) {// रन एल्गोरिथ्म एल्गोरिथ्म ();// डिबग प्रिंट स्टेटमेंट cout <<"एल्गोरिथ्म रन" <<आई + + <<"बार" के लिए। <<std::endl;}} उपरोक्त कोड में एक बग है। 5 के इनपुट पर प्रोग्राम को निम्नलिखित को कंसोल पर प्रिंट करना चाहिए। एल्गोरिथ्म को 5 गुना एल्गोरिथ्म 1 बार चलाना चाहिए। एल्गोरिथ्म 2 बार चलता है। एल्गोरिथ्म 3 बार चलता है। एल्गोरिथ्म 4 बार चलता है। एल्गोरिथ्म 5 बार चलता है। वास्तविक उत्पादन निम्नलिखित है, जो गलत है। एल्गोरिथ्म को 5 गुना एल्गोरिथ्म 1 बार चलाना चाहिए। एल्गोरिथ्म 2 बार चलता है। एल्गोरिथ्म 3 बार चलता है। एल्गोरिथ्म 4 बार चलता है। एल्गोरिथ्म 5 बार चलता है। एल्गोरिथ्म 6 बार चलता है। हमारा कार्य एल्गोरिथ्म के माध्यम से एक अतिरिक्त समय चल रहा है, और करीब से निरीक्षण करने पर यह स्पष्ट है कि हमारा लूप गलत कोड किया गया है। कथन का दावा करें आमतौर पर किसी बग को ठीक करने का सबसे अच्छा समय प्रोग्राम के चलने से पहले होता है। यह कोड में अभिकथन डाल कर किया जा सकता है। सी में यह दावा () कमांड का उपयोग करके किया जा सकता है। एक अस्सेर्ट कमांड यह देखने के लिए जाँच कर सकता है कि क्या प्रोग्राम इस बिंदु पर सही स्थितियों को चला रहा है। C उदाहरण int i, a [10]; के लिए (i = 0; i <10; + + i) {a [i] = 10-i;} के लिए (i = 0; i <10; + + i) {a [a [i]] = a [i];} उपरोक्त कोड में एक सीमा से बाहर की त्रुटि होगी जो कुछ अप्रत्याशित परिणामों की ओर ले जा सकती है। कोड को सुरक्षित तरीके से लिखा जा सकता है, जैसा कि नीचे दिखाया गया है। #include <assert.h> int i, a [10]; के लिए (i = 0; i <10; + + i) {assert (0 <= i & & i <10); a [i] = 10-i;} के लिए (i = 0; i <10; + + i) {assert (0 <= i & & i <10); assert (0 <= a [i] & & & a [i] <10); a [a [i] = a [i];} JUnit JUnit एक सरल ढांचा है जिसका उपयोग जावा के लिए उपलब्ध दोहराने योग्य परीक्षण लिखने के लिए किया जाता है, और प्रोग्रामरों को अपनी खुद की इकाई परीक्षण बनाने की अनुमति देता है। एक इकाई परीक्षण वह कोड है जो परीक्षण किए जाने वाले कोड में एक विशिष्ट कार्य को निष्पादित करने के लिए लिखा जाता है और आमतौर पर कोड की एक छोटी इकाई, ऐसी एकल विधि या वर्ग को लक्षित करता है। दावा बयानों और अन्य परीक्षण बयानों के संयोजन का उपयोग करके, प्रोग्रामर यह बताने के लिए परीक्षण मामलों के सुइट बना सकते हैं कि क्या कोई विधि या कार्य ठीक से निष्पादित किया जा रहा है। संदर्भ सॉफ्टवेयर रखरखाव