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 IDE, якія дазваляюць Вы лёгка адладжваць праграму. 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 тут, калі мы вываду, проста, 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 мы хочам, каб закругліць up-- то мы ведалі, што мы маглі б 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 У гэтым выпадку той, які мы будзем выкарыстанне адладчыка GNU ці 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 IDE таксама 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 IDE. 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 хацеў бы атрымаць, калі б мы спрабавалі запусціць зрабіць на Праграма C у акне тэрмінала. 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 IDE, прымаючы вашу мыш 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 >> Вы можаце ўсталяваць некалькі радкоў, як кропкі супыну, калі вы хацелі б. 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 І націснуўшы кнопку Play будзе дазваляюць аднавіць выкананне 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 Мы можам бачыць тут, што мы маем зменную называецца піт, па змаўчанні мае значэнне 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 >> Цяпер у наступны раз, што я ўваходжу некаторыя input-- таму я ўвесці гэты нумар 5, 291 00:15:43,370 --> 00:15:46,140 як мы бачылі ў past-- ўдар Enter, і мы 292 00:15:46,140 --> 00:15:51,430 Звярніце ўвагу, што адразу, GDB паўзаў і, зноў жа, падкрэслівае наступны радок. 293 00:15:51,430 --> 00:15:55,320 Але звярніце ўвагу, што ў цяперашні час, як Вынік нашага ўводу значэння, 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 Так што, магчыма, я на самой справе хачу, каб паварушыць Point Break крыху далей. 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 У мяне ёсць цэлы лік, званае Num, што мае значэнне 5. 334 00:18:11,610 --> 00:18:15,090 І я збіраюся зрабіць некаторыя матэматычныя на гэта лік. 335 00:18:15,090 --> 00:18:20,130 >> Калі я пераступіць, што мы можам Звярніце ўвагу, што значэнне для піт 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 мы бачым, што ў нас ёсць новы Пераменная называецца I, што 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 называецца I, якія не мае пакуль быў ініцыялізаваны 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 ня ініцыялізаваны гэты лік да I крок на гэтую лінію, а значэнне 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 Пераступіўшы праз гэта, мы цяпер можам глядзець, што адбываецца з нашай кошту I 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 гэтай праграмы для мяне на самой справе змяніць зменныя пераправе, каб убачыць 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 апынулася больш, чым значэнне з піт, гэта азначае, што што для цыклу 399 00:21:42,770 --> 00:21:45,410 больш не патрэбныя для выканання. 400 00:21:45,410 --> 00:21:48,780 Акрамя таго, аказалася, быў так, што мы змянілі значэнне I 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 І добра адладкі ўдачы.