1 00:00:00,000 --> 00:00:00,309 2 00:00:00,309 --> 00:00:02,350 [? | DAN 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 এবং 1 আমরা 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 আমরা তখন বইয়ের নাম আপ সুসম্পন্ন করতে চান আমরা পারা মানুষ তা জানে না 72 00:04:04,550 --> 00:04:08,060 এই ক্ষেত্রে, যে নির্দিষ্ট জিনিস করতে. 73 00:04:08,060 --> 00:04:14,010 এখন এখানে আমরা হবে জানি আমাদের আধলা সংখ্যা 1 যোগ করতে পারবেন. 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 একটি GUI বা ব্যবহারকারীর উপলব্ধ , 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 এটা আউটপুট হয় একই জিনিস যে আমরা 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 কিন্তু শুধু কিছু হাতে না waving [শ্রবণাতীত], যা 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-- অকার্যকর চ জন্য 209 00:11:23,780 --> 00:11:31,230 এবং শুধু হ্যালো এখানে একটি মুদ্রণ লাইন না 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 >> আপনি একাধিক লাইন সেট করতে পারেন আপনি যদি চান, ব্রেকপয়েন্ট. 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 এখন এই ক্ষেত্রে, আমরা দেখতে পারেন আমি কিছু আউটপুট সম্পাদিত হয়েছে. 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 যে কোন int জন্য ব্যবহারকারীর অনুসন্ধানের যে আমরা আমাদের প্রোগ্রাম ব্যবহার করতে চান. 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 >> আমি কিছু লিখতে যে এখন পরের বার ইনপুট তাই আমি যে সংখ্যা 5 লিখবেন 291 00:15:43,370 --> 00:15:46,140 আমরা দেখা করেছি রিটার্ন আঘাত past--, এবং আমরা 292 00:15:46,140 --> 00:15:51,430 যে, অবিলম্বে, GDB, pauses লক্ষ্য এবং, আবার পরের লাইন তুলে ধরে. 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 আমি ডিবাগার ব্যবহার করছি যে এখন আমি may এই ডিবাগ 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 আছে NUM. 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 অথবা যে পরিবর্তনশীল আসলে সক্রিয়া. 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 আমি যে পর্যন্ত সংখ্যা সক্রিয়া এই লাইন এবং মান উপর পইঠা 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 আমি এখন আমার প্রোগ্রাম শেষে am যে. 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 এটা প্রত্যেক সময় আমরা মান বৃদ্ধি পায় লুপ জন্য যে শীর্ষে পৌঁছানোর. 378 00:20:31,960 --> 00:20:35,110 >> জিনিস এক এখন যে প্রতাপ সঞ্চালনের সময় করতে উপযোগী হতে 379 00:20:35,110 --> 00:20:40,490 এই প্রোগ্রামের আসলে আমার জন্য নয় দেখতে ভেরিয়েবল midstream পরিবর্তন 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 , NUM মূল্য তার চেয়ে অনেক বেশী, যা অবিলম্বে লুপ জন্য কারণ 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 লুপ আগে মৃত্যুদন্ড কার্যকর করেছে শর্ত reevaluated হয়. 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 এবং সৌভাগ্য ডিবাগ.