1 00:00:00,000 --> 00:00:00,309 2 00:00:00,309 --> 00:00:02,350 [? दान ARMADARAS:?] हाय, मैं [हूँ? दान Armadaras?]। 3 00:00:02,350 --> 00:00:04,410 आज, हम करने जा रहे हैं डिबगिंग पर लग जाना। 4 00:00:04,410 --> 00:00:06,697 न केवल हम करने जा रहे हैं कुछ तकनीकों के बारे में बात करते हैं, 5 00:00:06,697 --> 00:00:09,280 लेकिन यह भी हम को देखने के लिए जा रहे हैं सुविधाओं में से कुछ निहित 6 00:00:09,280 --> 00:00:14,170 अनुमति है कि CS50 आईडीई के भीतर आप आसानी से एक कार्यक्रम डिबग करने के लिए। 7 00:00:14,170 --> 00:00:16,272 >> सिर्फ एक उदाहरण गलत हो सकता है कि कुछ 8 00:00:16,272 --> 00:00:18,730 और यह वास्तव में कुछ है हम पहले से ही पहले देखा है कि। 9 00:00:18,730 --> 00:00:23,200 इस मामले में, यह एक सी प्रोग्राम है कि उपयोगकर्ता से एक पूर्णांक स्वीकार 10 00:00:23,200 --> 00:00:27,580 दो से यह बांटता है, और प्रदान करता है उपयोगकर्ता के लिए वापस उत्पादन। 11 00:00:27,580 --> 00:00:30,610 अब हम क्या देखा है से पहले व्याख्यान में, 12 00:00:30,610 --> 00:00:34,370 हम यह वास्तव में पैदा होगा कि पता विभाजन की समस्याओं के विशिष्ट प्रकार 13 00:00:34,370 --> 00:00:35,860 हम विषम संख्या है जब। 14 00:00:35,860 --> 00:00:40,330 >> विशेष रूप से, हम अभी दूर फेंक देंगे दशमलव बिंदु के बाद कुछ भी। 15 00:00:40,330 --> 00:00:43,170 अब, हम इस जानते हैं कि मामले होना होता है। 16 00:00:43,170 --> 00:00:47,430 और हम इसे चलाते हैं, हम पुष्टि कर सकते हैं संकलन द्वारा पहले हमारे संदेह,। 17 00:00:47,430 --> 00:00:50,460 और फिर, चलाकर और एक विषम संख्या में प्रवेश। 18 00:00:50,460 --> 00:00:51,720 >> यह कोई नई बात नहीं है। 19 00:00:51,720 --> 00:00:54,490 लेकिन यह वास्तव में एक है एक बग का उदाहरण है कि 20 00:00:54,490 --> 00:00:58,810 एक बड़ा कार्यक्रम के भीतर मौजूद कर सकते हैं कि नीचे ट्रैक करने के लिए कठिन हो जाता है। 21 00:00:58,810 --> 00:01:02,640 हम क्या मुद्दा पता भले ही , इस मामले का सच जड़ है 22 00:01:02,640 --> 00:01:06,250 की पहचान करने की कोशिश कर रहा हो सकता है विशेष रूप से जहां त्रुटि होती है, 23 00:01:06,250 --> 00:01:09,750 क्या है कि समस्या की पहचान है, और फिर यह तय। 24 00:01:09,750 --> 00:01:14,400 तो एक उदाहरण के रूप में इस प्रदान कुछ हो सकता है क्या की 25 00:01:14,400 --> 00:01:19,030 हम पहले से ही जानते हैं, लेकिन दफन किया जा सकता है कि कोड के अन्य तत्वों के भीतर। 26 00:01:19,030 --> 00:01:23,090 >> तो यह अन्य स्रोत खोलने एक उदाहरण के रूप में कोड फ़ाइल, 27 00:01:23,090 --> 00:01:27,165 इस विभाजन समस्या अब है एक बड़े कार्यक्रम का हिस्सा। 28 00:01:27,165 --> 00:01:29,040 अभी भी एक छोटा हो सकता है सा काल्पनिक है, और हम 29 00:01:29,040 --> 00:01:31,076 आसानी से करने में सक्षम हो सकता है विशेष रूप से, यह पहचान 30 00:01:31,076 --> 00:01:32,450 हम सिर्फ इस पर चर्चा कर रहे है। 31 00:01:32,450 --> 00:01:38,250 लेकिन हम यह है कि यह पता लगाने कर सकते हैं समस्या एक बड़े पैमाने पर मौजूद कर सकते हैं। 32 00:01:38,250 --> 00:01:45,450 >> मैं अब इस संकलन और अगर यह एक अजीब नंबर दर्ज चलाने के लिए, 33 00:01:45,450 --> 00:01:49,816 हम ठीक नहीं मिलता देख सकते हैं कि हम उम्मीद कर सकते हैं कि उत्पादन। 34 00:01:49,816 --> 00:01:51,690 इस विशेष मामले में, हम कह सकते हैं कि हम 35 00:01:51,690 --> 00:01:56,060 संख्या के सभी गणना करना चाहते हैं एक से बढ़कर कुछ विशिष्ट संख्या के लिए। 36 00:01:56,060 --> 00:01:58,130 और हम है कि हम देख सकते हैं मुद्दों की एक किस्म है 37 00:01:58,130 --> 00:02:03,880 हम outputting रहे हैं यहाँ हैं, बस, 0 और एक हम 5 के एक इनपुट प्रदान करते हैं। 38 00:02:03,880 --> 00:02:07,380 >> इसलिए हम पहले से ही जानते हैं कि एक समस्या यहाँ है। 39 00:02:07,380 --> 00:02:11,662 लेकिन हम ठीक पता नहीं हो सकता जहां इस मुद्दे को वास्तव में मौजूद है। 40 00:02:11,662 --> 00:02:13,620 तरीकों में से अब एक ही है कि हम इसे ठीक करने की कोशिश कर सकते हैं 41 00:02:13,620 --> 00:02:15,745 हम है कि कुछ तो है पहले से ही करने के लिए शुरू किया गया। 42 00:02:15,745 --> 00:02:18,880 हम सिर्फ एक बड़े पैमाने पर इसका इस्तेमाल कर सकते हैं। 43 00:02:18,880 --> 00:02:21,680 >> लाइन 14 पर, हमारे पास इस printf समारोह, 44 00:02:21,680 --> 00:02:25,620 जो हमें राज्य से बाहर मुद्रित करने के लिए अनुमति देता है जानकारी के विभिन्न टुकड़ों की। 45 00:02:25,620 --> 00:02:28,880 और यह कुछ ऐसा है कि आप अपने कार्यक्रम के भीतर का लाभ उठाने चाहिए 46 00:02:28,880 --> 00:02:33,100 है कि क्या वास्तव में यह पता लगाने की कोशिश करने के लिए कोड के विभिन्न लाइनों में हो रहा है। 47 00:02:33,100 --> 00:02:36,350 तो यह नहीं है, भले अंतिम उत्पादन है कि हम वास्तव में 48 00:02:36,350 --> 00:02:39,830 से बाहर का उत्पादन करना चाहते हैं इस कार्यक्रम, हम अभी भी 49 00:02:39,830 --> 00:02:42,300 कुछ डिबग हो सकता है बयानों जहां हम 50 00:02:42,300 --> 00:02:46,970 यह पता लगाने की कोशिश कर सकते हैं कि क्या हमारे कोड के अंदर क्या हो रहा है। 51 00:02:46,970 --> 00:02:51,210 >> तो इस मामले में, तो मैं लूंगा डिबग टैग के साथ printf। 52 00:02:51,210 --> 00:02:53,540 इस मामले में, यह है सिर्फ एक डिबग स्ट्रिंग 53 00:02:53,540 --> 00:02:56,840 मैं ऊपर डाल तो यह हो जाता है कि कर रहा हूँ कि मेरे कोड के उत्पादन में बहुत स्पष्ट 54 00:02:56,840 --> 00:02:59,200 क्या यह मैं दिखाने के लिए चाहते हैं। 55 00:02:59,200 --> 00:03:04,410 संख्या में यहाँ और आउटपुट हम अभिकलन किया है। 56 00:03:04,410 --> 00:03:06,800 >> इस मामले में, मैं हो सकता है ठीक जानना चाहते हैं 57 00:03:06,800 --> 00:03:11,380 क्या पहले से हो रहा है और कुछ विशिष्ट गणना के बाद। 58 00:03:11,380 --> 00:03:16,224 तो मैं पहले एक printf का उपयोग हो सकता है और कोड की है कि लाइन के बाद। 59 00:03:16,224 --> 00:03:18,640 इस मामले में, मैं भी कर सकता है यह थोड़ा और अधिक स्पष्ट कर दूं 60 00:03:18,640 --> 00:03:21,960 पहले डिबग कह कर और डिबग इतने के बाद 61 00:03:21,960 --> 00:03:26,540 मैं के साथ अपने आप को भ्रमित नहीं है कि समान लग रही है कि कई लाइनों। 62 00:03:26,540 --> 00:03:32,290 >> अब हम इस और रन कंपाइल यदि यह फिर से पाँच की तरह एक नंबर दर्ज 63 00:03:32,290 --> 00:03:35,090 हम देख सकते हैं कि अब से पहले और बाद उत्पादन 64 00:03:35,090 --> 00:03:40,670 और हम एक स्पष्ट नहीं किया है कि लगता है विभाजन या स्पष्ट संख्या के होने 65 00:03:40,670 --> 00:03:43,680 हम वास्तव में क्या करना चाहते हैं। 66 00:03:43,680 --> 00:03:48,660 अब इस मामले में, यह है नहीं वास्तव में एक स्पष्ट उत्पादन। 67 00:03:48,660 --> 00:03:52,440 यह वास्तव में एक स्पष्ट परिणाम नहीं है कि हम इस विशेष कार्यक्रम से बाहर करना चाहते। 68 00:03:52,440 --> 00:03:54,427 >> और यह एक, फिर से, थोड़ा सा काल्पनिक। 69 00:03:54,427 --> 00:03:57,510 लेकिन, शायद, बातों में से एक यह है कि विनिर्देश ने कहा कि अगर हम कर सकते थे 70 00:03:57,510 --> 00:04:01,900 हम ने इस विभाजित करना चाहते हैं कि 2 और तो दूसरे शब्दों में 1-- जोड़ने, 71 00:04:01,900 --> 00:04:04,550 हम तो up-- पूर्णांक बनाना चाहते हैं हम हम कर सकते थे कि पता कर सकते हैं 72 00:04:04,550 --> 00:04:08,060 इस मामले में, कि विशेष रूप से काम करते हैं। 73 00:04:08,060 --> 00:04:14,010 अब यहाँ हम हम हो जाएगा पता हमारी आधी रह गई संख्या के लिए एक जोड़ने के लिए सक्षम। 74 00:04:14,010 --> 00:04:16,490 >> चलो इस कंपाइल चलो और यह पुष्टि करते हैं कि 75 00:04:16,490 --> 00:04:18,860 हम चाहते हैं कि जिस तरह से बर्ताव कर रही है। 76 00:04:18,860 --> 00:04:21,980 अब हम पहले देख सकते हैं कि रहा है, हम संख्या 5 है। 77 00:04:21,980 --> 00:04:26,620 होने के बाद, हम नंबर 3 है हमारे विनिर्देश के अनुसार, जो 78 00:04:26,620 --> 00:04:29,292 हम क्या करना चाहता है। 79 00:04:29,292 --> 00:04:31,000 लेकिन हम पर नजर डालें तो यहाँ उत्पादन, हम कर सकते हैं 80 00:04:31,000 --> 00:04:33,760 हम एक और हो सकता है कि वहाँ है, जो पूरी तरह बग, 81 00:04:33,760 --> 00:04:36,940 हम 0 से हमारी गिनती शुरू कर रहे हैं। 82 00:04:36,940 --> 00:04:39,390 >> अब फिर से, यह कुछ है हम अतीत में देखा है कि 83 00:04:39,390 --> 00:04:42,500 और हम काफी आसानी से तय कर सकते हैं। 84 00:04:42,500 --> 00:04:44,790 लेकिन इस मामले में, हम यह भी लाभ मिला 85 00:04:44,790 --> 00:04:48,940 printf बयान का उपयोग करने का सीधे पाश के लिए के अंदर 86 00:04:48,940 --> 00:04:52,930 ठीक पता है, जहां उस त्रुटि होने वाली थी। 87 00:04:52,930 --> 00:04:55,150 तो printf बयान कर रहे हैं मदद करने में बहुत उपयोगी 88 00:04:55,150 --> 00:04:57,940 आप जहां निर्धारित करते हैं, ठीक अपने स्रोत कोड में, 89 00:04:57,940 --> 00:05:00,620 एक विशिष्ट त्रुटि हो रहा है। 90 00:05:00,620 --> 00:05:03,650 >> और यह महसूस करने के लिए भी महत्वपूर्ण है कि, हम कोड लिख रहे हैं, के रूप में 91 00:05:03,650 --> 00:05:06,052 हम मान्यताओं हो सकता है एक कार्यक्रम के राज्य के बारे में। 92 00:05:06,052 --> 00:05:08,510 या फिर हम मान्यताओं हो सकता है कार्यक्रम के किस हिस्से के बारे में 93 00:05:08,510 --> 00:05:13,020 वास्तव में सही है या जब गलत है बाद में हम उस कार्यक्रम पर निर्माण के रूप में 94 00:05:13,020 --> 00:05:15,950 और यह एक का हिस्सा बना जटिल और बड़ा कार्यक्रम 95 00:05:15,950 --> 00:05:19,700 हम कुछ पहलू का एहसास है कि कि इस बात का वास्तव में छोटी गाड़ी है। 96 00:05:19,700 --> 00:05:22,680 >> Printf का उपयोग करना वास्तव में मदद कर सकते हैं नीचे संकीर्ण और पहचान 97 00:05:22,680 --> 00:05:26,430 एक कार्यक्रम के क्षेत्रों है कि नहीं हो सकता वास्तव में जिस तरह से बर्ताव किया है कि हम 98 00:05:26,430 --> 00:05:29,500 हमारी मान्यताओं पर आधारित है, उम्मीद है। 99 00:05:29,500 --> 00:05:31,460 लेकिन वहाँ अन्य उपकरण है उपलब्ध है, के रूप में अच्छी तरह से, 100 00:05:31,460 --> 00:05:34,860 कि हमें लगाने की कोशिश करने की अनुमति जहां एक त्रुटि हो रहा है बाहर 101 00:05:34,860 --> 00:05:39,930 और यह भी, विशेष रूप से, क्या बातें कार्यक्रम के अंदर हो रही हैं। 102 00:05:39,930 --> 00:05:41,990 >> इसलिए का उपयोग कर printf बहुत है उपयोगी है जब हम चाहते हैं 103 00:05:41,990 --> 00:05:45,900 के विशिष्ट क्षेत्रों की पहचान करने के लिए कुछ बग है कि एक कार्यक्रम। 104 00:05:45,900 --> 00:05:47,730 लेकिन यह भी हो जाता है एक समय के बाद थकाऊ। 105 00:05:47,730 --> 00:05:50,500 इस मामले में, यह एक है अपेक्षाकृत सरल कार्यक्रम 106 00:05:50,500 --> 00:05:52,750 सिर्फ एक या दो चर के साथ। 107 00:05:52,750 --> 00:05:57,260 और यह हमारे लिए बहुत आसान हो जाता है उन चर के मूल्य प्रिंट आउट 108 00:05:57,260 --> 00:05:59,670 बड़ा कार्यक्रम के संदर्भ में। 109 00:05:59,670 --> 00:06:02,670 >> लेकिन हम एक अलग हो सकता है कई चर है कि कार्यक्रम। 110 00:06:02,670 --> 00:06:06,530 और यह काफी नहीं हो सकता है printf का उपयोग करने के लिए इतना आसान 111 00:06:06,530 --> 00:06:10,120 क्या हो रहा है मूल्यांकन करने की कोशिश करने के लिए उन चर में से हर एक को 112 00:06:10,120 --> 00:06:13,590 कार्यक्रम के रूप में काम कर रही है। 113 00:06:13,590 --> 00:06:16,960 मौजूद है कि एक कार्यक्रम नहीं है एक डिबगर कार्यक्रम बुलाया। 114 00:06:16,960 --> 00:06:20,320 इस मामले में, एक ही है कि हम करेंगे उपयोग करते हैं, GDB जीएनयू डिबगर है, या 115 00:06:20,320 --> 00:06:24,260 कि हमें आंतरिक निरीक्षण करने की अनुमति देता है एक और अधिक में एक कार्यक्रम का कामकाज 116 00:06:24,260 --> 00:06:25,700 विस्तृत तरीके से। 117 00:06:25,700 --> 00:06:28,810 >> हम वास्तव में अमल कर सकते हैं कमांड लाइन से GDB 118 00:06:28,810 --> 00:06:35,370 यहां बस GDB और टाइप करके हम डिबग करना चाहते हैं कि आदेश। 119 00:06:35,370 --> 00:06:37,550 इस मामले में, गिनती। 120 00:06:37,550 --> 00:06:41,650 अब इस मामले में, हम यह देख सकते हैं कि GDB का कहना है कि एक त्वरित करने के लिए हमें लाता है। 121 00:06:41,650 --> 00:06:44,020 और हम वास्तव में कर सकते हैं GDB करने के आदेशों पर अमल 122 00:06:44,020 --> 00:06:48,260 वास्तव में के निष्पादन के शुरू करने के लिए कार्यक्रम के कुछ बिंदुओं पर इसे रोकने, 123 00:06:48,260 --> 00:06:51,060 चर का मूल्यांकन और चर का निरीक्षण कि 124 00:06:51,060 --> 00:06:54,152 कार्यक्रम राज्य में मौजूद उस विशेष पल में, 125 00:06:54,152 --> 00:06:55,110 इत्यादि इत्यादि। 126 00:06:55,110 --> 00:06:57,240 यह हमारे लिए बहुत शक्ति प्रदान करता है। 127 00:06:57,240 --> 00:06:59,960 >> लेकिन यह सिर्फ इतना होता है यह भी कहा कि CS50 आईडीई 128 00:06:59,960 --> 00:07:05,870 एक जीयूआई या एक उपयोगकर्ता प्रदान करता है GDB के लिए इंटरफ़ेस है कि 129 00:07:05,870 --> 00:07:11,120 हमें जरूरत के बिना यह करने के लिए अनुमति देता है जो भी कमांड लाइन इंटरफेस 130 00:07:11,120 --> 00:07:13,560 या बिल्कुल भी। 131 00:07:13,560 --> 00:07:16,930 मुझे लगता है कि उपयोग कर सकते हैं कि जिस तरह से डिबग बटन का उपयोग करना है 132 00:07:16,930 --> 00:07:20,120 CS50 आईडीई के ऊपर से ही। 133 00:07:20,120 --> 00:07:24,280 अब अतीत में, हम क्या है देखा हम आदेश का उपयोग करता है 134 00:07:24,280 --> 00:07:27,660 लाइन संकलन और उसके बाद एक कार्यक्रम को चलाने के लिए। 135 00:07:27,660 --> 00:07:29,790 >> डिबग बटन करता है उन कदमों के दोनों। 136 00:07:29,790 --> 00:07:34,380 लेकिन यह भी लाएगा अभी तक सही पर डिबगर टैब 137 00:07:34,380 --> 00:07:38,280 कि हमें एक किस्म का निरीक्षण करने की अनुमति देता है कार्यक्रम के गुणों की 138 00:07:38,280 --> 00:07:40,500 के रूप में इसे क्रियान्वित किया जाता है। 139 00:07:40,500 --> 00:07:44,280 मैं इस में, डिबग क्लिक करते हैं मामला है, यह लाएगा 140 00:07:44,280 --> 00:07:48,230 कंसोल में एक नया टैब बहुत नीचे खिड़की। 141 00:07:48,230 --> 00:07:51,160 >> और अगर आप इस टैब है कि देख सकते हैं ऊपर से ही कुछ जानकारी। 142 00:07:51,160 --> 00:07:52,670 और हम काफी हद तक इस उपेक्षा कर सकते हैं। 143 00:07:52,670 --> 00:07:54,800 लेकिन चीजों में से एक हम नोटिस करना चाहते हैं कि 144 00:07:54,800 --> 00:07:57,170 यह है कि outputs है एक ही बात है कि हम 145 00:07:57,170 --> 00:08:03,000 हम पर कर भागने की कोशिश की, तो मिल जाएगा टर्मिनल विंडो में सी कार्यक्रम। 146 00:08:03,000 --> 00:08:06,230 >> यहाँ, हम यह बजना चल रहा है देख सकते हैं, और यह झंडे की एक किस्म है, 147 00:08:06,230 --> 00:08:12,660 और यह हमारे count.c फ़ाइल संकलन है जो समय पर चयनित टैब था 148 00:08:12,660 --> 00:08:15,100 कि मैं डिबग मारा। 149 00:08:15,100 --> 00:08:18,010 तो इस वजह से बहुत उपयोगी है अब इस डिबग बटन का उपयोग कर, 150 00:08:18,010 --> 00:08:23,280 हम एक साथ तो संकलन और कर सकते हैं कार्यक्रम पर अमल कि हम वास्तव में 151 00:08:23,280 --> 00:08:24,460 चलाना चाहते हैं। 152 00:08:24,460 --> 00:08:27,880 >> है कि झंडे में से एक महत्वपूर्ण है, इस मामले में, 153 00:08:27,880 --> 00:08:30,190 हम वास्तव में उपयोग किया गया है सबसे लंबे समय के लिए 154 00:08:30,190 --> 00:08:32,450 लेकिन अभी भी कुछ हाथ किया लहराते [सुनाई], जो 155 00:08:32,450 --> 00:08:33,820 यहीं यह एक है। 156 00:08:33,820 --> 00:08:35,790 बजना में, यह -ggdb3 कहते हैं। 157 00:08:35,790 --> 00:08:38,570 158 00:08:38,570 --> 00:08:41,250 इस मामले में, हम क्या कर रहे हैं बजना बता रही है, हमारे संकलक, 159 00:08:41,250 --> 00:08:43,820 हम अपने कार्यक्रम संकलन करने के लिए चाहते हैं। 160 00:08:43,820 --> 00:08:46,810 लेकिन यह भी क्या कर रहे हैं प्रदान करते हैं कहा जाता प्रतीक जानकारी 161 00:08:46,810 --> 00:08:50,940 संकलक वास्तव में पहुँच गया है, तो यह है कि अंतर्निहित जानकारी का एक बहुत कुछ करने के 162 00:08:50,940 --> 00:08:52,610 कार्यक्रम के भीतर निहित। 163 00:08:52,610 --> 00:08:55,260 >> अधिक विशेष रूप से, संख्या मुझे लगता है कि कार्यों की, 164 00:08:55,260 --> 00:08:58,000 उन कार्यों के नाम, चर, प्रकार 165 00:08:58,000 --> 00:09:01,730 उन चर, और एक किस्म है कि डिबगर है कि मदद के लिए अन्य बातों के 166 00:09:01,730 --> 00:09:04,350 इसके संचालन करते हैं। 167 00:09:04,350 --> 00:09:06,600 अब वहाँ कुछ और है उल्लेख है कि महत्वपूर्ण है 168 00:09:06,600 --> 00:09:10,280 जब हम चल चर्चा कर रहे हैं इस रास्ते में एक कार्यक्रम। 169 00:09:10,280 --> 00:09:13,660 >> यह वास्तव में है कि नोटिस हमारे कंसोल में एक नया टैब लाया 170 00:09:13,660 --> 00:09:14,780 नीचे के साथ। 171 00:09:14,780 --> 00:09:18,600 हम अब बातचीत करने के लिए है सीधे टर्मिनल विंडो के साथ। 172 00:09:18,600 --> 00:09:21,420 लेकिन इस नए टैब है वास्तव में एक टर्मिनल विंडो। 173 00:09:21,420 --> 00:09:26,710 यह बस चलाने के लिए विशिष्ट है हम पैदा की है कि कार्यक्रम। 174 00:09:26,710 --> 00:09:29,270 >> में, तल पर सूचना है कि कुछ उत्पादन के साथ संयोजन 175 00:09:29,270 --> 00:09:33,500 संकलक और GDB बजना से, हम काफी हद तक नजरअंदाज कर सकते हैं, जो 176 00:09:33,500 --> 00:09:37,570 यह वास्तव में के उत्पादन से पता चलता है बहुत नीचे हमारे कार्यक्रम। 177 00:09:37,570 --> 00:09:41,240 अब यह महसूस करने के लिए महत्वपूर्ण है कि वास्तव में यह एक खिड़की 178 00:09:41,240 --> 00:09:43,360 आपको दिखाई देगा अपने कार्यक्रम से उत्पादन 179 00:09:43,360 --> 00:09:47,190 लेकिन यह भी इनपुट स्वीकार कर सकते हैं उस प्रोग्राम के लिए, के रूप में अच्छी तरह से। 180 00:09:47,190 --> 00:09:49,260 >> तो कहते हैं कि नोटिस एक संख्या दर्ज करें, 181 00:09:49,260 --> 00:09:53,050 जो हम था कि एक ही उत्पादन है पहले टर्मिनल विंडो में था। 182 00:09:53,050 --> 00:09:55,510 लेकिन यह अब इस नए टैब में दिखाया गया है। 183 00:09:55,510 --> 00:09:56,550 मैं इनपुट एक नंबर कर सकते हैं। 184 00:09:56,550 --> 00:10:00,900 और यह वास्तव में होगा समारोह हम उम्मीद के रूप में 185 00:10:00,900 --> 00:10:05,890 हमें हमारे डिबग दिखा रहा है, उत्पादन, छोटी गाड़ी हो सकता है कि उत्पादन, 186 00:10:05,890 --> 00:10:07,010 के रूप में हम पहले देखा है। 187 00:10:07,010 --> 00:10:10,460 और बहुत नीचे है, यह वास्तव में कुछ अतिरिक्त उत्पादन किया है 188 00:10:10,460 --> 00:10:14,550 सकल घरेलू उत्पाद में से सिर्फ कह रही है कि इस कार्यक्रम पूरा कर लिया है। 189 00:10:14,550 --> 00:10:16,655 >> अब आप इस में देखा था के माध्यम से विशेष रूप से चलाने के लिए, 190 00:10:16,655 --> 00:10:19,370 यह विशेष रूप से नहीं था उपयोगी भी है क्योंकि 191 00:10:19,370 --> 00:10:23,740 हम था, हालांकि डिबगर मेनू आ ऊपर, यह अभी भी चल रहे एक कार्यक्रम था। 192 00:10:23,740 --> 00:10:26,790 कोई बिंदु पर वास्तव में ऐसा किया था हमारे लिए निष्पादन को थामने 193 00:10:26,790 --> 00:10:30,767 सभी के निरीक्षण करने के लिए सक्षम होने के लिए चर के भीतर निहित। 194 00:10:30,767 --> 00:10:32,850 वहाँ कुछ और हम आदेश में क्या करना है कि 195 00:10:32,850 --> 00:10:36,910 हम चाहते हैं कि पहचान करने GDB पाने के लिए कार्यक्रम के निष्पादन को थामने के लिए 196 00:10:36,910 --> 00:10:42,820 और सिर्फ यह आगे बढ़ने की अनुमति नहीं आम तौर पर हम किसी भी अन्य मामले में के रूप में होगा। 197 00:10:42,820 --> 00:10:45,530 >> निष्पादन को थामने के लिए आदेश में, कुछ विशिष्ट लाइन पर, 198 00:10:45,530 --> 00:10:47,830 हम क्या बनाने की जरूरत है एक ब्रेक प्वाइंट कहा जाता है। 199 00:10:47,830 --> 00:10:52,670 और एक ब्रेक प्वाइंट को बहुत आसानी से बनाया जाता है, इस में अपने माउस लेने के द्वारा आईडीई CS50 200 00:10:52,670 --> 00:10:57,090 और बाईं ओर सीधे क्लिक कुछ विशिष्ट लाइन नंबर की। 201 00:10:57,090 --> 00:10:59,920 मुझे लगता है कि एक बार, एक लाल बिंदी जो इंगित करता है, प्रकट होता है 202 00:10:59,920 --> 00:11:02,300 कि कि लाइन अब एक ब्रेक प्वाइंट है। 203 00:11:02,300 --> 00:11:07,540 >> और मैं GDB चलाने अगली बार जब यह कि ब्रेक प्वाइंट पर निष्पादन बंद हो जाएगा 204 00:11:07,540 --> 00:11:10,280 यह कोड की है कि लाइन तक पहुँच जाता है। 205 00:11:10,280 --> 00:11:12,230 अब यह एक महत्वपूर्ण है बात का एहसास करने के लिए 206 00:11:12,230 --> 00:11:16,140 ऐसा नहीं है कि जरूरी मामला यह है कि कोड की हर पंक्ति 207 00:11:16,140 --> 00:11:17,880 वास्तव में पहुँचा जा सकता है। 208 00:11:17,880 --> 00:11:23,780 मैं एक समारोह बना रहे थे, तो यहाँ, example-- शून्य f-- के लिए 209 00:11:23,780 --> 00:11:31,230 और बस नमस्ते here-- एक प्रिंट लाइन करना world-- मैं इस समारोह का फोन कभी नहीं करते हैं, तो 210 00:11:31,230 --> 00:11:34,770 यह मामला होगा कि, मैं यहाँ एक ब्रेक प्वाइंट निर्धारित करते हैं, 211 00:11:34,770 --> 00:11:36,220 समारोह में बुलाया नहीं किया जाएगा। 212 00:11:36,220 --> 00:11:38,310 और इसलिए, इस विशेष ब्रेक प्वाइंट 213 00:11:38,310 --> 00:11:43,040 वास्तव में थामने के लिए कभी नहीं होगा कार्यक्रम के निष्पादन। 214 00:11:43,040 --> 00:11:48,020 >> तो चलो मैं सही ढंग से बना है कि हम कहते हैं कोड के कुछ लाइन पर एक ब्रेक प्वाइंट 215 00:11:48,020 --> 00:11:50,340 कि वास्तव में क्रियान्वित किया जाएगा। 216 00:11:50,340 --> 00:11:53,470 अब इस मामले में, यह है मुख्य समारोह में पहली पंक्ति। 217 00:11:53,470 --> 00:11:56,630 तो यह निश्चित रूप से मामला होगा कि, मैं निष्पादन शुरू के रूप में जल्द ही के रूप में, 218 00:11:56,630 --> 00:11:58,580 बहुत पहले लाइन तक पहुँच जाएगा। 219 00:11:58,580 --> 00:12:00,230 GDB निष्पादन रोक देगा। 220 00:12:00,230 --> 00:12:04,100 और फिर, मैं करने में सक्षम हो जाएगा डिबगर के साथ बातचीत। 221 00:12:04,100 --> 00:12:08,480 >> आप के रूप में कई लाइनों सेट कर सकते हैं अगर आप चाहेंगे, breakpoints। 222 00:12:08,480 --> 00:12:11,365 हम भी एक लाइन बना सकते हैं यहाँ कोड के इस खंड में 223 00:12:11,365 --> 00:12:12,490 कि पहुंचा जा कभी नहीं होगा। 224 00:12:12,490 --> 00:12:14,744 और हम भी आगे नीचे एक सेट कर सकते हैं। 225 00:12:14,744 --> 00:12:16,660 कारण यह है कि हम करेंगे हम करेंगे ऐसा करना चाहते हैं 226 00:12:16,660 --> 00:12:19,119 अधिक एक छोटा सा में जाना बस एक पल में विस्तार। 227 00:12:19,119 --> 00:12:21,660 तो अब के लिए, मुझे बस को निष्क्रिय करते हैं इन अतिरिक्त ब्रेक प्वाइंट 228 00:12:21,660 --> 00:12:24,940 हम क्या होता है पर देख सकते हैं कि इतने मैं एक ही तोड़ दिया है जब 229 00:12:24,940 --> 00:12:27,650 मेरे कार्यक्रम में बिंदु। 230 00:12:27,650 --> 00:12:29,410 मैं बना दिया है कुछ इस कार्यक्रम में परिवर्तन। 231 00:12:29,410 --> 00:12:30,750 इसलिए मैं इसे बचाने की जरूरत है। 232 00:12:30,750 --> 00:12:34,490 मैं डिबग क्लिक करेंगे मैं कर सकता हूँ तो यह है कि संकलन शुरू हो और फिर 233 00:12:34,490 --> 00:12:36,880 डिबगर के निष्पादन। 234 00:12:36,880 --> 00:12:40,632 >> हम देखेंगे कि, क्षणों के बाद हम ब्रेक के रूप में चयनित किया है कि लाइन 235 00:12:40,632 --> 00:12:43,360 बिंदु पीले रंग में प्रकाश डाला है। 236 00:12:43,360 --> 00:12:47,440 हम भी सूचना है कि कर सकते हैं डिबग पैनल में ऊपरी दाहिने 237 00:12:47,440 --> 00:12:50,940 ठहराव आइकन बदल गया है एक छोटे से खेलने आइकन में। 238 00:12:50,940 --> 00:12:54,710 यह हम ठहराव का मतलब है कि निष्पादन, इस विशेष मामले में। 239 00:12:54,710 --> 00:12:57,840 और खेलने के बटन होता मार हमें निष्पादन को फिर से शुरू करने की अनुमति 240 00:12:57,840 --> 00:13:00,000 कि विशिष्ट बिंदु पर। 241 00:13:00,000 --> 00:13:03,240 >> अन्य की एक जोड़ी है कि नोटिस इस डिबग पैनल में उपलब्ध बटन, 242 00:13:03,240 --> 00:13:04,220 भी। 243 00:13:04,220 --> 00:13:09,470 के लिए मुझे अनुमति देता है, पर कदम कोड की है कि एक लाइन पर अमल 244 00:13:09,470 --> 00:13:14,030 और करने के लिए है कि रेखा को खत्म करने के लिए कदम इस मामले में अगले एक है, जो, 245 00:13:14,030 --> 00:13:17,060 printf मतलब यह होगा कि बयान मार डाला है। 246 00:13:17,060 --> 00:13:22,310 और यह तो रुकेगा जैसे इतना लाइन 13 पर निष्पादन,। 247 00:13:22,310 --> 00:13:25,090 >> और यह भी एक कदम भी नहीं है समारोह में जो 248 00:13:25,090 --> 00:13:28,950 मैं दूसरे बनाया है तो यह उपयोगी है कहीं और स्रोत कोड में कार्य करता है। 249 00:13:28,950 --> 00:13:31,420 और मैं में कदम चाहते हैं उन कार्यों के बजाय 250 00:13:31,420 --> 00:13:33,050 एक पूरे के रूप में है कि समारोह निष्पादित। 251 00:13:33,050 --> 00:13:37,279 लेकिन हम कदम पर अधिक गौर करेंगे बस एक पल में समारोह में। 252 00:13:37,279 --> 00:13:40,320 अब कुछ अन्य बातों पर ध्यान कि वास्तव में इस डिबग पैनल के भीतर मौजूद हैं। 253 00:13:40,320 --> 00:13:44,110 >> हम इस पैनल कहा जाता है जो हमें पता चलता है, ढेर फोन 254 00:13:44,110 --> 00:13:45,300 वास्तव में हम कहां हैं। 255 00:13:45,300 --> 00:13:48,550 इस मामले में, हम अंदर हैं मुख्य समारोह का। 256 00:13:48,550 --> 00:13:50,880 हमारी स्क्रिप्ट count.c कहा जाता है। 257 00:13:50,880 --> 00:13:53,820 और हम पर होना होगा 13 लाइन, स्तंभ से एक है, जो 258 00:13:53,820 --> 00:13:58,950 क्या प्रकाश डाला क्षेत्र ठीक है स्रोत कोड के रूप में अच्छी तरह से, इंगित करता है। 259 00:13:58,950 --> 00:14:02,435 >> अब यह भी पता चलता है कि नोटिस स्थानीय चर धारा के तहत 260 00:14:02,435 --> 00:14:06,710 चर के सभी कि इस समारोह के भीतर मौजूद हैं। 261 00:14:06,710 --> 00:14:08,930 यह नोट करना महत्वपूर्ण है चर के सभी कि 262 00:14:08,930 --> 00:14:12,580 इस स्थानीय चर में दिखाई देंगे एक समारोह के भीतर अनुभाग, 263 00:14:12,580 --> 00:14:14,380 यहां तक ​​कि वे परिभाषित कर रहे हैं पहले। 264 00:14:14,380 --> 00:14:19,160 हम एक चर है कि यहाँ देख सकते हैं NUM कहा जाता है, 0 से डिफ़ॉल्ट मान है, 265 00:14:19,160 --> 00:14:21,280 और यह int प्रकार की है। 266 00:14:21,280 --> 00:14:24,110 >> अब हम वास्तव में को प्रारंभ करने से पहले इन चर के सभी, 267 00:14:24,110 --> 00:14:26,685 हम जरूरी नहीं रहे 0 के एक मूल्य देखने के लिए गारंटी। 268 00:14:26,685 --> 00:14:29,200 और दूसरी फांसी पर निर्भर करता है आप प्रदर्शन किया है कि 269 00:14:29,200 --> 00:14:32,020 और अपनी याददाश्त में जब से राज्य आप वास्तव में इस कार्यक्रम को चलाने, 270 00:14:32,020 --> 00:14:34,605 क्या आप पाते हैं कि हो सकता है 0 के मूल्यों को नहीं दिख रहा है 271 00:14:34,605 --> 00:14:36,550 और, इसके बजाय, कुछ अन्य पागल संख्या। 272 00:14:36,550 --> 00:14:38,390 >> लेकिन उस के बारे में चिंता मत करो। 273 00:14:38,390 --> 00:14:44,610 जब तक यह प्रासंगिक नहीं किया जा रहा है आप वास्तव में मूल्य को प्रारंभ। 274 00:14:44,610 --> 00:14:49,630 अब इस मामले में, हम देख सकते हैं कि मैं कुछ outputs प्रदर्शन किया है। 275 00:14:49,630 --> 00:14:52,131 और मैं अब ठीक है, निष्पादन रुका हुआ हूँ। 276 00:14:52,131 --> 00:14:53,880 लेकिन इस मामले में, क्या मैं वास्तव में क्या करना चाहते हैं 277 00:14:53,880 --> 00:14:58,060 अब इस लाइन पर कदम है कोड की इसलिए मैं वास्तव में यह कर सकते हैं कि 278 00:14:58,060 --> 00:15:04,390 कि पूर्णांक के लिए उपयोगकर्ता क्वेरी कि हम अपने कार्यक्रम में उपयोग करना चाहते हैं। 279 00:15:04,390 --> 00:15:07,060 >> अब इस मामले में, जब मैं नोटिस पर कदम मारा 280 00:15:07,060 --> 00:15:11,940 कि बजाय रोकें या फिर से शुरू बटन इस रोकें बटन करने के लिए बदल गया है 281 00:15:11,940 --> 00:15:14,022 इस कोड को वास्तव में निष्पादित कर रहा है क्योंकि। 282 00:15:14,022 --> 00:15:15,730 क्या हो रहा है अभी यह है कि 283 00:15:15,730 --> 00:15:21,630 निवेश करने के लिए हमारे लिए कुछ जानकारी इंतजार कर हम अपने उत्पादन पाठ को देख सकते हैं 284 00:15:21,630 --> 00:15:23,600 बहुत नीचे। 285 00:15:23,600 --> 00:15:25,787 >> इसलिए अभी, यह है वास्तव में रुका हुआ नहीं, 286 00:15:25,787 --> 00:15:28,620 यहां तक ​​कि यह हालांकि, की तरह दिखाई देता है, कुछ भी नहीं हो रहा है, क्योंकि हो सकता है। 287 00:15:28,620 --> 00:15:32,360 लेकिन यह सिर्फ इतना होता है कि में 13 लाइन पर अपना विशिष्ट मामले, 288 00:15:32,360 --> 00:15:34,210 मैं उपयोगकर्ता इनपुट के लिए इंतज़ार कर रहा हूँ। 289 00:15:34,210 --> 00:15:39,130 और तो GDB का निरीक्षण करने में सक्षम नहीं है यह रूप में एक कार्यक्रम चल रहा है। 290 00:15:39,130 --> 00:15:43,370 >> मैं कुछ दर्ज है कि अब अगली बार input-- इसलिए मुझे लगता है कि नंबर 5 में प्रवेश करेंगे 291 00:15:43,370 --> 00:15:46,140 हम में देखा है हिट वापसी past--, और हम 292 00:15:46,140 --> 00:15:51,430 कि, तुरंत GDB विराम देता नोटिस और, फिर से, अगली पंक्ति पर प्रकाश डाला गया। 293 00:15:51,430 --> 00:15:55,320 लेकिन एक के रूप में, अब है कि नोटिस हमारे एक मूल्य inputting का परिणाम है, 294 00:15:55,320 --> 00:15:58,930 हम अंदर है कि मूल्य को अद्यतन किया है हमारे स्थानीय चर, जो 295 00:15:58,930 --> 00:16:05,560 ठीक पता करने के लिए बहुत उपयोगी है क्या है कि संख्या स्मृति में किया गया था। 296 00:16:05,560 --> 00:16:10,650 >> अब मैं इस कार्यक्रम को जारी रखने की अनुमति दे सकते हैं इसके निष्पादन के अंत तक खेल रहे हैं 297 00:16:10,650 --> 00:16:12,570 फिर से शुरू मार से। 298 00:16:12,570 --> 00:16:16,410 हम बहुत जल्दी से देख सकते हैं कि कार्यक्रम खत्म क्रियान्वित करता है 299 00:16:16,410 --> 00:16:19,790 एक ही उत्पादन के साथ कि हम पहले था, डिबगर बंद कर देता है, 300 00:16:19,790 --> 00:16:23,170 और अब इस कार्यक्रम पूरी तरह से बंद कर दिया है। 301 00:16:23,170 --> 00:16:25,320 >> मैं दिखाने के लिए ही है कि देखने का प्रयोजनों क्या 302 00:16:25,320 --> 00:16:27,280 हम वास्तव में फिर से शुरू मारा जब ऐसा होता है। 303 00:16:27,280 --> 00:16:30,640 लेकिन हम वास्तव में करने के लिए जा रहे हैं इस कार्यक्रम में वापस जाना चाहता हूँ 304 00:16:30,640 --> 00:16:33,820 हम डिबग करने की कोशिश कर सकते हैं ताकि ठीक क्या हो रहा है। 305 00:16:33,820 --> 00:16:37,980 मैं डिबगर का उपयोग कर रहा हूँ कि अब, मैं हो सकता है इन डिबग printf बयान की जरूरत नहीं। 306 00:16:37,980 --> 00:16:43,860 >> मुझे क्या करना होगा के रूप में तो मैं उन्हें हटा सकता है अब सिर्फ हमारे सरल कोड के लिए वापस जाने के लिए 307 00:16:43,860 --> 00:16:45,950 हम एक पल पहले था। 308 00:16:45,950 --> 00:16:48,790 अब मैं जब बचाने के लिए कार्यक्रम है और इसे अमल, 309 00:16:48,790 --> 00:16:53,700 यह, फिर से, कि प्रारंभिक के लिए जाना जाएगा मैं लाइन 11 पर था उस बिंदु को तोड़ने। 310 00:16:53,700 --> 00:16:57,700 और मैं निरीक्षण करने के लिए सक्षम हो जाएगा अपने चर मैं करना चाहता है के रूप में। 311 00:16:57,700 --> 00:17:00,695 >> यह सिर्फ इतना है कि यह है कि क्या होता है हिस्सा है, बहुत दिलचस्प नहीं है 312 00:17:00,695 --> 00:17:04,364 और मुझे लगता है कि मैं जा रहा हूँ पता है कि इस बयान के बाहर मुद्रित करने के लिए। 313 00:17:04,364 --> 00:17:05,280 एक संख्या दर्ज करें। 314 00:17:05,280 --> 00:17:08,099 और फिर, मैं मैं जा रहा हूँ पता है कि कि पूर्णांक के लिए उपयोगकर्ता पूछने के लिए। 315 00:17:08,099 --> 00:17:13,329 तो शायद, मैं वास्तव में ले जाना चाहते हैं मेरी नीचे थोड़ा सा आगे बिंदु को तोड़ने। 316 00:17:13,329 --> 00:17:16,710 >> आप ब्रेक प्वाइंट को हटा सकते हैं सीधे, फिर से, क्लिक करके 317 00:17:16,710 --> 00:17:18,460 कि लाइन नंबर के बाईं ओर। 318 00:17:18,460 --> 00:17:22,200 यही कारण है कि लाल बिंदी का संकेत है, गायब हो जाएगा कि ब्रेक प्वाइंट अब चला गया है कि। 319 00:17:22,200 --> 00:17:24,780 अब इस मामले में, निष्पादन रोक दिया गया है। 320 00:17:24,780 --> 00:17:27,770 और इसलिए यह वास्तव में करने के लिए नहीं जा रहा है उस विशेष उदाहरण में फिर से शुरू। 321 00:17:27,770 --> 00:17:30,210 लेकिन मैं एक ब्रेक सेट कर सकते हैं एक छोटा सा बाद में इशारा करते हैं। 322 00:17:30,210 --> 00:17:33,880 >> और अब मैं फिर से शुरू जब मेरी कोड, इसे फिर से शुरू और बताना होगा 323 00:17:33,880 --> 00:17:36,190 कि ब्रेक प्वाइंट के बिंदु। 324 00:17:36,190 --> 00:17:37,374 फिर से, मैं फिर से शुरू मारा। 325 00:17:37,374 --> 00:17:39,040 कुछ भी हो रहा है, ऐसा लगता नहीं है। 326 00:17:39,040 --> 00:17:41,450 लेकिन यह है कि मेरी वजह से कोड इनपुट के लिए इंतज़ार कर रही है। 327 00:17:41,450 --> 00:17:47,900 मैं एक नंबर 5 में प्रवेश हिट दर्ज करेंगे, और अब अगले ब्रेक प्वाइंट हिट हो जाएगा। 328 00:17:47,900 --> 00:17:50,570 >> अब इस मामले में, इस कोड की लाइन है 329 00:17:50,570 --> 00:17:53,820 कि, पहले, हमें पता था छोटी गाड़ी हो हुआ। 330 00:17:53,820 --> 00:17:57,590 तो क्या होता है का मूल्यांकन करते हैं समय में इस खास बिंदु पर। 331 00:17:57,590 --> 00:18:02,620 एक लाइन पर प्रकाश डाला जाता है, तो इस लाइन अभी तक निष्पादित नहीं किया गया है। 332 00:18:02,620 --> 00:18:06,490 तो इस मामले में, हम देख सकते हैं मैं एक संख्या है, कि जो 333 00:18:06,490 --> 00:18:11,610 मैंने कहा जाता है एक पूर्णांक है एक मूल्य के 5 है कि गिन। 334 00:18:11,610 --> 00:18:15,090 और मैं प्रदर्शन किया जा रहा हूँ उस नंबर पर कुछ गणित। 335 00:18:15,090 --> 00:18:20,130 >> मैं उस पर कदम है, हम कर सकते हैं NUM के लिए है कि मूल्य को नोटिस 336 00:18:20,130 --> 00:18:23,780 के अनुसार बदल गया है हम वास्तव में किया है कि अंकगणित। 337 00:18:23,780 --> 00:18:26,810 और अब हम कर रहे हैं कि अंदर पाश के लिए इस बात का 338 00:18:26,810 --> 00:18:29,090 या अब कि पाश के लिए अपने आप पर प्रकाश डाला है, 339 00:18:29,090 --> 00:18:32,450 हम एक नया देखना है कि चर कि मैंने फोन 340 00:18:32,450 --> 00:18:35,370 पाश के लिए है कि में इस्तेमाल किया जा रहा है। 341 00:18:35,370 --> 00:18:38,230 >> अब जब कि मैं पहले याद कभी कभी आप कर रहे हैं उल्लेख किया है कि 342 00:18:38,230 --> 00:18:43,470 पागल की किसी तरह देखने के लिए जा रहा उस नंबर से पहले डिफ़ॉल्ट रूप में संख्या 343 00:18:43,470 --> 00:18:45,530 या कि चर रहा है वास्तव में initialized। 344 00:18:45,530 --> 00:18:49,040 हम ठीक है कि देख सकते हैं यहाँ इस चर में 345 00:18:49,040 --> 00:18:51,345 जो नहीं किया, मैंने फोन अभी तक प्रारंभ किया गया 346 00:18:51,345 --> 00:18:53,560 उजागर करने का समय। 347 00:18:53,560 --> 00:18:57,070 लेकिन हम इसे कुछ संख्या है कि देख सकते हैं हम वास्तव में उम्मीद नहीं की होगी कि। 348 00:18:57,070 --> 00:18:57,620 >> ठीक है। 349 00:18:57,620 --> 00:18:59,661 इसके बारे में चिंता मत करो हम वास्तव में नहीं है, क्योंकि 350 00:18:59,661 --> 00:19:04,970 मैं जब तक कि नंबर initialized इस लाइन और मूल्य पर कदम 351 00:19:04,970 --> 00:19:08,560 मैं मान 1 करने के लिए प्रारंभ की गई है। 352 00:19:08,560 --> 00:19:11,400 तो यह है कि वास्तव में है कि देखने के लिए मामला है, पर कदम चलो। 353 00:19:11,400 --> 00:19:14,420 अब हम देख सकते हैं कि कि लाइन निष्पादित किया गया है। 354 00:19:14,420 --> 00:19:17,000 और हम अब उजागर कर रहे हैं इस printf लाइन। 355 00:19:17,000 --> 00:19:22,230 >> और अब हम कैसे हमारे मूल्यों को देख सकते हैं की मैं और 3 समय के साथ बदल गया है। 356 00:19:22,230 --> 00:19:26,450 यह वास्तव में, ऐसा करने के लिए बहुत उपयोगी है, बार-बार लाइनों पर कदम रखने की है। 357 00:19:26,450 --> 00:19:30,480 और तुम क्या वास्तव में प्राप्त कर सकते हैं आपके लिए लूप के अंदर होता है 358 00:19:30,480 --> 00:19:33,660 और क्या होता है अंदर पाश के लिए इस बात का चर 359 00:19:33,660 --> 00:19:39,200 कि कार्यक्रम के क्रियान्वयन के रूप में एक समय में एक कदम होता है। 360 00:19:39,200 --> 00:19:41,110 >> अब इस बिंदु पर, मैं अभी पर्याप्त पर कदम रखा 361 00:19:41,110 --> 00:19:44,210 अब मैं अपने कार्यक्रम के अंत में हूँ। 362 00:19:44,210 --> 00:19:46,980 मैं उस पर कदम हैं, तो यह होगा वास्तव में निष्पादन के लिए संघर्ष 363 00:19:46,980 --> 00:19:48,860 हम अतीत में देखा है। 364 00:19:48,860 --> 00:19:52,110 तो, मुझे एक बार फिर, यह पुनः आरंभ करते हैं मैं कुछ और ही बात कर सकते हैं कि, 365 00:19:52,110 --> 00:19:53,320 भी। 366 00:19:53,320 --> 00:19:55,350 >> इस मामले में, यह है अब फिर से, मुझे पूछ रही है, 367 00:19:55,350 --> 00:19:57,100 एक नंबर के लिए जो मैं, फिर से, में प्रवेश करेंगे। 368 00:19:57,100 --> 00:20:00,300 लेकिन इस बार, मैं में प्रवेश करने के लिए जा रहा हूँ एक बड़ी संख्या इतनी है कि पाश के लिए 369 00:20:00,300 --> 00:20:02,540 अधिक बार पुनरावृति होगी। 370 00:20:02,540 --> 00:20:06,090 इस मामले में, मैं जा रहा हूँ 11 में से एक मान दर्ज करने के लिए। 371 00:20:06,090 --> 00:20:08,390 >> अब मैं फिर से निर्धारित था क्योंकि लाइन 15 पर एक ब्रेक प्वाइंट, 372 00:20:08,390 --> 00:20:10,490 यह है कि लाइन पर प्रकाश डाला जा रहा है। 373 00:20:10,490 --> 00:20:12,980 हम देख सकते हैं कि हमारे 11 नंबर सही ढंग से है 374 00:20:12,980 --> 00:20:15,560 हमारे स्थानीय चर में प्रतिनिधित्व किया। 375 00:20:15,560 --> 00:20:22,460 हम अब, उस पर कर सकते हैं कदम मैं के बारे में हमारी मूल्य के लिए देखो क्या होता है 376 00:20:22,460 --> 00:20:25,680 हम पाश के लिए इस के अंदर आगे बढ़ना है। 377 00:20:25,680 --> 00:20:31,960 यह हर बार हम incremented हो जाता है पाश के लिए उस के शीर्ष तक पहुँचने। 378 00:20:31,960 --> 00:20:35,110 >> चीजों में से एक अब जब कि हो सकता है निष्पादन के दौरान आपके पास करने के लिए उपयोगी हो सकता है 379 00:20:35,110 --> 00:20:40,490 इस कार्यक्रम के लिए वास्तव में मेरे लिए है देखने के लिए चर मझधार बदल 380 00:20:40,490 --> 00:20:42,450 क्या अपने कार्यक्रम के लिए होता है। 381 00:20:42,450 --> 00:20:46,540 इस मामले में, मैं वास्तव में यह कर सकते हैं डबल मूल्य पर क्लिक करें। 382 00:20:46,540 --> 00:20:48,040 यह एक पाठ क्षेत्र बन जाता है कि नोटिस। 383 00:20:48,040 --> 00:20:50,280 >> अब मैं अलग प्रवेश कर सकते हैं कुल मिलाकर मूल्य 384 00:20:50,280 --> 00:20:55,700 मेरे प्रोग्राम कैसे बर्ताव देखने के लिए मुझे लगता है कि चर बदल दिया है। 385 00:20:55,700 --> 00:20:59,560 अब इस मामले में, चर मैं अब मूल्य 10 शामिल हैं। 386 00:20:59,560 --> 00:21:02,810 लेकिन कार्यक्रम अभी भी है निष्पादन में रुका हुआ है। 387 00:21:02,810 --> 00:21:07,610 मैं पर कदम है, मैं देखना है कि मैं 10 के रूप में दर्ज है, जो मूल्य मुझे लगता है, 388 00:21:07,610 --> 00:21:12,170 , संख्या के मान से अधिक नहीं है जो तुरंत पाश के लिए कारण बनता है 389 00:21:12,170 --> 00:21:14,240 को क्रियान्वित करने से रोकने के लिए। 390 00:21:14,240 --> 00:21:16,210 >> अब जब कि केवल नहीं है कारण तुम क्यों करेगा 391 00:21:16,210 --> 00:21:19,450 जगह में चर को संशोधित करने के लिए चाहते हैं। 392 00:21:19,450 --> 00:21:22,210 आप वास्तव में चाहते हो सकता है यह तो संशोधित करने की कोशिश करने के लिए 393 00:21:22,210 --> 00:21:24,590 आप जारी रख सकते हैं एक पाश के निष्पादन 394 00:21:24,590 --> 00:21:27,370 या तो यह है कि आप संशोधित कर सकते हैं यह पहले कुछ मूल्य 395 00:21:27,370 --> 00:21:32,630 गणित के कुछ विशिष्ट सेट तक पहुँचता है तुम प्रदर्शन करने के बारे में हैं। 396 00:21:32,630 --> 00:21:36,210 >> तो अब हम वास्तव में है कि परिवर्तन कार्यक्रम के रूप में मैं के मूल्य को क्रियान्वित किया गया था, 397 00:21:36,210 --> 00:21:39,540 यह पाश के लिए छोड़ने की वजह से समय से पहले मैं, अचानक, क्योंकि 398 00:21:39,540 --> 00:21:42,770 मूल्य से अधिक होने का क्या हुआ NUM की, पाश के लिए है कि जिसका अर्थ है कि 399 00:21:42,770 --> 00:21:45,410 अब कोई निष्पादित करने की जरूरत है। 400 00:21:45,410 --> 00:21:48,780 इसके अलावा, यह होने का क्या हुआ हम मैं के मूल्य बदल गया है कि मामले 401 00:21:48,780 --> 00:21:53,270 लाइन 17 पर प्रकाश डाला गया था, समय में बिंदु था जो 402 00:21:53,270 --> 00:21:56,280 कि पाश निष्पादन के लिए वास्तव में मूल्यांकन किया जा रहा था। 403 00:21:56,280 --> 00:22:00,210 >> मैं मूल्य का बदला था तो मैं एक अलग लाइन पर, 19 का कहना है 404 00:22:00,210 --> 00:22:03,360 हम अलग अलग देखा होगा व्यवहार लाइन 19 होगा क्योंकि 405 00:22:03,360 --> 00:22:08,310 पाश से पहले मार डाला है हालत संघर्ष शुरू किया गया था। 406 00:22:08,310 --> 00:22:11,900 अब इस बिंदु पर, मैं कर रहा हूँ, फिर से, इस कार्यक्रम के अंत में। 407 00:22:11,900 --> 00:22:15,707 और मैं इस पर आगे बढ़ने की अनुमति दे सकते हैं मेरे कार्यक्रम स्वाभाविक रूप से पद छोड़ने की अनुमति देते हैं। 408 00:22:15,707 --> 00:22:18,290 लेकिन चीजों की एक जोड़ी है दूर लेने के लिए महत्वपूर्ण हैं कि 409 00:22:18,290 --> 00:22:19,960 इस विशेष चर्चा से। 410 00:22:19,960 --> 00:22:22,490 आप का मूल्यांकन करने की जरूरत है अपने ही मान्यताओं 411 00:22:22,490 --> 00:22:24,710 के बारे में कैसे कोड से बर्ताव किया जाना चाहिए। 412 00:22:24,710 --> 00:22:28,220 किसी भी समय आप कुछ टुकड़ा लगता है कि आप जानते हैं कि कोड काम करने के लिए होता है की, 413 00:22:28,220 --> 00:22:30,940 कि जाने के लिए एक लाल झंडा हो सकता है पीठ और मूल्यांकन, और यह सुनिश्चित हो 414 00:22:30,940 --> 00:22:33,470 की अपनी धारणा है कि कैसे है कि कोड काम कर रहा है 415 00:22:33,470 --> 00:22:38,290 यह कैसे होता है करने के लिए वास्तव में सच है अपने स्रोत कोड में व्यक्त किया। 416 00:22:38,290 --> 00:22:41,300 >> लेकिन बात करने के लिए और भी अधिक था, हम डिबगर का उपयोग कर रहे हैं, 417 00:22:41,300 --> 00:22:43,920 आप पर ब्रेकप्वाइंट डाल सकते हैं कोड के विभिन्न लाइनों, 418 00:22:43,920 --> 00:22:48,110 करने के लिए डिबगर कारण होगा जो उन पंक्तियों में से प्रत्येक में निष्पादन को थामने 419 00:22:48,110 --> 00:22:52,210 इसलिए आप का मूल्यांकन कर सकते हैं कि स्मृति या यहां तक ​​कि यह जगह में बदल जाते हैं। 420 00:22:52,210 --> 00:22:55,630 और फिर, आप कर सकते हैं कि याद कई ब्रेकप्वाइंट बनाने के लिए इतना है कि आप 421 00:22:55,630 --> 00:23:00,390 यह भी निष्पादन को फिर से शुरू कर सकते हैं, को छोड़ कोड के बड़े हिस्से से अधिक है, 422 00:23:00,390 --> 00:23:04,790 और यह स्वचालित रूप से रोक देंगे अगले ब्रेक के बिंदु पर। 423 00:23:04,790 --> 00:23:07,760 >> वास्तव में और अधिक उन्नत नहीं है डिबगर की सुविधाओं, के रूप में अच्छी तरह से। 424 00:23:07,760 --> 00:23:10,170 लेकिन हम आप का उल्लेख करना होगा कुछ बाद वीडियो 425 00:23:10,170 --> 00:23:14,090 वास्तव में कैसे अलग तंग करने के क्रम में विशेष रूप से उन कार्यों का उपयोग करने के लिए। 426 00:23:14,090 --> 00:23:15,990 अभी के लिए, धन्यवाद देखने के लिए बहुत ज्यादा। 427 00:23:15,990 --> 00:23:18,080 और अच्छी किस्मत डिबगिंग।