1 00:00:00,000 --> 00:00:00,309 2 00:00:00,309 --> 00:00:02,350 [? DAN ARMADARAS:?] Hi, Es esmu [? Dan Armadaras?]. 3 00:00:02,350 --> 00:00:04,410 Šodien mēs esam gatavojas būt meklē atkļūdošanu. 4 00:00:04,410 --> 00:00:06,697 Ne tikai mēs gatavojamies runāt par dažiem paņēmieniem, 5 00:00:06,697 --> 00:00:09,280 bet arī mēs ejam apskatīt dažas no pazīmēm, kas 6 00:00:09,280 --> 00:00:14,170 ietvaros CS50 IDE, kas ļautu viegli atkļūdot programmas. 7 00:00:14,170 --> 00:00:16,272 >> Tikai viens piemērs kaut kas var noiet greizi 8 00:00:16,272 --> 00:00:18,730 un tas ir tiešām kaut kas ka mēs esam jau redzējis. 9 00:00:18,730 --> 00:00:23,200 Šajā gadījumā tas ir C programma kas pieņem vesels skaitlis no lietotāja, 10 00:00:23,200 --> 00:00:27,580 dala to ar divi, un sniedz izejas atpakaļ uz lietotāja. 11 00:00:27,580 --> 00:00:30,610 Tagad no tā, ko mēs esam redzējuši agrāk lekcijās, 12 00:00:30,610 --> 00:00:34,370 mēs zinām, ka tas faktiski izraisīt īpašu veidu dalījumu problēmas 13 00:00:34,370 --> 00:00:35,860 kad mums ir nepāra numuriem. 14 00:00:35,860 --> 00:00:40,330 >> Konkrēti, mēs tikai mest prom kaut kas aiz komata. 15 00:00:40,330 --> 00:00:43,170 Tagad mēs zinām, ka tas notiek, ir tas gadījums. 16 00:00:43,170 --> 00:00:47,430 Un, ja mēs palaist to, mēs varam apstiprināt , mūsu aizdomas, pirmkārt, apkopojot. 17 00:00:47,430 --> 00:00:50,460 Un tad, palaižot un ievadot nepāra numuru. 18 00:00:50,460 --> 00:00:51,720 >> Tas nav nekas jauns. 19 00:00:51,720 --> 00:00:54,490 Bet tas ir faktiski piemērs bug ka 20 00:00:54,490 --> 00:00:58,810 var pastāvēt plašākas programmas kas kļūst grūtāk izsekot. 21 00:00:58,810 --> 00:01:02,640 Pat ja mēs zinām, kāda ir problēma ir patiesā lietas būtība 22 00:01:02,640 --> 00:01:06,250 varētu mēģināt identificēt īpaši, ja kļūda, 23 00:01:06,250 --> 00:01:09,750 Nosakot, kas šo problēmu ir, un pēc tam nosakot to. 24 00:01:09,750 --> 00:01:14,400 Tā nodrošina šo kā piemēru par to, kas varētu būt kaut kas 25 00:01:14,400 --> 00:01:19,030 ka mēs jau zinām, bet var būt aprakti citās elementiem kodu. 26 00:01:19,030 --> 00:01:23,090 >> Tātad atverot šo citu avotu kods fails kā piemēru, 27 00:01:23,090 --> 00:01:27,165 šī nodaļa problēma tagad daļa no lielāka programmu. 28 00:01:27,165 --> 00:01:29,040 Vēl varētu būt nedaudz bit izdomāts, un mēs 29 00:01:29,040 --> 00:01:31,076 varētu viegli identificēt, jo īpaši 30 00:01:31,076 --> 00:01:32,450 jo mēs esam tikai apspriežam šo. 31 00:01:32,450 --> 00:01:38,250 Bet mēs varam izrēķināt, ka šis Problēma var pastāvēt plašākā mērogā. 32 00:01:38,250 --> 00:01:45,450 >> Ja es sastādīt šo un tagad palaist to, ievadiet nepāra numuru, 33 00:01:45,450 --> 00:01:49,816 mēs varam redzēt, ka mēs nesaņem precīzi produkcija, ko mēs varētu sagaidīt. 34 00:01:49,816 --> 00:01:51,690 Šajā konkrētajā gadījumā, mēs varētu teikt, ka mēs 35 00:01:51,690 --> 00:01:56,060 vēlaties saskaitīt visus numurus no viena līdz pat dažiem konkrēto numuru. 36 00:01:56,060 --> 00:01:58,130 Un mēs varam redzēt, ka mēs ir dažādi jautājumi 37 00:01:58,130 --> 00:02:03,880 šeit, ja mēs esam outputting, vienkārši, 0 un 1, ja mēs piedāvājam ievadi 5. 38 00:02:03,880 --> 00:02:07,380 >> Tātad mēs jau zinām, ka tur ir problēma šeit. 39 00:02:07,380 --> 00:02:11,662 Bet mēs nevar zināt precīzi kur šis jautājums patiešām pastāv. 40 00:02:11,662 --> 00:02:13,620 Tagad viens no veidiem, kas mēs varam mēģināt noteikt šo 41 00:02:13,620 --> 00:02:15,745 ir kaut kas, mēs esam jau ir ieviesti, lai. 42 00:02:15,745 --> 00:02:18,880 Mēs varam tikai izmantot to plašākā mērogā. 43 00:02:18,880 --> 00:02:21,680 >> On line 14, mums ir Tas printf funkciju, 44 00:02:21,680 --> 00:02:25,620 kas ļauj izdrukāt valsti dažādu informācijas daļas. 45 00:02:25,620 --> 00:02:28,880 Un tas ir kaut kas jums būtu jāpiesaista jūsu programmā 46 00:02:28,880 --> 00:02:33,100 mēģināt izdomāt, ko tieši ir notiek dažādos rindas kodu. 47 00:02:33,100 --> 00:02:36,350 Tātad, pat tad, ja tā nav Galīgā produkcija, ka mēs faktiski 48 00:02:36,350 --> 00:02:39,830 vēlas ražot no Šī programma, mēs joprojām 49 00:02:39,830 --> 00:02:42,300 varētu būt dažas debug pārskatus, ja mēs 50 00:02:42,300 --> 00:02:46,970 var mēģināt izdomāt ko tieši notiek iekšpusē mūsu kodu. 51 00:02:46,970 --> 00:02:51,210 >> Tātad šajā gadījumā, es gribu printf ar atkļūdošanas tag. 52 00:02:51,210 --> 00:02:53,540 Šajā gadījumā, tas ir tikai atkļūdot string 53 00:02:53,540 --> 00:02:56,840 ka es esmu up-liekot, lai tā kļūst ļoti skaidri produkcijas manu kodu 54 00:02:56,840 --> 00:02:59,200 kas tas ir, ka es gribu parādīt. 55 00:02:59,200 --> 00:03:04,410 Un izejas šeit skaits ka mēs esam aprēķināts. 56 00:03:04,410 --> 00:03:06,800 >> Šajā gadījumā, es varētu gribu zināt precīzi 57 00:03:06,800 --> 00:03:11,380 kas notiek pirms un pēc kāda konkrēta skaitļošanai. 58 00:03:11,380 --> 00:03:16,224 Tāpēc es varētu izmantot printf pirms un pēc šī koda rindu. 59 00:03:16,224 --> 00:03:18,640 Šajā gadījumā, es varētu pat padara to mazliet vairāk skaidrs 60 00:03:18,640 --> 00:03:21,960 pasakot debug pirms un atkļūdot pēc tik 61 00:03:21,960 --> 00:03:26,540 ka man nav sajaukt ar sevi vairākas līnijas, kas izskatās identiski. 62 00:03:26,540 --> 00:03:32,290 >> Tagad, ja mēs recompile šo un palaist tas, ievadiet numuru, piemēram, pieciem atkal, 63 00:03:32,290 --> 00:03:35,090 mēs varam redzēt, ka mums ir tagad produkcija pirms un pēc 64 00:03:35,090 --> 00:03:40,670 un konstatēt, ka mēs neesam darījuši skaidra sadalīšana vai skaidrs, kam skaita 65 00:03:40,670 --> 00:03:43,680 ka mēs patiešām vēlamies darīt. 66 00:03:43,680 --> 00:03:48,660 Tagad šajā gadījumā, tas ir nav īsti skaidra izejas. 67 00:03:48,660 --> 00:03:52,440 Tas nav īsti skaidrs, ka iznākums mēs gribam no šo konkrēto programmu. 68 00:03:52,440 --> 00:03:54,427 >> Un tas ir, atkal A mazliet izdomāts. 69 00:03:54,427 --> 00:03:57,510 Bet, iespējams, viena no lietām, kas mēs varētu darīt, ja specifikācija teica 70 00:03:57,510 --> 00:04:01,900 ka mēs vēlamies dalīt šo, 2 un pievienot 1-- tik citiem vārdiem sakot, 71 00:04:01,900 --> 00:04:04,550 mēs vēlamies, lai noapaļot up-- tad mēs varētu zināt, ka mēs varētu 72 00:04:04,550 --> 00:04:08,060 darīt, ka konkrētu lietu, kas šajā gadījumā. 73 00:04:08,060 --> 00:04:14,010 Tagad šeit mēs zinām, ka mēs būsim var pievienot 1 līdz mūsu uz pusi numuru. 74 00:04:14,010 --> 00:04:16,490 >> Pieņemsim recompile šis un apstiprina, ka šis 75 00:04:16,490 --> 00:04:18,860 uzvedas tā, ka mēs vēlamies. 76 00:04:18,860 --> 00:04:21,980 Mēs varam redzēt, ka tagad pirms ņemot, mums ir numurs 5. 77 00:04:21,980 --> 00:04:26,620 Pēc tam, mums ir numurs 3, kas saskaņā ar mūsu specifikācijai, 78 00:04:26,620 --> 00:04:29,292 ir tas, ko mēs vēlējāmies darīt. 79 00:04:29,292 --> 00:04:31,000 Bet, ja mēs skatāmies uz izeja šeit, mēs varam 80 00:04:31,000 --> 00:04:33,760 redzēt, ka mēs varētu būt vēl viens bug kopumā, kas ir 81 00:04:33,760 --> 00:04:36,940 ka mēs sākam mūsu skaitu no 0. 82 00:04:36,940 --> 00:04:39,390 >> Tagad atkal, tas ir kaut kas ka mēs esam redzējuši iepriekš 83 00:04:39,390 --> 00:04:42,500 un mēs varam noteikt diezgan viegli. 84 00:04:42,500 --> 00:04:44,790 Bet šajā gadījumā, mēs bija arī labā 85 00:04:44,790 --> 00:04:48,940 izmantot printf paziņojumu tieši iekšpusē cilpa 86 00:04:48,940 --> 00:04:52,930 zināt precīzi, kur ka kļūda bija noticis. 87 00:04:52,930 --> 00:04:55,150 Tātad printf apgalvojumi ir ļoti noderīgi, palīdzot 88 00:04:55,150 --> 00:04:57,940 jums noteikt, kur, Tieši jūsu avota kodu, 89 00:04:57,940 --> 00:05:00,620 īpašs kļūda notiek. 90 00:05:00,620 --> 00:05:03,650 >> Un tas ir arī svarīgi apzināties ka, jo mēs esam rakstot kodu, 91 00:05:03,650 --> 00:05:06,052 mēs varētu būt pieņēmumus par valsts programmas. 92 00:05:06,052 --> 00:05:08,510 Vai mēs varētu būt pieņēmumus par to, kas ir daļa no programmas 93 00:05:08,510 --> 00:05:13,020 ir faktiski pareiza vai nepareiza, kad vēlāk kā mēs veidojam par šo programmu 94 00:05:13,020 --> 00:05:15,950 un padarīt to daļa no sarežģīts un lielāks programma 95 00:05:15,950 --> 00:05:19,700 ka mēs saprotam, ka daži aspekts no tā ir faktiski buggy. 96 00:05:19,700 --> 00:05:22,680 >> Izmantojot printf tiešām var palīdzēt sašaurināt un identificēt 97 00:05:22,680 --> 00:05:26,430 reģioni programmu, kas nedrīkst būt uzvedas tieši tā, ka mēs 98 00:05:26,430 --> 00:05:29,500 gaidīt, pamatojoties uz mūsu pieņēmumiem. 99 00:05:29,500 --> 00:05:31,460 Bet tur ir citi instrumenti pieejami, kā arī, 100 00:05:31,460 --> 00:05:34,860 kas ļauj mums mēģināt izdomāt , kur kļūda notiek 101 00:05:34,860 --> 00:05:39,930 Kā arī, konkrētāk, ko lietas kas notiek iekšpusē programmas. 102 00:05:39,930 --> 00:05:41,990 >> Tātad, izmantojot printf ir ļoti noderīgi, ja mēs gribam 103 00:05:41,990 --> 00:05:45,900 lai noteiktu konkrētas jomas programma, kas ir dažas bug. 104 00:05:45,900 --> 00:05:47,730 Bet tas arī kļūst garlaicīgs pēc brītiņa. 105 00:05:47,730 --> 00:05:50,500 Šajā gadījumā, tas ir salīdzinoši vienkārša programma 106 00:05:50,500 --> 00:05:52,750 ar vienu vai diviem mainīgajiem. 107 00:05:52,750 --> 00:05:57,260 Un tas kļūst ļoti viegli, lai mēs izdrukāt vērtību šiem mainīgajiem 108 00:05:57,260 --> 00:05:59,670 saistībā ar lielāku programmas. 109 00:05:59,670 --> 00:06:02,670 >> Bet mēs varētu būt atšķirīgs Programma, kas ir daudz mainīgie. 110 00:06:02,670 --> 00:06:06,530 Un tas nevar būt pilnīgi tik viegli lietot printf 111 00:06:06,530 --> 00:06:10,120 lai mēģinātu novērtēt to, kas notiek uz katra no minētajiem mainīgajiem 112 00:06:10,120 --> 00:06:13,590 kā Programmas izpildes. 113 00:06:13,590 --> 00:06:16,960 Tur ir programma, kas pastāv sauc atkļūdotājs programma. 114 00:06:16,960 --> 00:06:20,320 Šajā gadījumā viens, ka mēs izmantošana ir GNU atkļūdotājs, vai GDB, 115 00:06:20,320 --> 00:06:24,260 kas ļauj mums pārbaudīt iekšējais darbības principiem programma, daudz vairāk 116 00:06:24,260 --> 00:06:25,700 detalizēts veidā. 117 00:06:25,700 --> 00:06:28,810 >> Mēs faktiski varam izpildīt GDB no komandrindas 118 00:06:28,810 --> 00:06:35,370 šeit, vienkārši ierakstot GDB un komanda, kas mēs gribam, lai atkļūdot. 119 00:06:35,370 --> 00:06:37,550 Šajā gadījumā, skaits. 120 00:06:37,550 --> 00:06:41,650 Tagad šajā gadījumā, mēs varam redzēt, ka tas mūs uz uzvedni, kas saka GDB. 121 00:06:41,650 --> 00:06:44,020 Un mēs varam faktiski izpildīt komandas GDB 122 00:06:44,020 --> 00:06:48,260 faktiski sākt izpildi programma, pārtraukt to noteiktos punktos, 123 00:06:48,260 --> 00:06:51,060 izvērtē mainīgos un pārbaudīt mainīgos, kas 124 00:06:51,060 --> 00:06:54,152 pastāv programmas valstī tajā brīdī, 125 00:06:54,152 --> 00:06:55,110 un tā tālāk, un tā tālāk. 126 00:06:55,110 --> 00:06:57,240 Tas nodrošina daudz jaudas, lai mums. 127 00:06:57,240 --> 00:06:59,960 >> Bet tas tikai tā notiek, ka CS50 IDE arī 128 00:06:59,960 --> 00:07:05,870 nodrošina GUI vai lietotājs interfeiss GDB ka 129 00:07:05,870 --> 00:07:11,120 ļauj mums to darīt bez nepieciešamības komandrindas saskarne whatsoever 130 00:07:11,120 --> 00:07:13,560 vai vispār pat. 131 00:07:13,560 --> 00:07:16,930 Tā, ka es varu piekļūt ka ir, izmantojot pogu atkļūdošanas 132 00:07:16,930 --> 00:07:20,120 pašā augšā CS50 IDE. 133 00:07:20,120 --> 00:07:24,280 Tagad pagātnē, kas mums ir redzams, ir tas, ka mēs izmantojam komandu 134 00:07:24,280 --> 00:07:27,660 line, lai apkopotu un pēc tam palaist programmu. 135 00:07:27,660 --> 00:07:29,790 >> Atkļūdošanas poga dara abiem šiem soļiem. 136 00:07:29,790 --> 00:07:34,380 Bet tas arī būs audzināt atkļūdotājs tab par tālu pa labi 137 00:07:34,380 --> 00:07:38,280 kas ļauj mums pārbaudīt dažādus no īpašību programmas 138 00:07:38,280 --> 00:07:40,500 kā tas ir izpildes. 139 00:07:40,500 --> 00:07:44,280 Ja es noklikšķiniet debug, šajā gadījumā, tas būs audzināt 140 00:07:44,280 --> 00:07:48,230 jauns tab konsole logu pašā apakšā. 141 00:07:48,230 --> 00:07:51,160 >> Un jūs varat redzēt, ka tas ir cilnes kādu informāciju pašā augšā. 142 00:07:51,160 --> 00:07:52,670 Un mēs varam lielā mērā ignorēt. 143 00:07:52,670 --> 00:07:54,800 Bet viena no lietām ka mēs vēlamies, lai paziņojuma 144 00:07:54,800 --> 00:07:57,170 ir tas, ka tā rezultāti tas pats, kas mums 145 00:07:57,170 --> 00:08:03,000 varētu iegūt, ja mēs mēģinājām palaist padarīt par C programma termināļa logā. 146 00:08:03,000 --> 00:08:06,230 >> Lūk, mēs varam redzēt, tas darbojas šķindēt, un tā ir dažādas karogiem, 147 00:08:06,230 --> 00:08:12,660 un tas ir apkopojot mūsu count.c failu, kas bija izvēlēts tab brīdī 148 00:08:12,660 --> 00:08:15,100 ka es hit debug. 149 00:08:15,100 --> 00:08:18,010 Tātad tas ir ļoti noderīgi, jo Tagad, izmantojot šo atkļūdot pogu, 150 00:08:18,010 --> 00:08:23,280 mēs varam vienlaicīgi sastādīt un pēc tam izpildīt programmu, ka mēs faktiski 151 00:08:23,280 --> 00:08:24,460 vēlas darboties. 152 00:08:24,460 --> 00:08:27,880 >> Viens no karogiem, kas ir svarīgs, šajā gadījumā, 153 00:08:27,880 --> 00:08:30,190 mēs esam patiesībā bijis, izmantojot visilgāk 154 00:08:30,190 --> 00:08:32,450 bet arī vienkārši darīju zināmu roku ilgviļņu [dzirdams], kas 155 00:08:32,450 --> 00:08:33,820 tas ir viens tieši šeit. 156 00:08:33,820 --> 00:08:35,790 In šķindēt, tā saka -ggdb3. 157 00:08:35,790 --> 00:08:38,570 158 00:08:38,570 --> 00:08:41,250 Šajā gadījumā, kas esam stāsta šķindēt, mūsu kompilators, 159 00:08:41,250 --> 00:08:43,820 ir tas, ka mēs gribam, lai apkopotu mūsu programmu. 160 00:08:43,820 --> 00:08:46,810 Bet arī sniegt to, ko ir sauc simbols informācija 161 00:08:46,810 --> 00:08:50,940 tā, ka kompilators faktiski ir piekļuve uz daudz pamatā esošo informāciju 162 00:08:50,940 --> 00:08:52,610 ietvertas programmas ietvaros. 163 00:08:52,610 --> 00:08:55,260 >> Precīzāk, to skaits Funkciju, kas man ir, 164 00:08:55,260 --> 00:08:58,000 nosaukumi šīm funkcijām, mainīgie, to veidi 165 00:08:58,000 --> 00:09:01,730 ka šie mainīgie ir, un šķirni citas lietas, kas palīdz atkļūdotājs 166 00:09:01,730 --> 00:09:04,350 veiktu savu darbību. 167 00:09:04,350 --> 00:09:06,600 Tagad tur ir kaut kas cits tas ir svarīgi pieminēt 168 00:09:06,600 --> 00:09:10,280 kad mēs apspriežam skriešanu programma, šādā veidā. 169 00:09:10,280 --> 00:09:13,660 >> Ievērojiet, ka tas ir faktiski audzināti jaunu cilni mūsu konsole 170 00:09:13,660 --> 00:09:14,780 pa dibenu. 171 00:09:14,780 --> 00:09:18,600 Mums vairs nav, lai mijiedarbotos tieši ar termināļa logu. 172 00:09:18,600 --> 00:09:21,420 Bet šī jaunā tab ir faktiski termināla logu. 173 00:09:21,420 --> 00:09:26,710 Tas vienkārši ir raksturīgi darbībai programma, ka mēs esam radījuši. 174 00:09:26,710 --> 00:09:29,270 >> Paziņojums, ka apakšā, kas kombinācija ar kādu produkciju 175 00:09:29,270 --> 00:09:33,500 ko šķindēt kompilators un gdb, ko mēs varam lielā mērā ignorēt, 176 00:09:33,500 --> 00:09:37,570 tas faktiski parāda produkciju Mūsu programma pašā apakšā. 177 00:09:37,570 --> 00:09:41,240 Tagad tas ir svarīgi apzināties ka šis viens logs faktiski 178 00:09:41,240 --> 00:09:43,360 parādīs izeja no jūsu programmā 179 00:09:43,360 --> 00:09:47,190 bet arī var pieņemt ieguldījumu par šo programmu, kā arī. 180 00:09:47,190 --> 00:09:49,260 >> Tātad paziņojums, ka saka ievadiet numuru, 181 00:09:49,260 --> 00:09:53,050 kas ir tas pats izejas ka mums bija bija termināļa logā pirms. 182 00:09:53,050 --> 00:09:55,510 Bet tas tagad redzams šajā jaunā cilnē. 183 00:09:55,510 --> 00:09:56,550 Man varat ievadīt numuru. 184 00:09:56,550 --> 00:10:00,900 Un tas tiešām funkcija kā mēs sagaidām 185 00:10:00,900 --> 00:10:05,890 parādot mums mūsu debug, produkciju, produkcija, kas varētu būt buggy, 186 00:10:05,890 --> 00:10:07,010 kā mēs esam redzējuši iepriekš. 187 00:10:07,010 --> 00:10:10,460 Un pašā apakšā, to faktiski ir dažas papildu produkciju 188 00:10:10,460 --> 00:10:14,550 no IKP, tikai saku, ka šī programma ir pabeigta. 189 00:10:14,550 --> 00:10:16,655 >> Tagad, kā redzējāt šajā īpaši palaist cauri, 190 00:10:16,655 --> 00:10:19,370 tas nebija īpaši noderīgi, jo pat 191 00:10:19,370 --> 00:10:23,740 lai gan mums bija atkļūdotājs izvēlne nākt up, tas bija vēl darbojas programma. 192 00:10:23,740 --> 00:10:26,790 Nevienā brīdī darīja faktiski pauzes izpildi par mums 193 00:10:26,790 --> 00:10:30,767 lai varētu pārbaudīt visus mainīgie ietvertas. 194 00:10:30,767 --> 00:10:32,850 Tur ir kaut kas cits kas mums ir jādara, lai 195 00:10:32,850 --> 00:10:36,910 nokļūt gdb atzīt, ka mēs gribam lai apturētu programmas izpildi 196 00:10:36,910 --> 00:10:42,820 un ne tikai ļaut tam turpināt parasti kā mēs darītu jebkurā citā gadījumā. 197 00:10:42,820 --> 00:10:45,530 >> Lai apturētu izpildi, kādā konkrētā līnijā, 198 00:10:45,530 --> 00:10:47,830 mums ir nepieciešams, lai radītu to, kas ir sauc par lūzuma punkts. 199 00:10:47,830 --> 00:10:52,670 Un lūzuma punkts ir ļoti viegli radīt šajā CS50 IDE, ņemot peli 200 00:10:52,670 --> 00:10:57,090 un uzklikšķinot tieši pa kreisi par kādu konkrētu līnijas numuru. 201 00:10:57,090 --> 00:10:59,920 Kad es to izdarītu, sarkans dot Šķiet, kas norāda 202 00:10:59,920 --> 00:11:02,300 ka šī līnija tagad ir lūzuma punkts. 203 00:11:02,300 --> 00:11:07,540 >> Un nākamreiz, ka es palaist gdb, to apstāsies izpildi šajā lūzuma punkts 204 00:11:07,540 --> 00:11:10,280 kad tas sasniedz šo rindiņu kodu. 205 00:11:10,280 --> 00:11:12,230 Tagad tas ir svarīgs lieta saprast 206 00:11:12,230 --> 00:11:16,140 ka tas nav obligāti lieta, ka katrs līnija koda 207 00:11:16,140 --> 00:11:17,880 ir faktiski pieejama. 208 00:11:17,880 --> 00:11:23,780 Ja es būtu izveidot funkciju šeit, lai example-- neesošu f-- 209 00:11:23,780 --> 00:11:31,230 un vienkārši darīt drukas līniju here-- sveiki world-- ja es nekad aicinu šo funkciju, 210 00:11:31,230 --> 00:11:34,770 tas būs gadījums, ka, ja es noteikti lūzuma punkts šeit, 211 00:11:34,770 --> 00:11:36,220 funkcija nekad netiks saukts. 212 00:11:36,220 --> 00:11:38,310 Un tādēļ šī īpaši lūzuma punkts 213 00:11:38,310 --> 00:11:43,040 nekad faktiski apturētu programmas izpildi. 214 00:11:43,040 --> 00:11:48,020 >> Tātad pieņemsim, ka es pareizi izveidot pārtraukums punkts uz kādu rindiņu kodu 215 00:11:48,020 --> 00:11:50,340 ka faktiski tiks izpildīts. 216 00:11:50,340 --> 00:11:53,470 Tagad šajā gadījumā, tas ir Pirmā līnija galvenā funkcija. 217 00:11:53,470 --> 00:11:56,630 Tātad tas noteikti būs gadījums ka, tiklīdz es sākt izpildi, 218 00:11:56,630 --> 00:11:58,580 Pati pirmā līnija tiks sasniegts. 219 00:11:58,580 --> 00:12:00,230 GDB būs apturētu izpildi. 220 00:12:00,230 --> 00:12:04,100 Un tad, es būs iespēja mijiedarbojas ar atkļūdotājs. 221 00:12:04,100 --> 00:12:08,480 >> Jūs varat uzstādīt vairākas rindas, kā robežkoncentrācija, ja jūs vēlētos. 222 00:12:08,480 --> 00:12:11,365 Mēs varam arī izveidot līniju uz augšu šeit šajā segmentā kodu 223 00:12:11,365 --> 00:12:12,490 kas nekad netiks sasniegts. 224 00:12:12,490 --> 00:12:14,744 Un mēs varam arī iestatīt vienu turpmāk. 225 00:12:14,744 --> 00:12:16,660 Iemesls, ka mēs būtu gribu darīt to mēs 226 00:12:16,660 --> 00:12:19,119 iedziļināties mazliet vairāk detail tikai brīdi. 227 00:12:19,119 --> 00:12:21,660 Tātad tagad, ļaujiet man vienkārši atslēgt šie papildu pārtraukuma punktus 228 00:12:21,660 --> 00:12:24,940 lai mēs varētu apskatīt, kas notiek kad man ir vienu pārtraukumu 229 00:12:24,940 --> 00:12:27,650 punkts manā programmā. 230 00:12:27,650 --> 00:12:29,410 Esmu dažus izmaiņas šajā programmā. 231 00:12:29,410 --> 00:12:30,750 Tāpēc man ir nepieciešams, lai saglabātu to. 232 00:12:30,750 --> 00:12:34,490 Es noklikšķiniet atkļūdot, lai es varu sāk apkopot un pēc tam 233 00:12:34,490 --> 00:12:36,880 izpilde atkļūdotājs. 234 00:12:36,880 --> 00:12:40,632 >> Mēs redzam, ka, pēc momentiem, kas line ka mēs izvēlējāmies kā pārtraukuma 235 00:12:40,632 --> 00:12:43,360 punkts ir iezīmēts dzeltenā krāsā. 236 00:12:43,360 --> 00:12:47,440 Mēs varam arī paziņojums, ka augšējā tiesības atkļūdošanas panelī 237 00:12:47,440 --> 00:12:50,940 ka pauzes ikona ir ieslēgts par maz spēlēšanas ikonu. 238 00:12:50,940 --> 00:12:54,710 Tas nozīmē, ka mums ir pauze izpilde, šajā konkrētajā gadījumā. 239 00:12:54,710 --> 00:12:57,840 Un dodas uz pogas Atskaņot būtu ļauj atsākt izpildi 240 00:12:57,840 --> 00:13:00,000 šajā konkrētajā brīdī. 241 00:13:00,000 --> 00:13:03,240 >> Ievērojiet, ka tur ir pāris citu pogas pieejams šajā atkļūdošanas panelī, 242 00:13:03,240 --> 00:13:04,220 arī. 243 00:13:04,220 --> 00:13:09,470 Soli pa, kas ļauj man izpildīt šo vienu rindiņu kodu 244 00:13:09,470 --> 00:13:14,030 un soli pār šo līniju uz blakus viens, kas, šajā gadījumā, 245 00:13:14,030 --> 00:13:17,060 nozīmētu, ka printf paziņojums tiek izpildīts. 246 00:13:17,060 --> 00:13:22,310 Un tas būs pēc tam pauze izpilde on line 13, piemēram, tā. 247 00:13:22,310 --> 00:13:25,090 >> Un tur ir arī solis par funkciju, kas 248 00:13:25,090 --> 00:13:28,950 ir noderīgi, ja esmu izveidojis otru funkcijas citur pirmkodu. 249 00:13:28,950 --> 00:13:31,420 Un es gribu, lai soli šīs funkcijas, nevis 250 00:13:31,420 --> 00:13:33,050 izpildīt šo funkciju kopumā. 251 00:13:33,050 --> 00:13:37,279 Bet mēs apskatīt vairāk pie solī par funkciju tikai brīdi. 252 00:13:37,279 --> 00:13:40,320 Tagad novērojat kādu citu lietu, kas faktiski eksistē šajā atkļūdošanas panelī. 253 00:13:40,320 --> 00:13:44,110 >> Mums ir tas panelis sauc zvaniet kaudze, kas mums rāda 254 00:13:44,110 --> 00:13:45,300 kur tieši mēs esam. 255 00:13:45,300 --> 00:13:48,550 Šajā gadījumā, mēs ir iekšā no galvenā funkcija. 256 00:13:48,550 --> 00:13:50,880 Mūsu skripts sauc count.c. 257 00:13:50,880 --> 00:13:53,820 Un mēs gadās būt līnija 13, viena kolonna, kas 258 00:13:53,820 --> 00:13:58,950 Tieši tas, ko uzsvēra reģions pirmkoda norāda, kā arī. 259 00:13:58,950 --> 00:14:02,435 >> Tagad ievēroju, ka tas arī parāda saskaņā ar vietējās mainīgo sadaļu 260 00:14:02,435 --> 00:14:06,710 visiem mainīgajiem lielumiem, kas pastāvēt šai funkcijai. 261 00:14:06,710 --> 00:14:08,930 Ir svarīgi atzīmēt, ka visi mainīgie lielumi 262 00:14:08,930 --> 00:14:12,580 parādīsies šīs vietējās mainīgais sadaļa ietvaros funkciju, 263 00:14:12,580 --> 00:14:14,380 pat pirms tie ir definēti. 264 00:14:14,380 --> 00:14:19,160 Mēs varam redzēt šeit, ka mums ir mainīgais sauc num, ir noklusējuma vērtība ir 0, 265 00:14:19,160 --> 00:14:21,280 un tas ir tipa int. 266 00:14:21,280 --> 00:14:24,110 >> Tagad, pirms mēs faktiski inicializētu visus šos mainīgos lielumus, 267 00:14:24,110 --> 00:14:26,685 mēs esam ne vienmēr garantēta, lai redzētu vērtību 0. 268 00:14:26,685 --> 00:14:29,200 Un atkarībā no citu nāvessoda izpildes ka esat veicis 269 00:14:29,200 --> 00:14:32,020 un stāvokli jūsu atmiņā, kad jūs faktiski palaist šo programmu, 270 00:14:32,020 --> 00:14:34,605 jūs varētu atrast, ka jums neredzu vērtības 0 271 00:14:34,605 --> 00:14:36,550 un, tā vietā, daži citi traki numuri. 272 00:14:36,550 --> 00:14:38,390 >> Bet nav jāuztraucas par to. 273 00:14:38,390 --> 00:14:44,610 Tas nebūs būtiska līdz jūs tiešām sāktu vērtību. 274 00:14:44,610 --> 00:14:49,630 Tagad šajā gadījumā, mēs varam redzēt, ka Man ir veiktas dažas izejas. 275 00:14:49,630 --> 00:14:52,131 Un es esmu, tieši tagad, apturēta izpildi. 276 00:14:52,131 --> 00:14:53,880 Bet šajā gadījumā, kas Es tiešām gribu darīt 277 00:14:53,880 --> 00:14:58,060 ir tagad soli pa šo līniju koda tā, ka es faktiski var 278 00:14:58,060 --> 00:15:04,390 vaicājumu lietotājam šim int ka mēs vēlamies izmantot mūsu programmā. 279 00:15:04,390 --> 00:15:07,060 >> Tagad šajā gadījumā, kad Es hit soli pāri, paziņojot 280 00:15:07,060 --> 00:15:11,940 ka Pauze vai drīzāk Atsākt poga ir mainījusies līdz šim pauzes poga 281 00:15:11,940 --> 00:15:14,022 jo šis kods ir faktiski izpildes. 282 00:15:14,022 --> 00:15:15,730 Kas notiek tagad ir tā, ka tas ir 283 00:15:15,730 --> 00:15:21,630 gaida mūs ievadīt kādu informāciju kā mēs varam redzēt mūsu izejas tekstu 284 00:15:21,630 --> 00:15:23,600 pašā apakšā. 285 00:15:23,600 --> 00:15:25,787 >> Tāpēc tieši tagad, tas ir faktiski nav apturēta, 286 00:15:25,787 --> 00:15:28,620 Pat ja tas, veida, šķiet, būt tāpēc, ka nekas nenotiek. 287 00:15:28,620 --> 00:15:32,360 Bet tas tikai tā notiek, ka mans īpašais gadījums uz līnijas 13, 288 00:15:32,360 --> 00:15:34,210 Es gaidu lietotāja ievadi. 289 00:15:34,210 --> 00:15:39,130 Un tā GDB nevar pārbaudīt programma, kā tā darbojas. 290 00:15:39,130 --> 00:15:43,370 >> Tagad nākamreiz ka es ieiet daži input-- tāpēc es ņemšu ievadīt šo numuru 5, 291 00:15:43,370 --> 00:15:46,140 kā mēs esam redzējuši, past-- hit atpakaļ, un mēs 292 00:15:46,140 --> 00:15:51,430 paziņo, ka nekavējoties, GDB pauzes un, atkal, uzsver nākamo rindiņu. 293 00:15:51,430 --> 00:15:55,320 Bet paziņo, ka tagad, kā rezultāts mūsu ievadot vērtību, 294 00:15:55,320 --> 00:15:58,930 mēs esam atjauninājuši šo vērtību iekšā mūsu vietējās mainīgie, kas 295 00:15:58,930 --> 00:16:05,560 ir ļoti noderīgi zināt precīzi ko tas skaits bija atmiņā. 296 00:16:05,560 --> 00:16:10,650 >> Tagad es varu ļaut šo programmu, lai turpinātu spēlēt līdz beigām tā izpildes 297 00:16:10,650 --> 00:16:12,570 , trāpot CV. 298 00:16:12,570 --> 00:16:16,410 Mēs varam redzēt, ka ļoti ātri Vai programma apdare izpildes 299 00:16:16,410 --> 00:16:19,790 ar to pašu produkciju, ko mēs bija pirms, atkļūdotājs aizveras, 300 00:16:19,790 --> 00:16:23,170 un tagad šī programma ir apstājusies pilnībā. 301 00:16:23,170 --> 00:16:25,320 >> Man rāda, ka tikai par nolūki redzēt, kas 302 00:16:25,320 --> 00:16:27,280 notiek, kad mēs faktiski hit CV. 303 00:16:27,280 --> 00:16:30,640 Bet mēs tiešām gatavojamies vēlas doties atpakaļ uz šo programmu 304 00:16:30,640 --> 00:16:33,820 lai mēs varētu mēģināt atkļūdot Tieši to, kas notiek. 305 00:16:33,820 --> 00:16:37,980 Tagad, ka es esmu, izmantojot atkļūdotājs, es varētu nav nepieciešams šos debug printf paziņojumus. 306 00:16:37,980 --> 00:16:43,860 >> Tāpēc es varētu noņemt tos kā es darīšu tagad tikai, lai dotos atpakaļ uz mūsu vienkāršāku kodu 307 00:16:43,860 --> 00:16:45,950 ka mums bija pirms brīža. 308 00:16:45,950 --> 00:16:48,790 Tagad, kad es ietaupīt programmu un izpildīt to, 309 00:16:48,790 --> 00:16:53,700 tas, atkal, dodieties uz šo sākotnējo lūzuma punkts, kas man bija uz līnijas 11. 310 00:16:53,700 --> 00:16:57,700 Un es varēsiet pārbaudīt Mani mainīgie kā es gribu darīt. 311 00:16:57,700 --> 00:17:00,695 >> Tas tikai tā notiek, ka šis daļa nav ļoti interesanti, 312 00:17:00,695 --> 00:17:04,364 Un es zinu, ka es esmu gatavojas izdrukāt šo paziņojumu. 313 00:17:04,364 --> 00:17:05,280 Ievadiet numuru. 314 00:17:05,280 --> 00:17:08,099 Un tad, es zinu, ka es esmu gatavojas jautāt lietotājam šim skaitlim. 315 00:17:08,099 --> 00:17:13,329 Tāpēc varbūt, es tiešām gribu, lai pārvietotos manu lūzuma punkts mazliet tālāk uz leju. 316 00:17:13,329 --> 00:17:16,710 >> Jūs varat noņemt pārtraukuma punktus noklikšķinot, atkal, tieši 317 00:17:16,710 --> 00:17:18,460 pa kreisi no šīs līnijas numuru. 318 00:17:18,460 --> 00:17:22,200 Ka red dot pazudīs, norādot ka lūzuma punkts tagad ir pagājis. 319 00:17:22,200 --> 00:17:24,780 Tagad šajā gadījumā, izpilde ir apturēta. 320 00:17:24,780 --> 00:17:27,770 Un tā tas nav reāli gatavojas atsākt šajā konkrētajā gadījumā. 321 00:17:27,770 --> 00:17:30,210 Bet es varu noteikt pārtraukumu apakšpunkts mazliet vēlāk. 322 00:17:30,210 --> 00:17:33,880 >> Un, kad es tagad atsākt manu kods, tas atsāks un pateikt 323 00:17:33,880 --> 00:17:36,190 punkts šī lūzuma punkts. 324 00:17:36,190 --> 00:17:37,374 Atkal, es hit Atsākt. 325 00:17:37,374 --> 00:17:39,040 Nav šķist kaut kas notiek. 326 00:17:39,040 --> 00:17:41,450 Bet tas ir tāpēc, ka mana kods gaida ievadi. 327 00:17:41,450 --> 00:17:47,900 Es ievadiet numuru 5, hit Enter, un Tagad nākamais lūzuma punkts būs hit. 328 00:17:47,900 --> 00:17:50,570 >> Tagad šajā gadījumā, šī ir līnija koda 329 00:17:50,570 --> 00:17:53,820 ka, pirms, mēs zinājām gadījās būt buggy. 330 00:17:53,820 --> 00:17:57,590 Tātad pieņemsim novērtēt to, kas notiek šajā konkrētajā brīdī. 331 00:17:57,590 --> 00:18:02,620 Kad līnija ir iezīmēts, šis līnija vēl nav izpildīts. 332 00:18:02,620 --> 00:18:06,490 Tātad šajā gadījumā, mēs varam redzēt ka man ir vairāki, kas 333 00:18:06,490 --> 00:18:11,610 Man ir vesels skaitlis, ko sauc num kas ir vērtība 5. 334 00:18:11,610 --> 00:18:15,090 Un es esmu būs veicot daži math par šo numuru. 335 00:18:15,090 --> 00:18:20,130 >> Ja es soli pa to, ka mēs varam Ievērojiet, ka vērtību num 336 00:18:20,130 --> 00:18:23,780 ir mainījusies saskaņā ar aritmētika, ka mēs esam patiesībā darījuši. 337 00:18:23,780 --> 00:18:26,810 Un tagad, kad mēs esam iekšpusē šis cilpa 338 00:18:26,810 --> 00:18:29,090 vai tagad, kad cilpa pati par sevi ir iezīmēts, 339 00:18:29,090 --> 00:18:32,450 mēs redzam, ka mums ir jauna mainīgais sauc i ka 340 00:18:32,450 --> 00:18:35,370 tiks izmantoti ar to, ka, lai cilpas. 341 00:18:35,370 --> 00:18:38,230 >> Tagad atceros pirms minētā I minēja, ka reizēm jūs esat 342 00:18:38,230 --> 00:18:43,470 gatavojas redzēt kādu traks skaitļus kā noklusējuma pirms šo numuru 343 00:18:43,470 --> 00:18:45,530 vai arī, ka mainīgais ir faktiski inicializēts. 344 00:18:45,530 --> 00:18:49,040 Mēs varam redzēt, ka precīzi šeit šajā mainīgā 345 00:18:49,040 --> 00:18:51,345 sauc i, kas ir ne vēl nav inicializēts 346 00:18:51,345 --> 00:18:53,560 laikā izceļot. 347 00:18:53,560 --> 00:18:57,070 Bet mēs varam redzēt, ka tas ir dažas skaits ka mēs nebūtu reāli gaidīt. 348 00:18:57,070 --> 00:18:57,620 >> Tas ir labi. 349 00:18:57,620 --> 00:18:59,661 Neuztraucieties par to jo mums nav reāli 350 00:18:59,661 --> 00:19:04,970 inicializēts šo numuru, līdz I soli pa šo līniju un vērtību 351 00:19:04,970 --> 00:19:08,560 i ir inicializēts ar vērtību 1. 352 00:19:08,560 --> 00:19:11,400 Tātad, lai redzētu, ka tas ir faktiski gadījumā, pieņemsim soli pāri. 353 00:19:11,400 --> 00:19:14,420 Tagad mēs varam redzēt, ka līnija ir izpildīts. 354 00:19:14,420 --> 00:19:17,000 Un mēs tagad izceļot šis printf line. 355 00:19:17,000 --> 00:19:22,230 >> Un tagad mēs varam redzēt, kā mūsu vērtības I un 3 laika gaitā ir mainījusies. 356 00:19:22,230 --> 00:19:26,450 Tas ir ļoti noderīgi, lai darīt, patiesībā, ir soli pa līnijām atkārtoti. 357 00:19:26,450 --> 00:19:30,480 Un jūs varat atrast to, kas patiesībā notiek iekšpusē jūsu cilpas 358 00:19:30,480 --> 00:19:33,660 un kas notiek ar mainīgie, ka cilpas iekšpusē 359 00:19:33,660 --> 00:19:39,200 kā šīs programmas izpildi notiek vienu soli laikā. 360 00:19:39,200 --> 00:19:41,110 >> Tagad šajā brīdī, es pastiprināts nekā tikai pietiekami 361 00:19:41,110 --> 00:19:44,210 ka es tagad esmu beigās manā programmā. 362 00:19:44,210 --> 00:19:46,980 Ja es soli pa to, ka tas būs faktiski vairs izpildi 363 00:19:46,980 --> 00:19:48,860 kā mēs esam redzējuši iepriekš. 364 00:19:48,860 --> 00:19:52,110 Ļaujiet man restart tas, atkal, tāpēc ka es varētu norādīt kaut ko citu, kas, 365 00:19:52,110 --> 00:19:53,320 arī. 366 00:19:53,320 --> 00:19:55,350 >> Šajā gadījumā, tas ir tagad jautā man, atkal, 367 00:19:55,350 --> 00:19:57,100 par vairākiem, kas Es, atkal, ievadiet. 368 00:19:57,100 --> 00:20:00,300 Bet šoreiz, es esmu gatavojas ieiet lielāku skaitu tā, ka uz cilpas 369 00:20:00,300 --> 00:20:02,540 būs atkārtot vairākas reizes. 370 00:20:02,540 --> 00:20:06,090 Šajā gadījumā, es esmu, lai ievadītu vērtību 11. 371 00:20:06,090 --> 00:20:08,390 >> Tagad atkal, jo es gribētu noteikti lūzuma punkts pie līnijas 15, 372 00:20:08,390 --> 00:20:10,490 tas notiek, lai izceltu šo līniju. 373 00:20:10,490 --> 00:20:12,980 Mēs varam redzēt, ka mūsu skaitlis 11 ir pareizi 374 00:20:12,980 --> 00:20:15,560 pārstāvētas mūsu vietējo mainīgie. 375 00:20:15,560 --> 00:20:22,460 Kāpj pāri, ka mēs varam tagad skatīties, kas notiek ar mūsu vērtību i 376 00:20:22,460 --> 00:20:25,680 kā mēs turpināt iekšpusē šis cilpa. 377 00:20:25,680 --> 00:20:31,960 Tas izpaužas palielināts katru reizi, kad mēs sasniegtu aug ka par cilpa. 378 00:20:31,960 --> 00:20:35,110 >> Tagad viena no lietām, kas varētu lietderīgi darīt izpildes laikā 379 00:20:35,110 --> 00:20:40,490 Šīs programmas ir man faktiski mainīt mainīgie midstream lai redzētu 380 00:20:40,490 --> 00:20:42,450 kas notiek ar manu programmu. 381 00:20:42,450 --> 00:20:46,540 Šajā gadījumā, es faktiski var dubultklikšķi vērtību. 382 00:20:46,540 --> 00:20:48,040 Ievērojiet, ka tas kļūst par teksta laukā. 383 00:20:48,040 --> 00:20:50,280 >> Tagad es varu ieiet atšķirīgs vērtējam kopā 384 00:20:50,280 --> 00:20:55,700 lai redzētu, kā mana programma uzvedas kad es esmu mainījies šo mainīgo. 385 00:20:55,700 --> 00:20:59,560 Tagad šajā gadījumā mainīgais Es tagad satur vērtību 10. 386 00:20:59,560 --> 00:21:02,810 Bet programma ir vēl apturēta izpildē. 387 00:21:02,810 --> 00:21:07,610 Kad es soli vairāk, es redzu, ka vērtība i, kuru es ievadīta kā 10, 388 00:21:07,610 --> 00:21:12,170 ir ne lielāks par vērtību, num, kas tieši izraisa cilpa 389 00:21:12,170 --> 00:21:14,240 apstāties izpildes. 390 00:21:14,240 --> 00:21:16,210 >> Tagad tas nav vienīgais Iemesls, kāpēc jums būtu 391 00:21:16,210 --> 00:21:19,450 vēlaties mainīt mainīgo vietā. 392 00:21:19,450 --> 00:21:22,210 Jūs varētu tiešām vēlaties mēģināt pārveidot tā, lai 393 00:21:22,210 --> 00:21:24,590 ka jūs varat turpināt izpilde cilpu 394 00:21:24,590 --> 00:21:27,370 vai tā, ka jūs varat mainīt dažas vērtības, pirms tas 395 00:21:27,370 --> 00:21:32,630 sasniedz kādu īpašu komplektu aritmētisko ka jūs gatavojaties veikt. 396 00:21:32,630 --> 00:21:36,210 >> Tāpēc tagad, ka mēs faktiski mainīt I vērtība, jo programma tika izpildes, 397 00:21:36,210 --> 00:21:39,540 tas izraisīja cilpas atmest priekšlaicīgi, jo, visi pēkšņi, i 398 00:21:39,540 --> 00:21:42,770 gadījās būt lielāka nekā vērtība NUM, kas nozīmē, ka uz cilpas 399 00:21:42,770 --> 00:21:45,410 vairs nav nepieciešams, lai tiktu izpildīts. 400 00:21:45,410 --> 00:21:48,780 Turklāt tas noticis būt lieta, ka mēs mainīts vērtība i 401 00:21:48,780 --> 00:21:53,270 kad līnija 17 tika uzsvērts, kas bija brīdis 402 00:21:53,270 --> 00:21:56,280 ka par cilpu izpildei tika faktiski tiek vērtēti. 403 00:21:56,280 --> 00:22:00,210 >> Ja man bija mainījies vērtību Es par citu līniju, teiksim 19, 404 00:22:00,210 --> 00:22:03,360 mēs būtu redzējuši atšķirīgs uzvedība jo līnija 19 būtu 405 00:22:03,360 --> 00:22:08,310 ir izpildīti pirms cilpa nosacījums tika pārvērtēti. 406 00:22:08,310 --> 00:22:11,900 Tagad šajā brīdī, es esmu, atkal, beigās šīs programmas. 407 00:22:11,900 --> 00:22:15,707 Un es varu ļaut tam doties uz ļauj mana programma atmest dabiski. 408 00:22:15,707 --> 00:22:18,290 Bet tur ir pāris lietas ka ir svarīgi, lai paņemtu 409 00:22:18,290 --> 00:22:19,960 no šā konkrētā diskusijas. 410 00:22:19,960 --> 00:22:22,490 Jums ir nepieciešams, lai novērtētu Jūsu pašu pieņēmumi 411 00:22:22,490 --> 00:22:24,710 par to, kā kods būtu uzvedas. 412 00:22:24,710 --> 00:22:28,220 Jebkurā laikā jūs domājat, ka daži gabals Koda jūs zināt, kas notiek uz darbu, 413 00:22:28,220 --> 00:22:30,940 kas varētu būt sarkanais karogs iet atpakaļ un novērtēt, un būt pārliecināti, 414 00:22:30,940 --> 00:22:33,470 ka savu pieņēmumu kā šis kods darbojas 415 00:22:33,470 --> 00:22:38,290 ir tiešām taisnība, kā tas ir izteikts jūsu avota kodu. 416 00:22:38,290 --> 00:22:41,300 >> Bet vēl līdz punktam bija, kad mēs izmantojam atkļūdotājs, 417 00:22:41,300 --> 00:22:43,920 Jūs varat likt kontrolpunkti pie dažāda veida kods, 418 00:22:43,920 --> 00:22:48,110 kas radīs atkļūdotājs apturētu izpildi katrā no šīm līnijām 419 00:22:48,110 --> 00:22:52,210 lai jūs varētu novērtēt atmiņa vai pat mainīt to vietā. 420 00:22:52,210 --> 00:22:55,630 Un atkal, atcerieties, ka jūs varat izveidot vairākas kontrolpunkti, lai jūs 421 00:22:55,630 --> 00:23:00,390 var arī atsākt izpildi, izlaidiet pār lielu daļu no koda, 422 00:23:00,390 --> 00:23:04,790 un tas būs automātiski apturētu nākamajā lūzuma punkts. 423 00:23:04,790 --> 00:23:07,760 >> Tur tiešām vairāk uzlabotas iezīmes atkļūdotājs, kā arī. 424 00:23:07,760 --> 00:23:10,170 Bet mums nāksies nodot jums dažiem turpmākajiem video 425 00:23:10,170 --> 00:23:14,090 Lai tiešām ķircināt intervālu, kā izmantot šos īpašas funkcijas. 426 00:23:14,090 --> 00:23:15,990 Tagad, paldies ļoti daudz, lai skatītos. 427 00:23:15,990 --> 00:23:18,080 Un labu veiksmi debugging.