1 00:00:00,000 --> 00:00:00,309 2 00:00:00,309 --> 00:00:02,350 [? DAN ARMADARAS:?] Hei, Olen [? Dan Armadaras?]. 3 00:00:02,350 --> 00:00:04,410 Tﺣ۳nﺣ۳ﺣ۳n aiomme Tarkastelemme virheenkorjaus. 4 00:00:04,410 --> 00:00:06,697 Ei vain aiomme puhua joitakin tekniikoita, 5 00:00:06,697 --> 00:00:09,280 mutta myﺣﭘs aiomme tarkastella joitakin ominaisuuksia sisﺣ۳lsi 6 00:00:09,280 --> 00:00:14,170 sisﺣ۳llﺣ۳ CS50 IDE, joka mahdollistaa voit helposti debug ohjelma. 7 00:00:14,170 --> 00:00:16,272 >> Vain yksi esimerkki jotain, ettﺣ۳ voi mennﺣ۳ pieleen 8 00:00:16,272 --> 00:00:18,730 ja se on todella jotain ettﺣ۳ olemme jo ennen nﺣ۳hnyt. 9 00:00:18,730 --> 00:00:23,200 Tﺣ۳ssﺣ۳ tapauksessa tﺣ۳mﺣ۳ on C-ohjelma joka hyvﺣ۳ksyy kokonaisluku kﺣ۳yttﺣ۳jﺣ۳, 10 00:00:23,200 --> 00:00:27,580 jakaa se kahdella ja tarjoaa lﺣ۳htﺣﭘ takaisin kﺣ۳yttﺣ۳jﺣ۳lle. 11 00:00:27,580 --> 00:00:30,610 Nyt mitﺣ۳ olemme nﺣ۳hneet aiemmin luentoja, 12 00:00:30,610 --> 00:00:34,370 me tiedﺣ۳mme, ettﺣ۳ tﺣ۳mﺣ۳ itse aiheuttaa tietyntyyppisiin jako ongelmia 13 00:00:34,370 --> 00:00:35,860 kun meillﺣ۳ on pariton mﺣ۳ﺣ۳rﺣ۳. 14 00:00:35,860 --> 00:00:40,330 >> Erityisesti me vain heittﺣ۳ﺣ۳ pois mitﺣ۳ﺣ۳n desimaalipilkun jﺣ۳lkeen. 15 00:00:40,330 --> 00:00:43,170 Nyt tiedﺣ۳mme, ettﺣ۳ tﺣ۳mﺣ۳ sattuu olemaan kyse. 16 00:00:43,170 --> 00:00:47,430 Ja jos me ajaa se, voimme vahvistaa epﺣ۳ilyksemme, ensimmﺣ۳inen, kokoamalla. 17 00:00:47,430 --> 00:00:50,460 Ja sitten, ajamalla ja kirjoittamalla pariton mﺣ۳ﺣ۳rﺣ۳. 18 00:00:50,460 --> 00:00:51,720 >> Tﺣ۳mﺣ۳ ei ole mitﺣ۳ﺣ۳n uutta. 19 00:00:51,720 --> 00:00:54,490 Mutta tﺣ۳mﺣ۳ on todella esimerkki vika, joka 20 00:00:54,490 --> 00:00:58,810 sisﺣ۳llﺣ۳ voi olla suurempi ohjelma ettﺣ۳ on vaikeampi jﺣ۳ljittﺣ۳ﺣ۳. 21 00:00:58,810 --> 00:01:02,640 Vaikka tiedﺣ۳mme, mitﺣ۳ kysymys on, tosi asian ydin 22 00:01:02,640 --> 00:01:06,250 saattaa yrittﺣ۳ﺣ۳ tunnistaa erityisesti jos virhe ilmenee, 23 00:01:06,250 --> 00:01:09,750 tunnistaa, mitﺣ۳ tﺣ۳mﺣ۳ ongelma on, ja sitten kiinnittﺣ۳mﺣ۳llﺣ۳ se. 24 00:01:09,750 --> 00:01:14,400 Joten antaa tﺣ۳tﺣ۳ esimerkkinﺣ۳ mitﺣ۳ voisi olla jotain 25 00:01:14,400 --> 00:01:19,030 ettﺣ۳ tiedﺣ۳mme jo, mutta voidaan haudata sisﺣ۳llﺣ۳ muiden osien koodia. 26 00:01:19,030 --> 00:01:23,090 >> Joten avaa tﺣ۳mﺣ۳ muusta lﺣ۳hteestﺣ۳ koodi tiedosto esimerkkinﺣ۳, 27 00:01:23,090 --> 00:01:27,165 tﺣ۳mﺣ۳ jako ongelma on nyt osa suurempaa ohjelmaa. 28 00:01:27,165 --> 00:01:29,040 Silti saattaa olla hieman bittinen keinotekoinen, ja me 29 00:01:29,040 --> 00:01:31,076 ehkﺣ۳ helposti tunnistaa sen, erityisesti 30 00:01:31,076 --> 00:01:32,450 koska me vain keskustelemme. 31 00:01:32,450 --> 00:01:38,250 Mutta voimme selvittﺣ۳ﺣ۳, ettﺣ۳ tﺣ۳mﺣ۳ ongelma voi olla laajemmassa mittakaavassa. 32 00:01:38,250 --> 00:01:45,450 >> Jos minﺣ۳ kokoaa ja nyt ajaa se, anna pariton mﺣ۳ﺣ۳rﺣ۳, 33 00:01:45,450 --> 00:01:49,816 voimme nﺣ۳hdﺣ۳, ettﺣ۳ emme saa tarkasti tuotos, joka meillﺣ۳ voi odottaa. 34 00:01:49,816 --> 00:01:51,690 Tﺣ۳ssﺣ۳ nimenomaisessa tapauksessa, voisimme sanoa, ettﺣ۳ me 35 00:01:51,690 --> 00:01:56,060 haluavat laskea kaikki numerot yhdestﺣ۳ jopa joitakin erityisiﺣ۳ numero. 36 00:01:56,060 --> 00:01:58,130 Ja voimme nﺣ۳hdﺣ۳, ettﺣ۳ me on eri asioita 37 00:01:58,130 --> 00:02:03,880 tﺣ۳ﺣ۳llﺣ۳ jos olemme syﺣﭘttﺣﭘﺣ۳, yksinkertaisesti, 0 ja 1, kun tarjoamme panos 5. 38 00:02:03,880 --> 00:02:07,380 >> Joten tiedﺣ۳mme jo, ettﺣ۳ siellﺣ۳ ongelma tﺣ۳ﺣ۳llﺣ۳. 39 00:02:07,380 --> 00:02:11,662 Mutta emme ehkﺣ۳ tiedﺣ۳ tarkalleen jos tﺣ۳mﺣ۳ asia todella on olemassa. 40 00:02:11,662 --> 00:02:13,620 Nyt yksi niistﺣ۳ tavoista, ettﺣ۳ voimme yrittﺣ۳ﺣ۳ korjata tﺣ۳mﺣ۳n 41 00:02:13,620 --> 00:02:15,745 on jotain, ettﺣ۳ olemme jo otettu kﺣ۳yttﺣﭘﺣﭘn. 42 00:02:15,745 --> 00:02:18,880 Voimme vain kﺣ۳yttﺣ۳ﺣ۳ sitﺣ۳ suuremmassa mittakaavassa. 43 00:02:18,880 --> 00:02:21,680 >> On line 14, meillﺣ۳ on Tﺣ۳mﺣ۳n printf toiminto, 44 00:02:21,680 --> 00:02:25,620 jonka avulla voimme tulostaa valtio ja erilaisia ﻗ€‹ﻗ€‹tietoja. 45 00:02:25,620 --> 00:02:28,880 Ja tﺣ۳mﺣ۳ on jotain, sinun tulisi hyﺣﭘdyntﺣ۳ﺣ۳ omassa ohjelmassa 46 00:02:28,880 --> 00:02:33,100 yrittﺣ۳ﺣ۳ selvittﺣ۳ﺣ۳, mitﺣ۳ on tapahtuu eri riviﺣ۳ koodia. 47 00:02:33,100 --> 00:02:36,350 Joten vaikka tﺣ۳mﺣ۳ ei ole lopullinen tuotos ettﺣ۳ me todella 48 00:02:36,350 --> 00:02:39,830 haluavat tuottaa ulos Tﺣ۳llﺣ۳ ohjelmalla vielﺣ۳ 49 00:02:39,830 --> 00:02:42,300 saattaa olla joitakin debug lausunnot jossa 50 00:02:42,300 --> 00:02:46,970 voi yrittﺣ۳ﺣ۳ selvittﺣ۳ﺣ۳ tarkasti, mitﺣ۳ sisﺣ۳llﺣ۳ tapahtuu meidﺣ۳n koodi. 51 00:02:46,970 --> 00:02:51,210 >> Joten tﺣ۳ssﺣ۳ tapauksessa, aion printf kanssa debug tag. 52 00:02:51,210 --> 00:02:53,540 Tﺣ۳ssﺣ۳ tapauksessa tﺣ۳mﺣ۳ on vain debug string 53 00:02:53,540 --> 00:02:56,840 ettﺣ۳ olen ajan laittoi jotta siitﺣ۳ tulee hyvin selkeﺣ۳ tuotoksen minun koodi 54 00:02:56,840 --> 00:02:59,200 mitﺣ۳ se on, ettﺣ۳ haluan nﺣ۳yttﺣ۳ﺣ۳. 55 00:02:59,200 --> 00:03:04,410 Ja lﺣ۳htﺣﭘ tﺣ۳ﺣ۳llﺣ۳ numero ettﺣ۳ olemme laskettu. 56 00:03:04,410 --> 00:03:06,800 >> Tﺣ۳ssﺣ۳ tapauksessa, voisin haluavat tietﺣ۳ﺣ۳ tarkasti 57 00:03:06,800 --> 00:03:11,380 mitﺣ۳ tapahtuu ennen ja jﺣ۳lkeen joitakin erityisiﺣ۳ laskenta. 58 00:03:11,380 --> 00:03:16,224 Niin voisin kﺣ۳yttﺣ۳ﺣ۳ printf ennen ja sen jﺣ۳lkeen rivi koodia. 59 00:03:16,224 --> 00:03:18,640 Tﺣ۳ssﺣ۳ tapauksessa, voisin jopa tehdﺣ۳ siitﺣ۳ hieman selvemmin 60 00:03:18,640 --> 00:03:21,960 sanomalla debug ennen ja debug jﺣ۳lkeen niin 61 00:03:21,960 --> 00:03:26,540 ettﺣ۳ en sekoita itseﺣ۳ni useita linjoja, jotka nﺣ۳yttﺣ۳vﺣ۳t samanlainen. 62 00:03:26,540 --> 00:03:32,290 >> Nyt jos me kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ tﺣ۳mﺣ۳n ja ajaa se, kirjoita numero, kuten viisi uudelleen, 63 00:03:32,290 --> 00:03:35,090 voimme nﺣ۳hdﺣ۳, ettﺣ۳ meillﺣ۳ on nyt lﺣ۳htﺣﭘ ennen ja jﺣ۳lkeen 64 00:03:35,090 --> 00:03:40,670 ja huomaat, ettﺣ۳ emme ole tehneet selkeﺣ۳ﺣ۳ jako tai selkeﺣ۳ joilla lukumﺣ۳ﺣ۳rﺣ۳stﺣ۳ 65 00:03:40,670 --> 00:03:43,680 ettﺣ۳ me todella haluavat tehdﺣ۳. 66 00:03:43,680 --> 00:03:48,660 Nyt tﺣ۳ssﺣ۳ tapauksessa, tﺣ۳mﺣ۳ on ei oikeastaan ﻗ€‹ﻗ€‹selvﺣ۳ tuotos. 67 00:03:48,660 --> 00:03:52,440 Se ei oikeastaan ﻗ€‹ﻗ€‹selvﺣ۳ tulos, joka haluamme pois kyseistﺣ۳ ohjelmaa. 68 00:03:52,440 --> 00:03:54,427 >> Ja tﺣ۳mﺣ۳ on, jﺣ۳lleen, hieman contrived. 69 00:03:54,427 --> 00:03:57,510 Mutta ehkﺣ۳ yksi niistﺣ۳ asioista, jotka voisimme tehdﺣ۳, jos erittely sanoi 70 00:03:57,510 --> 00:04:01,900 ettﺣ۳ haluamme jakaa tﺣ۳mﺣ۳n 2 ja lisﺣ۳ﺣ۳ 1-- niin toisin sanoen, 71 00:04:01,900 --> 00:04:04,550 haluamme pyﺣﭘristﺣ۳ﺣ۳ up-- sitten tietﺣ۳isimme, ettﺣ۳ voisimme 72 00:04:04,550 --> 00:04:08,060 tehdﺣ۳ kyseisen asia, tﺣ۳ssﺣ۳ tapauksessa. 73 00:04:08,060 --> 00:04:14,010 Nyt tﺣ۳ﺣ۳llﺣ۳ tiedﺣ۳mme, ettﺣ۳ meillﺣ۳ on voi lisﺣ۳tﺣ۳ 1 meidﺣ۳n puolittunut numero. 74 00:04:14,010 --> 00:04:16,490 >> Katsotaanpa kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ tﺣ۳mﺣ۳n ja vahvistaa, ettﺣ۳ tﺣ۳mﺣ۳ 75 00:04:16,490 --> 00:04:18,860 kﺣ۳yttﺣ۳ytyy siten, ettﺣ۳ haluamme. 76 00:04:18,860 --> 00:04:21,980 Voimme nﺣ۳hdﺣ۳, ettﺣ۳ nyt ennen ottaa, meillﺣ۳ on numero 5. 77 00:04:21,980 --> 00:04:26,620 Saatuaan, meillﺣ۳ on numero 3, joka mukaan meidﺣ۳n toiveiden, 78 00:04:26,620 --> 00:04:29,292 halusimme tehdﺣ۳. 79 00:04:29,292 --> 00:04:31,000 Mutta jos katsomme tuotos tﺣ۳ﺣ۳llﺣ۳, voimme 80 00:04:31,000 --> 00:04:33,760 nﺣ۳hdﺣ۳, ettﺣ۳ meillﺣ۳ olisi toinen bug kokonaan, mikﺣ۳ on 81 00:04:33,760 --> 00:04:36,940 ettﺣ۳ me aloitamme count 0. 82 00:04:36,940 --> 00:04:39,390 >> Nyt taas, tﺣ۳mﺣ۳ on jotain ettﺣ۳ olemme nﺣ۳hneet aiemmin 83 00:04:39,390 --> 00:04:42,500 ja voimme korjata melko helposti. 84 00:04:42,500 --> 00:04:44,790 Mutta tﺣ۳ssﺣ۳ tapauksessa, me oli myﺣﭘs hyﺣﭘtyﺣ۳ 85 00:04:44,790 --> 00:04:48,940 kﺣ۳yttﺣ۳ﺣ۳ printf selvitys suoraan sisﺣ۳llﺣ۳ silmukan 86 00:04:48,940 --> 00:04:52,930 tietﺣ۳ﺣ۳ tarkasti missﺣ۳ ettﺣ۳ virhe oli tapahtumassa. 87 00:04:52,930 --> 00:04:55,150 Joten printf lausunnot ovat erittﺣ۳in hyﺣﭘdyllinen auttaa 88 00:04:55,150 --> 00:04:57,940 voit mﺣ۳ﺣ۳rittﺣ۳ﺣ۳ missﺣ۳, juuri lﺣ۳hdekoodia, 89 00:04:57,940 --> 00:05:00,620 tietty virhe tapahtuu. 90 00:05:00,620 --> 00:05:03,650 >> Ja se on myﺣﭘs tﺣ۳rkeﺣ۳ﺣ۳ ymmﺣ۳rtﺣ۳ﺣ۳, ettﺣ۳, kuten me kirjoittaa koodia, 91 00:05:03,650 --> 00:05:06,052 olisimme oletukset tilasta ohjelman. 92 00:05:06,052 --> 00:05:08,510 Tai voisimme olla oletukset mitﺣ۳ osa ohjelmaa 93 00:05:08,510 --> 00:05:13,020 on todella oikea tai vﺣ۳ﺣ۳rﺣ۳, kun myﺣﭘhemmin kun rakennamme ettﺣ۳ ohjelmasta 94 00:05:13,020 --> 00:05:15,950 ja tehdﺣ۳ siitﺣ۳ osa monimutkainen ja suurempia ohjelma 95 00:05:15,950 --> 00:05:19,700 ettﺣ۳ ymmﺣ۳rrﺣ۳mme, ettﺣ۳ jostakin Tﺣ۳mﺣ۳n on todella buginen. 96 00:05:19,700 --> 00:05:22,680 >> Kﺣ۳yttﺣ۳mﺣ۳llﺣ۳ printf voi todella auttaa kaventaa ja tunnistaa 97 00:05:22,680 --> 00:05:26,430 alueiden ohjelma, joka saa kﺣ۳yttﺣ۳ytyisi juuri niin, ettﺣ۳ me 98 00:05:26,430 --> 00:05:29,500 odottaa, perustuu meidﺣ۳n oletuksiin. 99 00:05:29,500 --> 00:05:31,460 Mutta on muita tyﺣﭘkaluja saatavilla, samoin, 100 00:05:31,460 --> 00:05:34,860 joiden avulla voimme yrittﺣ۳ﺣ۳ selvittﺣ۳ﺣ۳ missﺣ۳ virhe tapahtuu 101 00:05:34,860 --> 00:05:39,930 ja myﺣﭘs, erityisesti, mitkﺣ۳ asiat tapahtuu sisﺣ۳llﺣ۳ ohjelman. 102 00:05:39,930 --> 00:05:41,990 >> Joten kﺣ۳yttﺣ۳mﺣ۳llﺣ۳ printf on hyvin hyﺣﭘdyllinen, kun halutaan 103 00:05:41,990 --> 00:05:45,900 tunnistamaan tietyillﺣ۳ aloilla ohjelma, joka on joitakin bug. 104 00:05:45,900 --> 00:05:47,730 Mutta se myﺣﭘs tulee tylsiﺣ۳ jonkin ajan kuluttua. 105 00:05:47,730 --> 00:05:50,500 Tﺣ۳ssﺣ۳ tapauksessa tﺣ۳mﺣ۳ on suhteellisen yksinkertainen ohjelma 106 00:05:50,500 --> 00:05:52,750 vain yksi tai kaksi muuttujaa. 107 00:05:52,750 --> 00:05:57,260 Ja se on erittﺣ۳in helppo meille tulostaa arvon niitﺣ۳ muuttujia 108 00:05:57,260 --> 00:05:59,670 yhteydessﺣ۳ suurempi ohjelman. 109 00:05:59,670 --> 00:06:02,670 >> Mutta saatamme olla eri ohjelma, joka on monia muuttujia. 110 00:06:02,670 --> 00:06:06,530 Ja se ei voi olla tﺣ۳ysin niin helppokﺣ۳yttﺣﭘinen printf 111 00:06:06,530 --> 00:06:10,120 yrittﺣ۳ﺣ۳ arvioida, mitﺣ۳ tapahtuu ja jokainen nﺣ۳istﺣ۳ muuttujista 112 00:06:10,120 --> 00:06:13,590 koska ohjelma on tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpanosta. 113 00:06:13,590 --> 00:06:16,960 On ohjelma, joka on olemassa kutsutaan debuggeri ohjelma. 114 00:06:16,960 --> 00:06:20,320 Tﺣ۳ssﺣ۳ tapauksessa, joka me kﺣ۳yttﺣﭘ on GNU debuggeri, tai GDB, 115 00:06:20,320 --> 00:06:24,260 joka antaa meille mahdollisuuden tarkastaa sisﺣ۳isen toimintaa ohjelman paljon 116 00:06:24,260 --> 00:06:25,700 yksityiskohtaisesti. 117 00:06:25,700 --> 00:06:28,810 >> Voimme todella toteuttaa GDB komentoriviltﺣ۳ 118 00:06:28,810 --> 00:06:35,370 tﺣ۳ssﺣ۳ yksinkertaisesti kirjoittamalla GDB ja komento, ettﺣ۳ haluamme debug. 119 00:06:35,370 --> 00:06:37,550 Tﺣ۳ssﺣ۳ tapauksessa laskea. 120 00:06:37,550 --> 00:06:41,650 Nyt tﺣ۳ssﺣ۳ tapauksessa, voimme nﺣ۳hdﺣ۳, ettﺣ۳ se tuo meidﺣ۳t nopeasti joka sanoo GDB. 121 00:06:41,650 --> 00:06:44,020 Ja voimme todella suorittaa komentoja GDB 122 00:06:44,020 --> 00:06:48,260 todella aloittaa suorittamisen ohjelma, lopeta tietyissﺣ۳ kohdissa, 123 00:06:48,260 --> 00:06:51,060 arvioida muuttujat ja tarkastaa muuttujia 124 00:06:51,060 --> 00:06:54,152 olemassa ohjelmassa tilassa tuona ajankohtana, 125 00:06:54,152 --> 00:06:55,110 ja niin edelleen ja niin edelleen. 126 00:06:55,110 --> 00:06:57,240 Se tarjoaa paljon voimaa meille. 127 00:06:57,240 --> 00:06:59,960 >> Mutta se vain niin, ettﺣ۳ CS50 IDE myﺣﭘs 128 00:06:59,960 --> 00:07:05,870 tarjoaa GUI tai kﺣ۳yttﺣ۳jﺣ۳ kﺣ۳yttﺣﭘliittymﺣ۳ GDB ettﺣ۳ 129 00:07:05,870 --> 00:07:11,120 voimme tehdﺣ۳ tﺣ۳mﺣ۳n ilman komentoriviltﺣ۳ mitﺣ۳ﺣ۳n 130 00:07:11,120 --> 00:07:13,560 tai ollenkaan jopa. 131 00:07:13,560 --> 00:07:16,930 Ettﺣ۳ voin kﺣ۳yttﺣ۳ﺣ۳, ettﺣ۳ on kﺣ۳yttﺣ۳ﺣ۳ debug-painiketta 132 00:07:16,930 --> 00:07:20,120 klo hyvin alkuun CS50 IDE. 133 00:07:20,120 --> 00:07:24,280 Nyt aikaisemmin, mitﺣ۳ meillﺣ۳ on nﺣ۳hnyt on, ettﺣ۳ kﺣ۳ytﺣ۳mme komentoa 134 00:07:24,280 --> 00:07:27,660 linja kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ ja suorita ohjelma. 135 00:07:27,660 --> 00:07:29,790 >> Debug-painike tekee molemmat nﺣ۳mﺣ۳ toimenpiteet. 136 00:07:29,790 --> 00:07:34,380 Mutta se myﺣﭘs tuo esiin debuggeri vﺣ۳lilehti ﺣ۳ﺣ۳rimmﺣ۳isenﺣ۳ oikealla 137 00:07:34,380 --> 00:07:38,280 joka antaa meille mahdollisuuden tarkastaa lajikkeen ominaisuuksien ohjelman 138 00:07:38,280 --> 00:07:40,500 koska se on tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpanovaltiossa. 139 00:07:40,500 --> 00:07:44,280 Jos minﺣ۳ sitten debug, tﺣ۳ssﺣ۳ tapauksessa, se tuo esiin 140 00:07:44,280 --> 00:07:48,230 uusi vﺣ۳lilehti konsolin ikkuna alareunassa. 141 00:07:48,230 --> 00:07:51,160 >> Ja voit nﺣ۳hdﺣ۳, ettﺣ۳ tﺣ۳mﺣ۳ vﺣ۳lilehti on joitakin tietoja huipulla. 142 00:07:51,160 --> 00:07:52,670 Ja voimme pitkﺣ۳lti sivuuttaa tﺣ۳mﺣ۳n. 143 00:07:52,670 --> 00:07:54,800 Mutta yksi niistﺣ۳ asioista, ettﺣ۳ haluamme huomata 144 00:07:54,800 --> 00:07:57,170 on, ettﺣ۳ se tuottaa sama asia, ettﺣ۳ me 145 00:07:57,170 --> 00:08:03,000 saisi jos yritimme ajaa tekemﺣ۳si C-ohjelma vuonna pﺣ۳ﺣ۳teikkunassa. 146 00:08:03,000 --> 00:08:06,230 >> Tﺣ۳ﺣ۳llﺣ۳ voimme nﺣ۳hdﺣ۳ se on kﺣ۳ynnissﺣ۳ kalahtaa, ja sillﺣ۳ on erilaisia ﻗ€‹ﻗ€‹lippuja, 147 00:08:06,230 --> 00:08:12,660 ja se on koottaessa count.c tiedoston, joka oli valitun vﺣ۳lilehden aikaan 148 00:08:12,660 --> 00:08:15,100 ettﺣ۳ osuin debug. 149 00:08:15,100 --> 00:08:18,010 Joten tﺣ۳mﺣ۳ on erittﺣ۳in hyﺣﭘdyllinen, koska nyt kﺣ۳yttﺣ۳ﺣ۳ tﺣ۳tﺣ۳ debug painiketta, 150 00:08:18,010 --> 00:08:23,280 voimme samanaikaisesti koota ja sitten suorita ohjelma, me todella 151 00:08:23,280 --> 00:08:24,460 halua ajaa. 152 00:08:24,460 --> 00:08:27,880 >> Lippua, joka on tﺣ۳rkeitﺣ۳, tﺣ۳ssﺣ۳ tapauksessa, 153 00:08:27,880 --> 00:08:30,190 olemme todella kﺣ۳yttﺣ۳nyt pisimpﺣ۳ﺣ۳n 154 00:08:30,190 --> 00:08:32,450 mutta myﺣﭘs vain tekivﺣ۳t joitakin kﺣ۳si heiluttaen [ﺣ۳ﺣ۳netﺣﭘn], joka 155 00:08:32,450 --> 00:08:33,820 on tﺣ۳mﺣ۳ yksi tﺣ۳ﺣ۳llﺣ۳. 156 00:08:33,820 --> 00:08:35,790 Vuonna kalahtaa, sanotaan -ggdb3. 157 00:08:35,790 --> 00:08:38,570 158 00:08:38,570 --> 00:08:41,250 Tﺣ۳ssﺣ۳ tapauksessa, mitﺣ۳ olemme kertoo kalahtaa, meidﺣ۳n kﺣ۳ﺣ۳ntﺣ۳jﺣ۳, 159 00:08:41,250 --> 00:08:43,820 on, ettﺣ۳ haluamme kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ meidﺣ۳n ohjelma. 160 00:08:43,820 --> 00:08:46,810 Mutta myﺣﭘs mitﺣ۳ nimeltﺣ۳ﺣ۳n symboli tiedot 161 00:08:46,810 --> 00:08:50,940 niin ettﺣ۳ kﺣ۳ﺣ۳ntﺣ۳jﺣ۳ todella on pﺣ۳ﺣ۳sy on paljon taustatiedoista 162 00:08:50,940 --> 00:08:52,610 sisﺣ۳llﺣ۳ ohjelma. 163 00:08:52,610 --> 00:08:55,260 >> Tarkemmin sanottuna, numero toimintoja, minulla on, 164 00:08:55,260 --> 00:08:58,000 nimet toimintoja, muuttujat, tyypit 165 00:08:58,000 --> 00:09:01,730 ettﺣ۳ nﺣ۳mﺣ۳ muuttujat ovat, ja erilaisia muita asioita, jotka auttavat debuggeri 166 00:09:01,730 --> 00:09:04,350 suoriutua. 167 00:09:04,350 --> 00:09:06,600 Nyt jotain muuta se on tﺣ۳rkeﺣ۳ﺣ۳ mainita 168 00:09:06,600 --> 00:09:10,280 kun me keskustelemme kﺣ۳ynnissﺣ۳ ohjelman tﺣ۳llﺣ۳ tavalla. 169 00:09:10,280 --> 00:09:13,660 >> Huomaa, ettﺣ۳ se on todella esille uuden vﺣ۳lilehden meidﺣ۳n konsoli 170 00:09:13,660 --> 00:09:14,780 alareunassa. 171 00:09:14,780 --> 00:09:18,600 Meillﺣ۳ ei enﺣ۳ﺣ۳ tarvitse vuorovaikutuksessa suoraan pﺣ۳ﺣ۳teikkuna. 172 00:09:18,600 --> 00:09:21,420 Mutta tﺣ۳mﺣ۳ uusi vﺣ۳lilehti on todella pﺣ۳ﺣ۳teikkuna. 173 00:09:21,420 --> 00:09:26,710 Se vain on nimenomaan kﺣ۳ynnissﺣ۳ ohjelma, olemme luoneet. 174 00:09:26,710 --> 00:09:29,270 >> Huomaa, ettﺣ۳ alareunassa, vuonna yhdessﺣ۳ joidenkin ulostulo 175 00:09:29,270 --> 00:09:33,500 mukaan kalahtaa kﺣ۳ﺣ۳ntﺣ۳jﺣ۳ ja GDB, jota voidaan pitkﺣ۳lti sivuuttaa, 176 00:09:33,500 --> 00:09:37,570 se todella osoittaa lﺣ۳htﺣﭘ meidﺣ۳n ohjelma alareunassa. 177 00:09:37,570 --> 00:09:41,240 Nyt on tﺣ۳rkeﺣ۳ﺣ۳ ymmﺣ۳rtﺣ۳ﺣ۳ ettﺣ۳ tﺣ۳mﺣ۳ ikkuna tosiasiallisesti 178 00:09:41,240 --> 00:09:43,360 nﺣ۳yttﺣ۳ﺣ۳ ulostulo ohjelmasi 179 00:09:43,360 --> 00:09:47,190 mutta myﺣﭘs voi hyvﺣ۳ksyﺣ۳ syﺣﭘttﺣ۳ﺣ۳ kyseisen ohjelman, samoin. 180 00:09:47,190 --> 00:09:49,260 >> Niin huomaa, ettﺣ۳ sanoo kirjoita numero, 181 00:09:49,260 --> 00:09:53,050 joka on sama tuotos, joka meillﺣ۳ oli oli pﺣ۳ﺣ۳teikkunassa ennen. 182 00:09:53,050 --> 00:09:55,510 Mutta se on nyt esitetty tﺣ۳ssﺣ۳ uudessa vﺣ۳lilehdessﺣ۳. 183 00:09:55,510 --> 00:09:56,550 Voin syﺣﭘttﺣ۳ﺣ۳ numeron. 184 00:09:56,550 --> 00:10:00,900 Ja se todella toimivat odotamme 185 00:10:00,900 --> 00:10:05,890 nﺣ۳yttﺣ۳ﺣ۳ meille meidﺣ۳n debug, lﺣ۳htﺣﭘ, tuotos, joka voisi olla buginen, 186 00:10:05,890 --> 00:10:07,010 kuten olemme nﺣ۳hneet aiemmin. 187 00:10:07,010 --> 00:10:10,460 Ja alareunassa, se tosin on lisﺣ۳ﺣ۳ tuotoksen 188 00:10:10,460 --> 00:10:14,550 BKT vain, ettﺣ۳ tﺣ۳mﺣ۳ ohjelma on valmis. 189 00:10:14,550 --> 00:10:16,655 >> Nyt kun nﺣ۳it tﺣ۳ssﺣ۳ Erityisesti kulkevat, 190 00:10:16,655 --> 00:10:19,370 se ei ole erityisen hyﺣﭘdyllinen, koska jopa 191 00:10:19,370 --> 00:10:23,740 vaikka meillﺣ۳ oli debuggeri valikko tulevat up, tﺣ۳mﺣ۳ oli vielﺣ۳ kﺣ۳ynnissﺣ۳ ohjelma. 192 00:10:23,740 --> 00:10:26,790 Ei missﺣ۳ﺣ۳n vaiheessa se todella tauko toteuttamisesta meille 193 00:10:26,790 --> 00:10:30,767 pystyﺣ۳ tarkastaa kaikki muuttujien sisﺣ۳llﺣ۳. 194 00:10:30,767 --> 00:10:32,850 Jotain muuta ettﺣ۳ meidﺣ۳n on tehtﺣ۳vﺣ۳, jotta 195 00:10:32,850 --> 00:10:36,910 pﺣ۳ﺣ۳stﺣ۳ GDB tunnustaa, ettﺣ۳ haluamme keskeyttﺣ۳ﺣ۳ ohjelman toteuttamisen 196 00:10:36,910 --> 00:10:42,820 eikﺣ۳ vain anna sen jatkaa normaalisti kuten missﺣ۳ tahansa muussakin tapauksessa. 197 00:10:42,820 --> 00:10:45,530 >> Jotta keskeyttﺣ۳ﺣ۳ suorituksen, joillakin tietyillﺣ۳ linja, 198 00:10:45,530 --> 00:10:47,830 meidﺣ۳n on luotava mitﺣ۳ kutsutaan taitekohta. 199 00:10:47,830 --> 00:10:52,670 Ja taitekohta on hyvin helposti luotu tﺣ۳ssﺣ۳ CS50 IDE ottamalla hiirellﺣ۳ 200 00:10:52,670 --> 00:10:57,090 ja napsauttamalla suoraan vasemmalle Joidenkin tietylle riville. 201 00:10:57,090 --> 00:10:59,920 Kun minﺣ۳, ettﺣ۳, punainen piste nﺣ۳yttﺣ۳ﺣ۳, mikﺣ۳ osoittaa 202 00:10:59,920 --> 00:11:02,300 ettﺣ۳ linja on nyt taitekohta. 203 00:11:02,300 --> 00:11:07,540 >> Ja seuraavan kerran juoksen GDB, se pysﺣ۳htyy toteutuneesta ettﺣ۳ taitekohta 204 00:11:07,540 --> 00:11:10,280 kun se saavuttaa Koodirivin. 205 00:11:10,280 --> 00:11:12,230 Nyt tﺣ۳mﺣ۳ on tﺣ۳rkeﺣ۳ asia ymmﺣ۳rtﺣ۳ﺣ۳ 206 00:11:12,230 --> 00:11:16,140 ettﺣ۳ se ei ole vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳ tapauksessa, ettﺣ۳ jokainen rivi koodia 207 00:11:16,140 --> 00:11:17,880 on todella saatavilla. 208 00:11:17,880 --> 00:11:23,780 Jos olisin luoda toiminto tﺣ۳nne, sillﺣ۳ example-- mitﺣ۳tﺣﭘn f-- 209 00:11:23,780 --> 00:11:31,230 ja vain tehdﺣ۳ tulosta linja here-- hei world-- jos en koskaan kutsua tﺣ۳tﺣ۳ toimintoa, 210 00:11:31,230 --> 00:11:34,770 se on niin, ettﺣ۳, jos otan taitekohta tﺣ۳ﺣ۳llﺣ۳, 211 00:11:34,770 --> 00:11:36,220 toiminto ei koskaan kutsutaan. 212 00:11:36,220 --> 00:11:38,310 Ja nﺣ۳in ollen, tﺣ۳mﺣ۳ erityisesti taitekohta 213 00:11:38,310 --> 00:11:43,040 ei koskaan todella keskeyttﺣ۳ﺣ۳ Ohjelman toteuttamista. 214 00:11:43,040 --> 00:11:48,020 >> Joten sanoa, ettﺣ۳ olen oikein luoda taitekohta joitakin rivi koodia 215 00:11:48,020 --> 00:11:50,340 ettﺣ۳ todella toteutetaan. 216 00:11:50,340 --> 00:11:53,470 Nyt tﺣ۳ssﺣ۳ tapauksessa, tﺣ۳mﺣ۳ on ensimmﺣ۳inen rivi pﺣ۳ﺣ۳tehtﺣ۳vﺣ۳. 217 00:11:53,470 --> 00:11:56,630 Joten se varmasti tapaus ettﺣ۳, heti kun aloitan toteuttamista, 218 00:11:56,630 --> 00:11:58,580 ensimmﺣ۳inen rivi saavutetaan. 219 00:11:58,580 --> 00:12:00,230 GDB pysﺣ۳htyy toteuttamista. 220 00:12:00,230 --> 00:12:04,100 Ja sitten, minﺣ۳ voi vuorovaikutuksessa debugger. 221 00:12:04,100 --> 00:12:08,480 >> Voit asettaa useita rivejﺣ۳ breakpoints, jos haluat. 222 00:12:08,480 --> 00:12:11,365 Voimme myﺣﭘs luoda riviin tﺣ۳ﺣ۳llﺣ۳ tﺣ۳llﺣ۳ segmentillﺣ۳ koodin 223 00:12:11,365 --> 00:12:12,490 ettﺣ۳ ei koskaan saavuteta. 224 00:12:12,490 --> 00:12:14,744 Ja voimme myﺣﭘs asettaa yhden jﺣ۳ljempﺣ۳nﺣ۳. 225 00:12:14,744 --> 00:12:16,660 Syy siihen, ettﺣ۳ olisimme halua tehdﺣ۳ tﺣ۳tﺣ۳ me will 226 00:12:16,660 --> 00:12:19,119 mennﺣ۳ hieman enemmﺣ۳n yksityiskohtaisesti vain hetken. 227 00:12:19,119 --> 00:12:21,660 Joten nyt, haluan vain poistaa nﺣ۳mﺣ۳ ylimﺣ۳ﺣ۳rﺣ۳iset taitepisteissﺣ۳ 228 00:12:21,660 --> 00:12:24,940 jotta voimme katsoa mitﺣ۳ tapahtuu kun minulla on yksi tauko 229 00:12:24,940 --> 00:12:27,650 vaiheessa minun ohjelma. 230 00:12:27,650 --> 00:12:29,410 Olen tehnyt joitakin muutokset tﺣ۳hﺣ۳n ohjelmaan. 231 00:12:29,410 --> 00:12:30,750 Joten minun tﺣ۳ytyy tallentaa sen. 232 00:12:30,750 --> 00:12:34,490 Aion klikkaa debug jotta voin alkaa kokoaminen ja sitten 233 00:12:34,490 --> 00:12:36,880 toteuttaminen debuggeri. 234 00:12:36,880 --> 00:12:40,632 >> Tulemme nﺣ۳kemﺣ۳ﺣ۳n, ettﺣ۳ kun hetkiﺣ۳, line ettﺣ۳ me valittu tauko 235 00:12:40,632 --> 00:12:43,360 kohta on korostettu keltaisella. 236 00:12:43,360 --> 00:12:47,440 Voimme myﺣﭘs huomata, ettﺣ۳ ylempi aivan debug paneeli 237 00:12:47,440 --> 00:12:50,940 ettﺣ۳ tauko kuvake on muuttunut pieneen toistokuvaketta. 238 00:12:50,940 --> 00:12:54,710 Tﺣ۳mﺣ۳ tarkoittaa sitﺣ۳, ettﺣ۳ meillﺣ۳ on tauko toteutus, tﺣ۳ssﺣ۳ tapauksessa. 239 00:12:54,710 --> 00:12:57,840 Ja lyﺣﭘmﺣ۳llﺣ۳ toistopainiketta olisi jotta voimme jatkaa toteutus 240 00:12:57,840 --> 00:13:00,000 tﺣ۳ssﺣ۳ erityinen kohta. 241 00:13:00,000 --> 00:13:03,240 >> Huomaa, ettﺣ۳ on olemassa pari muuta painikkeet saatavilla debug paneeli, 242 00:13:03,240 --> 00:13:04,220 yhtﺣ۳ hyvin. 243 00:13:04,220 --> 00:13:09,470 Askel yli, jossa voin suorittaa ettﺣ۳ yhtﺣ۳ riviﺣ۳ koodia 244 00:13:09,470 --> 00:13:14,030 ja askel yli ettﺣ۳ linja seuraava, joka tﺣ۳ssﺣ۳ tapauksessa, 245 00:13:14,030 --> 00:13:17,060 merkitsisi sitﺣ۳, ettﺣ۳ printf lauseke suoritetaan. 246 00:13:17,060 --> 00:13:22,310 Ja se sitten tauko teloituksen linja 13, kuten niin. 247 00:13:22,310 --> 00:13:25,090 >> Ja siellﺣ۳ on myﺣﭘs askel osaksi toiminto, joka 248 00:13:25,090 --> 00:13:28,950 on hyﺣﭘdyllistﺣ۳, jos olen luonut muut toiminnot muualla lﺣ۳hdekoodia. 249 00:13:28,950 --> 00:13:31,420 Ja haluan astua ne toiminnot sijaan 250 00:13:31,420 --> 00:13:33,050 suorittaa tﺣ۳mﺣ۳ tehtﺣ۳vﺣ۳ kokonaisuudessaan. 251 00:13:33,050 --> 00:13:37,279 Mutta me tarkastelemme enemmﺣ۳n vaiheessa osaksi toimivat vain hetken. 252 00:13:37,279 --> 00:13:40,320 Nyt huomaat joitakin muita asioita, jotka oikeasti olemassa tﺣ۳mﺣ۳n debug paneeli. 253 00:13:40,320 --> 00:13:44,110 >> Meillﺣ۳ on tﺣ۳mﺣ۳ paneeli kutsutaan kutsupino, joka nﺣ۳yttﺣ۳ﺣ۳ meille 254 00:13:44,110 --> 00:13:45,300 missﺣ۳ tarkalleen olemme. 255 00:13:45,300 --> 00:13:48,550 Tﺣ۳ssﺣ۳ tapauksessa olemme sisﺣ۳llﺣ۳ n pﺣ۳ﺣ۳tehtﺣ۳vﺣ۳. 256 00:13:48,550 --> 00:13:50,880 Meidﺣ۳n kﺣ۳sikirjoitus on nimeltﺣ۳ﺣ۳n count.c. 257 00:13:50,880 --> 00:13:53,820 Ja me sattuvat olemaan rivi 13, sarake yksi, joka 258 00:13:53,820 --> 00:13:58,950 Juuri korostettu alue lﺣ۳hdekoodin osoittaa, samoin. 259 00:13:58,950 --> 00:14:02,435 >> Nyt huomaa, ettﺣ۳ tﺣ۳mﺣ۳ nﺣ۳kyy myﺣﭘs alle paikallinen muuttuja jakso 260 00:14:02,435 --> 00:14:06,710 kaikki muuttujia esiintyy tﺣ۳tﺣ۳ toimintoa. 261 00:14:06,710 --> 00:14:08,930 On tﺣ۳rkeﺣ۳ﺣ۳ huomata, ettﺣ۳ kaikki muuttujat 262 00:14:08,930 --> 00:14:12,580 ilmestyy tﺣ۳mﺣ۳n paikallisen muuttuja kohta sisﺣ۳llﺣ۳ toiminto, 263 00:14:12,580 --> 00:14:14,380 jo ennen kuin ne on mﺣ۳ﺣ۳ritelty. 264 00:14:14,380 --> 00:14:19,160 Voimme nﺣ۳hdﺣ۳ tﺣ۳ﺣ۳llﺣ۳, ettﺣ۳ meillﺣ۳ on muuttuva nimeltﺣ۳ﺣ۳n num, on oletusarvo 0, 265 00:14:19,160 --> 00:14:21,280 ja se on tyyppiﺣ۳ int. 266 00:14:21,280 --> 00:14:24,110 >> Nyt ennen kuin me itse alustaa kaikkia nﺣ۳itﺣ۳ muuttujia, 267 00:14:24,110 --> 00:14:26,685 emme ole vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳ taattu nﺣ۳hdﺣ۳ arvoa 0. 268 00:14:26,685 --> 00:14:29,200 Ja riippuu muista teloituksista ettﺣ۳ olet tehnyt 269 00:14:29,200 --> 00:14:32,020 ja valtion oman muistista, kun olet todella ajaa tﺣ۳tﺣ۳ ohjelmaa, 270 00:14:32,020 --> 00:14:34,605 saatat huomata, ettﺣ۳ olet nﺣ۳e arvoja 0 271 00:14:34,605 --> 00:14:36,550 ja, sen sijaan, joitakin muita hullu numeroita. 272 00:14:36,550 --> 00:14:38,390 >> Mutta ﺣ۳lﺣ۳ murehdi. 273 00:14:38,390 --> 00:14:44,610 Se ei tule olemaan merkityksellisiﺣ۳ asti voit itse alustaa arvo. 274 00:14:44,610 --> 00:14:49,630 Nyt tﺣ۳ssﺣ۳ tapauksessa, voimme nﺣ۳hdﺣ۳, ettﺣ۳ Olen tehnyt joitakin tuotoksia. 275 00:14:49,630 --> 00:14:52,131 Ja minﺣ۳, juuri nyt, keskeytetty suoritus. 276 00:14:52,131 --> 00:14:53,880 Mutta tﺣ۳ssﺣ۳ tapauksessa, mitﺣ۳ En todellakaan halua tehdﺣ۳ 277 00:14:53,880 --> 00:14:58,060 on nyt askel yli tﺣ۳mﺣ۳n linjan koodia jotta voin todella 278 00:14:58,060 --> 00:15:04,390 kysellﺣ۳ kﺣ۳yttﺣ۳jﺣ۳ltﺣ۳ ettﺣ۳ int ettﺣ۳ haluamme kﺣ۳yttﺣ۳ﺣ۳ ohjelmaamme. 279 00:15:04,390 --> 00:15:07,060 >> Nyt tﺣ۳ssﺣ۳ tapauksessa, kun Lﺣﭘin askel yli, ilmoitus 280 00:15:07,060 --> 00:15:11,940 ettﺣ۳ Tauko tai pikemminkin Jatka painike on muuttunut tﺣ۳hﺣ۳n Tauko-painiketta 281 00:15:11,940 --> 00:15:14,022 koska tﺣ۳mﺣ۳ koodi on todella tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpanosta. 282 00:15:14,022 --> 00:15:15,730 Mitﺣ۳ tapahtuu nyt on, ettﺣ۳ se on 283 00:15:15,730 --> 00:15:21,630 odottaa meitﺣ۳ syﺣﭘttﺣ۳ﺣ۳ joitakin tietoja kuten voimme nﺣ۳hdﺣ۳ meidﺣ۳n tulostustekstiﺣ۳ 284 00:15:21,630 --> 00:15:23,600 alareunassa. 285 00:15:23,600 --> 00:15:25,787 >> Joten juuri nyt, tﺣ۳mﺣ۳ on ei oikeastaan ﻗ€‹ﻗ€‹keskeytetty, 286 00:15:25,787 --> 00:15:28,620 vaikka se, tavallaan nﺣ۳yttﺣ۳ﺣ۳ olla koska mitﺣ۳ﺣ۳n ei tapahdu. 287 00:15:28,620 --> 00:15:32,360 Mutta se vain niin, ettﺣ۳ minun erityistapaus linja 13, 288 00:15:32,360 --> 00:15:34,210 Odotan kﺣ۳yttﺣ۳jﺣ۳n syﺣﭘtettﺣ۳. 289 00:15:34,210 --> 00:15:39,130 Ja niin GDB ei voi tarkastaa ohjelma koska se on kﺣ۳ynnissﺣ۳. 290 00:15:39,130 --> 00:15:43,370 >> Nyt seuraavan kerran astun jotkut input-- niin minﺣ۳ kirjoita ettﺣ۳ numero 5, 291 00:15:43,370 --> 00:15:46,140 kuten olemme nﺣ۳hneet past-- osuma Palaa, ja me 292 00:15:46,140 --> 00:15:51,430 huomata, ettﺣ۳ heti, GDB taukoja ja jﺣ۳lleen korostaa seuraavalle riville. 293 00:15:51,430 --> 00:15:55,320 Mutta huomaan, ettﺣ۳ nyt, kun Tﺣ۳mﺣ۳n vuoksi meidﺣ۳n kirjoittamalla arvon, 294 00:15:55,320 --> 00:15:58,930 olemme pﺣ۳ivittﺣ۳neet ettﺣ۳ arvo sisﺣ۳llﺣ۳ meidﺣ۳n paikallisia muuttujia, jotka 295 00:15:58,930 --> 00:16:05,560 on erittﺣ۳in hyﺣﭘdyllistﺣ۳ tietﺣ۳ﺣ۳ tarkasti mitﺣ۳ se mﺣ۳ﺣ۳rﺣ۳ oli muistissa. 296 00:16:05,560 --> 00:16:10,650 >> Nyt voin antaa tﺣ۳mﺣ۳n ohjelman jatkaa pelaa loppuun asti sen toteuttamista 297 00:16:10,650 --> 00:16:12,570 lyﺣﭘmﺣ۳llﺣ۳ Jatka. 298 00:16:12,570 --> 00:16:16,410 Voimme nﺣ۳hdﺣ۳, ettﺣ۳ hyvin nopeasti tekee ohjelman loppuun tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpanosta 299 00:16:16,410 --> 00:16:19,790 kanssa saman tuotoksen ettﺣ۳ me oli ennen, debuggeri sulkeutuu, 300 00:16:19,790 --> 00:16:23,170 ja nyt tﺣ۳mﺣ۳ ohjelma on tﺣ۳ysin pysﺣ۳htynyt. 301 00:16:23,170 --> 00:16:25,320 >> Osoitan, ettﺣ۳ vain tarkoituksiin nﺣ۳hdﺣ۳ mitﺣ۳ 302 00:16:25,320 --> 00:16:27,280 tapahtuu, kun me todella osuma Jatka. 303 00:16:27,280 --> 00:16:30,640 Mutta me todella aiomme halua mennﺣ۳ takaisin tﺣ۳hﺣ۳n ohjelmaan 304 00:16:30,640 --> 00:16:33,820 jotta voimme yrittﺣ۳ﺣ۳ debug Juuri mitﺣ۳ tapahtuu. 305 00:16:33,820 --> 00:16:37,980 Nyt olen kﺣ۳yttﺣ۳en debuggeri, sallitte ei tarvitse nﺣ۳itﺣ۳ debug printf lausunnot. 306 00:16:37,980 --> 00:16:43,860 >> Niin voisin poistaa niitﺣ۳ minﺣ۳ teen nyt vain mennﺣ۳ takaisin meidﺣ۳n yksinkertaisempaa koodi 307 00:16:43,860 --> 00:16:45,950 ettﺣ۳ meillﺣ۳ oli hetki sitten. 308 00:16:45,950 --> 00:16:48,790 Nyt kun tallennan ohjelmoida ja suorittaa sen, 309 00:16:48,790 --> 00:16:53,700 se, jﺣ۳lleen, mene ettﺣ۳ ensimmﺣ۳iset taitekohta ettﺣ۳ minulla oli verkossa 11. 310 00:16:53,700 --> 00:16:57,700 Ja minﺣ۳ voi tarkastaa minun muuttujia kuin haluan tehdﺣ۳. 311 00:16:57,700 --> 00:17:00,695 >> Se vain niin, ettﺣ۳ tﺣ۳mﺣ۳ osa ei ole kovin kiinnostava, 312 00:17:00,695 --> 00:17:04,364 Ja tiedﺣ۳n, ettﺣ۳ aion tulostaa tﺣ۳tﺣ۳ vﺣ۳itettﺣ۳. 313 00:17:04,364 --> 00:17:05,280 Anna numero. 314 00:17:05,280 --> 00:17:08,099 Ja sitten, tiedﺣ۳n, ettﺣ۳ aion pyytﺣ۳ﺣ۳ kﺣ۳yttﺣ۳jﺣ۳ltﺣ۳ ettﺣ۳ kokonaisluku. 315 00:17:08,099 --> 00:17:13,329 Joten ehkﺣ۳, en oikeastaan ﻗ€‹ﻗ€‹halua muuttaa minun taitekohta hieman alempana. 316 00:17:13,329 --> 00:17:16,710 >> Voit poistaa taitepisteissﺣ۳ napsauttamalla, jﺣ۳lleen, suoraan 317 00:17:16,710 --> 00:17:18,460 vasemmalla ettﺣ۳ rivinumero. 318 00:17:18,460 --> 00:17:22,200 Ettﺣ۳ red dot katoaa osoittaen ettﺣ۳ taitekohta on nyt poissa. 319 00:17:22,200 --> 00:17:24,780 Nyt tﺣ۳ssﺣ۳ tapauksessa, suoritus on keskeytetty. 320 00:17:24,780 --> 00:17:27,770 Ja niin se ei ole todella tulee jatkaa kyseisessﺣ۳ tapauksessa. 321 00:17:27,770 --> 00:17:30,210 Mutta voin asettaa tauko kohta hieman myﺣﭘhemmin. 322 00:17:30,210 --> 00:17:33,880 >> Ja kun minﺣ۳ nyt jatkan koodi, se jatkuu ja kerro 323 00:17:33,880 --> 00:17:36,190 piste ettﺣ۳ taitekohta. 324 00:17:36,190 --> 00:17:37,374 Jﺣ۳lleen osuin Jatka. 325 00:17:37,374 --> 00:17:39,040 Ei tunnu mitﺣ۳ﺣ۳n tapahtuu. 326 00:17:39,040 --> 00:17:41,450 Mutta se johtuu minun koodi odottaa syﺣﭘtteitﺣ۳. 327 00:17:41,450 --> 00:17:47,900 Minﺣ۳ tulee numero 5, paina Enter, ja nyt seuraava taitekohta tulevat kﺣ۳rsimﺣ۳ﺣ۳n. 328 00:17:47,900 --> 00:17:50,570 >> Nyt tﺣ۳ssﺣ۳ tapauksessa, tﺣ۳mﺣ۳ on koodiriviﺣ۳ 329 00:17:50,570 --> 00:17:53,820 ettﺣ۳ ennen, tiesimme sattui olemaan buginen. 330 00:17:53,820 --> 00:17:57,590 Joten arvioida, mitﺣ۳ tapahtuu juuri tﺣ۳ssﺣ۳ vaiheessa. 331 00:17:57,590 --> 00:18:02,620 Kun rivi nﺣ۳kyy korostettuna, tﺣ۳mﺣ۳ linja ei ole vielﺣ۳ pantu tﺣ۳ytﺣ۳ntﺣﭘﺣﭘn. 332 00:18:02,620 --> 00:18:06,490 Joten tﺣ۳ssﺣ۳ tapauksessa, voimme nﺣ۳hdﺣ۳ ettﺣ۳ minulla on useita, joka 333 00:18:06,490 --> 00:18:11,610 Minulla on kokonaisluku nimeltﺣ۳ﺣ۳n num, jonka arvo 5. 334 00:18:11,610 --> 00:18:15,090 Ja aion esiintyy jotkut matematiikka ettﺣ۳ numero. 335 00:18:15,090 --> 00:18:20,130 >> Jos astun yli ettﺣ۳, voimme huomata, ettﺣ۳ arvo num 336 00:18:20,130 --> 00:18:23,780 on muuttunut mukaisesti aritmeettinen ettﺣ۳ olemme todella tehneet. 337 00:18:23,780 --> 00:18:26,810 Ja nyt, ettﺣ۳ olemme sisﺣ۳llﺣ۳ tﺣ۳mﺣ۳n silmukan 338 00:18:26,810 --> 00:18:29,090 tai nyt ettﺣ۳ silmukka itsessﺣ۳ﺣ۳n on korostettu, 339 00:18:29,090 --> 00:18:32,450 nﺣ۳emme, ettﺣ۳ meillﺣ۳ on uusi muuttuja nimeltﺣ۳ i ettﺣ۳ 340 00:18:32,450 --> 00:18:35,370 aiotaan kﺣ۳yttﺣ۳ﺣ۳, ettﺣ۳ silmukka. 341 00:18:35,370 --> 00:18:38,230 >> Muistakaa ennen, ettﺣ۳ olen mainitsi, ettﺣ۳ joskus olet 342 00:18:38,230 --> 00:18:43,470 nﺣ۳kemﺣ۳ﺣ۳n jonkinlainen hullu numerot oletukseksi ennen numero 343 00:18:43,470 --> 00:18:45,530 tai ettﺣ۳ muuttuja on todella alustettu. 344 00:18:45,530 --> 00:18:49,040 Voimme nﺣ۳hdﺣ۳, ettﺣ۳ juuri tﺣ۳ﺣ۳llﺣ۳ tﺣ۳mﺣ۳n muuttujan 345 00:18:49,040 --> 00:18:51,345 nimeltﺣ۳ﺣ۳n i, joka ei ole vielﺣ۳ alustettu 346 00:18:51,345 --> 00:18:53,560 aikaan esiin. 347 00:18:53,560 --> 00:18:57,070 Mutta voimme nﺣ۳hdﺣ۳, ettﺣ۳ se on jonkin verran numero ettﺣ۳ emme oikeastaan ﻗ€‹ﻗ€‹odotamme. 348 00:18:57,070 --> 00:18:57,620 >> Se on okei. 349 00:18:57,620 --> 00:18:59,661 ﺣ„lﺣ۳ ole huolissasi siitﺣ۳ koska meillﺣ۳ ei oikeastaan 350 00:18:59,661 --> 00:19:04,970 alustettu, ettﺣ۳ mﺣ۳ﺣ۳rﺣ۳ kunnes askel yli tﺣ۳mﺣ۳ rivi ja arvo 351 00:19:04,970 --> 00:19:08,560 i on alustettu arvoon 1.. 352 00:19:08,560 --> 00:19:11,400 Niin nﺣ۳hdﺣ۳, ettﺣ۳ se on todella tapauksessa, nyt askel yli. 353 00:19:11,400 --> 00:19:14,420 Voimme nyt nﺣ۳hdﺣ۳, ettﺣ۳ linja on suoritettu. 354 00:19:14,420 --> 00:19:17,000 Ja nyt esiin tﺣ۳mﺣ۳ printf linja. 355 00:19:17,000 --> 00:19:22,230 >> Ja voimme nyt nﺣ۳hdﺣ۳, miten arvomme i ja 3 ovat muuttuneet ajan myﺣﭘtﺣ۳. 356 00:19:22,230 --> 00:19:26,450 Tﺣ۳mﺣ۳ on erittﺣ۳in hyﺣﭘdyllistﺣ۳ tehdﺣ۳, itse asiassa, on askel yli linjat toistuvasti. 357 00:19:26,450 --> 00:19:30,480 Ja voit lﺣﭘytﺣ۳ﺣ۳ mitﺣ۳ todella tapahtuu sisﺣ۳llﺣ۳ oman silmukan 358 00:19:30,480 --> 00:19:33,660 ja mitﺣ۳ tapahtuu muuttujat sisﺣ۳llﺣ۳ ettﺣ۳ silmukka 359 00:19:33,660 --> 00:19:39,200 kuin ohjelman suoritus tapahtuu yksi askel kerrallaan. 360 00:19:39,200 --> 00:19:41,110 >> Nyt tﺣ۳ssﺣ۳ vaiheessa, minﺣ۳ astui yli juuri tarpeeksi 361 00:19:41,110 --> 00:19:44,210 ettﺣ۳ minﺣ۳ nyt olen lopussa minun ohjelma. 362 00:19:44,210 --> 00:19:46,980 Jos astun yli ettﺣ۳, se todella lopettaa toteutus 363 00:19:46,980 --> 00:19:48,860 kuten olemme nﺣ۳hneet aiemmin. 364 00:19:48,860 --> 00:19:52,110 Saanen uudelleen tﺣ۳mﺣ۳n, jﺣ۳lleen kerran, niin ettﺣ۳ voin huomauttaa jotain muuta pois, 365 00:19:52,110 --> 00:19:53,320 yhtﺣ۳ hyvin. 366 00:19:53,320 --> 00:19:55,350 >> Tﺣ۳ssﺣ۳ tapauksessa on nyt pyytﺣ۳ﺣ۳ minua, taas, 367 00:19:55,350 --> 00:19:57,100 useita, joka Aion jﺣ۳lleen, anna. 368 00:19:57,100 --> 00:20:00,300 Mutta tﺣ۳llﺣ۳ kertaa, aion syﺣﭘttﺣ۳ﺣ۳ suurempaa mﺣ۳ﺣ۳rﺣ۳ﺣ۳ niin, ettﺣ۳ silmukka 369 00:20:00,300 --> 00:20:02,540 tulee kerrata kertaa. 370 00:20:02,540 --> 00:20:06,090 Tﺣ۳ssﺣ۳ tapauksessa, aion anna arvo 11. 371 00:20:06,090 --> 00:20:08,390 >> Nyt uudelleen, koska olin asettanut taitekohta rivillﺣ۳ 15, 372 00:20:08,390 --> 00:20:10,490 se tulee esiin, ettﺣ۳ linja. 373 00:20:10,490 --> 00:20:12,980 Voimme nﺣ۳hdﺣ۳, ettﺣ۳ meidﺣ۳n numero 11 on oikein 374 00:20:12,980 --> 00:20:15,560 edustettuina meidﺣ۳n paikallisia muuttujia. 375 00:20:15,560 --> 00:20:22,460 Stepping yli ettﺣ۳ voimme nyt katsoa mitﺣ۳ tapahtuu meidﺣ۳n arvo i 376 00:20:22,460 --> 00:20:25,680 kuten me edetﺣ۳ sisﺣ۳llﺣ۳ tﺣ۳mﺣ۳n silmukan. 377 00:20:25,680 --> 00:20:31,960 Se saa kasvaa joka kerta kun huipulle ettﺣ۳ silmukka. 378 00:20:31,960 --> 00:20:35,110 >> Nyt yksi asioita, jotka saattavat olla hyﺣﭘdyllistﺣ۳ tehdﺣ۳ suorituksen aikana 379 00:20:35,110 --> 00:20:40,490 Tﺣ۳mﺣ۳n ohjelman on minulle todella muuttaa muuttujat midstream nﺣ۳hdﺣ۳ 380 00:20:40,490 --> 00:20:42,450 mitﺣ۳ tapahtuu minun ohjelma. 381 00:20:42,450 --> 00:20:46,540 Tﺣ۳ssﺣ۳ tapauksessa en voi itse tuplaklikkaa arvo. 382 00:20:46,540 --> 00:20:48,040 Huomaa, ettﺣ۳ se tulee tekstikenttﺣ۳ﺣ۳n. 383 00:20:48,040 --> 00:20:50,280 >> Nyt voin tulla eri Arvostamme yhteensﺣ۳ 384 00:20:50,280 --> 00:20:55,700 miten minun ohjelma kﺣ۳yttﺣ۳ytyy kun olen muuttanut ettﺣ۳ muuttuja. 385 00:20:55,700 --> 00:20:59,560 Nyt tﺣ۳ssﺣ۳ tapauksessa, muuttuva Nyt sisﺣ۳ltﺣ۳ﺣ۳ arvon 10. 386 00:20:59,560 --> 00:21:02,810 Mutta ohjelma on edelleen keskeytetty toteuttamiseksi. 387 00:21:02,810 --> 00:21:07,610 Kun astun yli, nﺣ۳en ettﺣ۳ arvo i, joka tulin 10, 388 00:21:07,610 --> 00:21:12,170 ei ole suurempi kuin arvo num, joka heti aiheuttaa silmukka 389 00:21:12,170 --> 00:21:14,240 lopettaa tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpanosta. 390 00:21:14,240 --> 00:21:16,210 >> Nyt se ei ole ainoa Miksi olisit 391 00:21:16,210 --> 00:21:19,450 haluat muokata muuttujan paikallaan. 392 00:21:19,450 --> 00:21:22,210 Saatat todella haluavat yrittﺣ۳ﺣ۳ muuttaa sitﺣ۳ niin 393 00:21:22,210 --> 00:21:24,590 ettﺣ۳ voit jatkaa toteuttaminen silmukan 394 00:21:24,590 --> 00:21:27,370 tai niin, ettﺣ۳ voit muokata jotain arvoa, ennen kuin se 395 00:21:27,370 --> 00:21:32,630 saavuttaa tiettyjﺣ۳ joukko aritmeettinen ettﺣ۳ olet aikeissa suorittaa. 396 00:21:32,630 --> 00:21:36,210 >> Joten nyt me todella muuttaa arvo, koska ohjelman tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpanosta, 397 00:21:36,210 --> 00:21:39,540 se aiheutti silmukka lopettaa ennenaikaisesti, yhtﺣ۳kkiﺣ۳, i 398 00:21:39,540 --> 00:21:42,770 sattui olemaan suurempi kuin arvo NUM, eli ettﺣ۳ silmukka 399 00:21:42,770 --> 00:21:45,410 ei enﺣ۳ﺣ۳ tarvita suoritettavaksi. 400 00:21:45,410 --> 00:21:48,780 Lisﺣ۳ksi se sattui olemaan tapauksessa, ettﺣ۳ muutimme arvo I 401 00:21:48,780 --> 00:21:53,270 kun linja 17 korostettiin, joka oli ajankohtana 402 00:21:53,270 --> 00:21:56,280 ettﺣ۳ silmukan suorittamisen tosiasiallisesti arvioidaan. 403 00:21:56,280 --> 00:22:00,210 >> Jos olisin muuttanut arvo I eri linja, sanovat 19, 404 00:22:00,210 --> 00:22:03,360 olisimme nﺣ۳hneet eri kﺣ۳yttﺣ۳ytyminen koska linja 19 olisi 405 00:22:03,360 --> 00:22:08,310 on suoritettu ennen silmukka ehto arvioida uudelleen. 406 00:22:08,310 --> 00:22:11,900 Nyt tﺣ۳ssﺣ۳ vaiheessa, olen, taas, lopussa tﺣ۳mﺣ۳n ohjelman. 407 00:22:11,900 --> 00:22:15,707 Ja voin antaa tﺣ۳mﺣ۳n siirtyﺣ۳ anna minun ohjelma lopettaa luonnollisesti. 408 00:22:15,707 --> 00:22:18,290 Mutta on pari asiaa jotka ovat tﺣ۳rkeitﺣ۳ ottaa pois 409 00:22:18,290 --> 00:22:19,960 mistﺣ۳ tﺣ۳ssﺣ۳ keskustelussa. 410 00:22:19,960 --> 00:22:22,490 Sinun tﺣ۳ytyy arvioida omat oletukset 411 00:22:22,490 --> 00:22:24,710 miten koodi pitﺣ۳ﺣ۳ kﺣ۳yttﺣ۳ytyﺣ۳. 412 00:22:24,710 --> 00:22:28,220 Aina luulet, ettﺣ۳ jotkut pala koodia tiedﺣ۳t sattuu tyﺣﭘskennellﺣ۳, 413 00:22:28,220 --> 00:22:30,940 jotka saattavat olla punainen lippu mennﺣ۳ takaisin ja arvioida, ja varmista 414 00:22:30,940 --> 00:22:33,470 ettﺣ۳ oletus miten tﺣ۳mﺣ۳ koodi toimii 415 00:22:33,470 --> 00:22:38,290 on todella totta, miten se on ilmaistuna lﺣ۳hdekoodia. 416 00:22:38,290 --> 00:22:41,300 >> Mutta vielﺣ۳ pisteeseen oli, kun kﺣ۳ytﺣ۳mme debuggeri, 417 00:22:41,300 --> 00:22:43,920 voit laittaa raja-arvot osoitteessa eri riviﺣ۳ koodia, 418 00:22:43,920 --> 00:22:48,110 joka aiheuttaa virheenkorjaus tauko toteuttamista kussakin nﺣ۳istﺣ۳ linjat 419 00:22:48,110 --> 00:22:52,210 jotta voit arvioida muistiin tai jopa muuttaa sitﺣ۳ paikallaan. 420 00:22:52,210 --> 00:22:55,630 Ja vielﺣ۳, muista, ettﺣ۳ voit luoda useita raja-arvot niin, ettﺣ۳ te 421 00:22:55,630 --> 00:23:00,390 voi myﺣﭘs jatkaa toteuttamista, ohita laajoilla koodin osia, 422 00:23:00,390 --> 00:23:04,790 ja se tulee automaattisesti tauko seuraavassa taitekohta. 423 00:23:04,790 --> 00:23:07,760 >> On todella kehittyneempiﺣ۳ piirteitﺣ۳ debuggeri, samoin. 424 00:23:07,760 --> 00:23:10,170 Mutta meidﺣ۳n tﺣ۳ytyy viittaan jossain myﺣﭘhemmin videoita 425 00:23:10,170 --> 00:23:14,090 jotta todella kiusata erilleen miten kﺣ۳yttﺣ۳ﺣ۳ kyseisiﺣ۳ toimintoja. 426 00:23:14,090 --> 00:23:15,990 Nyt, kiitos Paljon katsomassa. 427 00:23:15,990 --> 00:23:18,080 Ja onnea virheenkorjaus.