[? DAN ARMADARAS:?] Hei, Olen [? Dan Armadaras?]. Tänään aiomme Tarkastelemme virheenkorjaus. Ei vain aiomme puhua joitakin tekniikoita, mutta myös aiomme tarkastella joitakin ominaisuuksia sisälsi sisällä CS50 IDE, joka mahdollistaa voit helposti debug ohjelma. Vain yksi esimerkki jotain, että voi mennä pieleen ja se on todella jotain että olemme jo ennen nähnyt. Tässä tapauksessa tämä on C-ohjelma joka hyväksyy kokonaisluku käyttäjä, jakaa se kahdella ja tarjoaa lähtö takaisin käyttäjälle. Nyt mitä olemme nähneet aiemmin luentoja, me tiedämme, että tämä itse aiheuttaa tietyntyyppisiin jako ongelmia kun meillä on pariton määrä. Erityisesti me vain heittää pois mitään desimaalipilkun jälkeen. Nyt tiedämme, että tämä sattuu olemaan kyse. Ja jos me ajaa se, voimme vahvistaa epäilyksemme, ensimmäinen, kokoamalla. Ja sitten, ajamalla ja kirjoittamalla pariton määrä. Tämä ei ole mitään uutta. Mutta tämä on todella esimerkki vika, joka sisällä voi olla suurempi ohjelma että on vaikeampi jäljittää. Vaikka tiedämme, mitä kysymys on, tosi asian ydin saattaa yrittää tunnistaa erityisesti jos virhe ilmenee, tunnistaa, mitä tämä ongelma on, ja sitten kiinnittämällä se. Joten antaa tätä esimerkkinä mitä voisi olla jotain että tiedämme jo, mutta voidaan haudata sisällä muiden osien koodia. Joten avaa tämä muusta lähteestä koodi tiedosto esimerkkinä, tämä jako ongelma on nyt osa suurempaa ohjelmaa. Silti saattaa olla hieman bittinen keinotekoinen, ja me ehkä helposti tunnistaa sen, erityisesti koska me vain keskustelemme. Mutta voimme selvittää, että tämä ongelma voi olla laajemmassa mittakaavassa. Jos minä kokoaa ja nyt ajaa se, anna pariton määrä, voimme nähdä, että emme saa tarkasti tuotos, joka meillä voi odottaa. Tässä nimenomaisessa tapauksessa, voisimme sanoa, että me haluavat laskea kaikki numerot yhdestä jopa joitakin erityisiä numero. Ja voimme nähdä, että me on eri asioita täällä jos olemme syöttöä, yksinkertaisesti, 0 ja 1, kun tarjoamme panos 5. Joten tiedämme jo, että siellä ongelma täällä. Mutta emme ehkä tiedä tarkalleen jos tämä asia todella on olemassa. Nyt yksi niistä tavoista, että voimme yrittää korjata tämän on jotain, että olemme jo otettu käyttöön. Voimme vain käyttää sitä suuremmassa mittakaavassa. On line 14, meillä on Tämän printf toiminto, jonka avulla voimme tulostaa valtio ja erilaisia ​​tietoja. Ja tämä on jotain, sinun tulisi hyödyntää omassa ohjelmassa yrittää selvittää, mitä on tapahtuu eri riviä koodia. Joten vaikka tämä ei ole lopullinen tuotos että me todella haluavat tuottaa ulos Tällä ohjelmalla vielä saattaa olla joitakin debug lausunnot jossa voi yrittää selvittää tarkasti, mitä sisällä tapahtuu meidän koodi. Joten tässä tapauksessa, aion printf kanssa debug tag. Tässä tapauksessa tämä on vain debug string että olen ajan laittoi jotta siitä tulee hyvin selkeä tuotoksen minun koodi mitä se on, että haluan näyttää. Ja lähtö täällä numero että olemme laskettu. Tässä tapauksessa, voisin haluavat tietää tarkasti mitä tapahtuu ennen ja jälkeen joitakin erityisiä laskenta. Niin voisin käyttää printf ennen ja sen jälkeen rivi koodia. Tässä tapauksessa, voisin jopa tehdä siitä hieman selvemmin sanomalla debug ennen ja debug jälkeen niin että en sekoita itseäni useita linjoja, jotka näyttävät samanlainen. Nyt jos me kääntää tämän ja ajaa se, kirjoita numero, kuten viisi uudelleen, voimme nähdä, että meillä on nyt lähtö ennen ja jälkeen ja huomaat, että emme ole tehneet selkeää jako tai selkeä joilla lukumäärästä että me todella haluavat tehdä. Nyt tässä tapauksessa, tämä on ei oikeastaan ​​selvä tuotos. Se ei oikeastaan ​​selvä tulos, joka haluamme pois kyseistä ohjelmaa. Ja tämä on, jälleen, hieman contrived. Mutta ehkä yksi niistä asioista, jotka voisimme tehdä, jos erittely sanoi että haluamme jakaa tämän 2 ja lisää 1-- niin toisin sanoen, haluamme pyöristää up-- sitten tietäisimme, että voisimme tehdä kyseisen asia, tässä tapauksessa. Nyt täällä tiedämme, että meillä on voi lisätä 1 meidän puolittunut numero. Katsotaanpa kääntää tämän ja vahvistaa, että tämä käyttäytyy siten, että haluamme. Voimme nähdä, että nyt ennen ottaa, meillä on numero 5. Saatuaan, meillä on numero 3, joka mukaan meidän toiveiden, halusimme tehdä. Mutta jos katsomme tuotos täällä, voimme nähdä, että meillä olisi toinen bug kokonaan, mikä on että me aloitamme count 0. Nyt taas, tämä on jotain että olemme nähneet aiemmin ja voimme korjata melko helposti. Mutta tässä tapauksessa, me oli myös hyötyä käyttää printf selvitys suoraan sisällä silmukan tietää tarkasti missä että virhe oli tapahtumassa. Joten printf lausunnot ovat erittäin hyödyllinen auttaa voit määrittää missä, juuri lähdekoodia, tietty virhe tapahtuu. Ja se on myös tärkeää ymmärtää, että, kuten me kirjoittaa koodia, olisimme oletukset tilasta ohjelman. Tai voisimme olla oletukset mitä osa ohjelmaa on todella oikea tai väärä, kun myöhemmin kun rakennamme että ohjelmasta ja tehdä siitä osa monimutkainen ja suurempia ohjelma että ymmärrämme, että jostakin Tämän on todella buginen. Käyttämällä printf voi todella auttaa kaventaa ja tunnistaa alueiden ohjelma, joka saa käyttäytyisi juuri niin, että me odottaa, perustuu meidän oletuksiin. Mutta on muita työkaluja saatavilla, samoin, joiden avulla voimme yrittää selvittää missä virhe tapahtuu ja myös, erityisesti, mitkä asiat tapahtuu sisällä ohjelman. Joten käyttämällä printf on hyvin hyödyllinen, kun halutaan tunnistamaan tietyillä aloilla ohjelma, joka on joitakin bug. Mutta se myös tulee tylsiä jonkin ajan kuluttua. Tässä tapauksessa tämä on suhteellisen yksinkertainen ohjelma vain yksi tai kaksi muuttujaa. Ja se on erittäin helppo meille tulostaa arvon niitä muuttujia yhteydessä suurempi ohjelman. Mutta saatamme olla eri ohjelma, joka on monia muuttujia. Ja se ei voi olla täysin niin helppokäyttöinen printf yrittää arvioida, mitä tapahtuu ja jokainen näistä muuttujista koska ohjelma on täytäntöönpanosta. On ohjelma, joka on olemassa kutsutaan debuggeri ohjelma. Tässä tapauksessa, joka me käyttö on GNU debuggeri, tai GDB, joka antaa meille mahdollisuuden tarkastaa sisäisen toimintaa ohjelman paljon yksityiskohtaisesti. Voimme todella toteuttaa GDB komentoriviltä tässä yksinkertaisesti kirjoittamalla GDB ja komento, että haluamme debug. Tässä tapauksessa laskea. Nyt tässä tapauksessa, voimme nähdä, että se tuo meidät nopeasti joka sanoo GDB. Ja voimme todella suorittaa komentoja GDB todella aloittaa suorittamisen ohjelma, lopeta tietyissä kohdissa, arvioida muuttujat ja tarkastaa muuttujia olemassa ohjelmassa tilassa tuona ajankohtana, ja niin edelleen ja niin edelleen. Se tarjoaa paljon voimaa meille. Mutta se vain niin, että CS50 IDE myös tarjoaa GUI tai käyttäjä käyttöliittymä GDB että voimme tehdä tämän ilman komentoriviltä mitään tai ollenkaan jopa. Että voin käyttää, että on käyttää debug-painiketta klo hyvin alkuun CS50 IDE. Nyt aikaisemmin, mitä meillä on nähnyt on, että käytämme komentoa linja kääntää ja suorita ohjelma. Debug-painike tekee molemmat nämä toimenpiteet. Mutta se myös tuo esiin debuggeri välilehti äärimmäisenä oikealla joka antaa meille mahdollisuuden tarkastaa lajikkeen ominaisuuksien ohjelman koska se on täytäntöönpanovaltiossa. Jos minä sitten debug, tässä tapauksessa, se tuo esiin uusi välilehti konsolin ikkuna alareunassa. Ja voit nähdä, että tämä välilehti on joitakin tietoja huipulla. Ja voimme pitkälti sivuuttaa tämän. Mutta yksi niistä asioista, että haluamme huomata on, että se tuottaa sama asia, että me saisi jos yritimme ajaa tekemäsi C-ohjelma vuonna pääteikkunassa. Täällä voimme nähdä se on käynnissä kalahtaa, ja sillä on erilaisia ​​lippuja, ja se on koottaessa count.c tiedoston, joka oli valitun välilehden aikaan että osuin debug. Joten tämä on erittäin hyödyllinen, koska nyt käyttää tätä debug painiketta, voimme samanaikaisesti koota ja sitten suorita ohjelma, me todella halua ajaa. Lippua, joka on tärkeitä, tässä tapauksessa, olemme todella käyttänyt pisimpään mutta myös vain tekivät joitakin käsi heiluttaen [äänetön], joka on tämä yksi täällä. Vuonna kalahtaa, sanotaan -ggdb3. Tässä tapauksessa, mitä olemme kertoo kalahtaa, meidän kääntäjä, on, että haluamme kääntää meidän ohjelma. Mutta myös mitä nimeltään symboli tiedot niin että kääntäjä todella on pääsy on paljon taustatiedoista sisällä ohjelma. Tarkemmin sanottuna, numero toimintoja, minulla on, nimet toimintoja, muuttujat, tyypit että nämä muuttujat ovat, ja erilaisia muita asioita, jotka auttavat debuggeri suoriutua. Nyt jotain muuta se on tärkeää mainita kun me keskustelemme käynnissä ohjelman tällä tavalla. Huomaa, että se on todella esille uuden välilehden meidän konsoli alareunassa. Meillä ei enää tarvitse vuorovaikutuksessa suoraan pääteikkuna. Mutta tämä uusi välilehti on todella pääteikkuna. Se vain on nimenomaan käynnissä ohjelma, olemme luoneet. Huomaa, että alareunassa, vuonna yhdessä joidenkin ulostulo mukaan kalahtaa kääntäjä ja GDB, jota voidaan pitkälti sivuuttaa, se todella osoittaa lähtö meidän ohjelma alareunassa. Nyt on tärkeää ymmärtää että tämä ikkuna tosiasiallisesti näyttää ulostulo ohjelmasi mutta myös voi hyväksyä syöttää kyseisen ohjelman, samoin. Niin huomaa, että sanoo kirjoita numero, joka on sama tuotos, joka meillä oli oli pääteikkunassa ennen. Mutta se on nyt esitetty tässä uudessa välilehdessä. Voin syöttää numeron. Ja se todella toimivat odotamme näyttää meille meidän debug, lähtö, tuotos, joka voisi olla buginen, kuten olemme nähneet aiemmin. Ja alareunassa, se tosin on lisää tuotoksen BKT vain, että tämä ohjelma on valmis. Nyt kun näit tässä Erityisesti kulkevat, se ei ole erityisen hyödyllinen, koska jopa vaikka meillä oli debuggeri valikko tulevat up, tämä oli vielä käynnissä ohjelma. Ei missään vaiheessa se todella tauko toteuttamisesta meille pystyä tarkastaa kaikki muuttujien sisällä. Jotain muuta että meidän on tehtävä, jotta päästä GDB tunnustaa, että haluamme keskeyttää ohjelman toteuttamisen eikä vain anna sen jatkaa normaalisti kuten missä tahansa muussakin tapauksessa. Jotta keskeyttää suorituksen, joillakin tietyillä linja, meidän on luotava mitä kutsutaan taitekohta. Ja taitekohta on hyvin helposti luotu tässä CS50 IDE ottamalla hiirellä ja napsauttamalla suoraan vasemmalle Joidenkin tietylle riville. Kun minä, että, punainen piste näyttää, mikä osoittaa että linja on nyt taitekohta. Ja seuraavan kerran juoksen GDB, se pysähtyy toteutuneesta että taitekohta kun se saavuttaa Koodirivin. Nyt tämä on tärkeä asia ymmärtää että se ei ole välttämättä tapauksessa, että jokainen rivi koodia on todella saatavilla. Jos olisin luoda toiminto tänne, sillä example-- mitätön f-- ja vain tehdä tulosta linja here-- hei world-- jos en koskaan kutsua tätä toimintoa, se on niin, että, jos otan taitekohta täällä, toiminto ei koskaan kutsutaan. Ja näin ollen, tämä erityisesti taitekohta ei koskaan todella keskeyttää Ohjelman toteuttamista. Joten sanoa, että olen oikein luoda taitekohta joitakin rivi koodia että todella toteutetaan. Nyt tässä tapauksessa, tämä on ensimmäinen rivi päätehtävä. Joten se varmasti tapaus että, heti kun aloitan toteuttamista, ensimmäinen rivi saavutetaan. GDB pysähtyy toteuttamista. Ja sitten, minä voi vuorovaikutuksessa debugger. Voit asettaa useita rivejä breakpoints, jos haluat. Voimme myös luoda riviin täällä tällä segmentillä koodin että ei koskaan saavuteta. Ja voimme myös asettaa yhden jäljempänä. Syy siihen, että olisimme halua tehdä tätä me will mennä hieman enemmän yksityiskohtaisesti vain hetken. Joten nyt, haluan vain poistaa nämä ylimääräiset taitepisteissä jotta voimme katsoa mitä tapahtuu kun minulla on yksi tauko vaiheessa minun ohjelma. Olen tehnyt joitakin muutokset tähän ohjelmaan. Joten minun täytyy tallentaa sen. Aion klikkaa debug jotta voin alkaa kokoaminen ja sitten toteuttaminen debuggeri. Tulemme näkemään, että kun hetkiä, line että me valittu tauko kohta on korostettu keltaisella. Voimme myös huomata, että ylempi aivan debug paneeli että tauko kuvake on muuttunut pieneen toistokuvaketta. Tämä tarkoittaa sitä, että meillä on tauko toteutus, tässä tapauksessa. Ja lyömällä toistopainiketta olisi jotta voimme jatkaa toteutus tässä erityinen kohta. Huomaa, että on olemassa pari muuta painikkeet saatavilla debug paneeli, yhtä hyvin. Askel yli, jossa voin suorittaa että yhtä riviä koodia ja askel yli että linja seuraava, joka tässä tapauksessa, merkitsisi sitä, että printf lauseke suoritetaan. Ja se sitten tauko teloituksen linja 13, kuten niin. Ja siellä on myös askel osaksi toiminto, joka on hyödyllistä, jos olen luonut muut toiminnot muualla lähdekoodia. Ja haluan astua ne toiminnot sijaan suorittaa tämä tehtävä kokonaisuudessaan. Mutta me tarkastelemme enemmän vaiheessa osaksi toimivat vain hetken. Nyt huomaat joitakin muita asioita, jotka oikeasti olemassa tämän debug paneeli. Meillä on tämä paneeli kutsutaan kutsupino, joka näyttää meille missä tarkalleen olemme. Tässä tapauksessa olemme sisällä n päätehtävä. Meidän käsikirjoitus on nimeltään count.c. Ja me sattuvat olemaan rivi 13, sarake yksi, joka Juuri korostettu alue lähdekoodin osoittaa, samoin. Nyt huomaa, että tämä näkyy myös alle paikallinen muuttuja jakso kaikki muuttujia esiintyy tätä toimintoa. On tärkeää huomata, että kaikki muuttujat ilmestyy tämän paikallisen muuttuja kohta sisällä toiminto, jo ennen kuin ne on määritelty. Voimme nähdä täällä, että meillä on muuttuva nimeltään num, on oletusarvo 0, ja se on tyyppiä int. Nyt ennen kuin me itse alustaa kaikkia näitä muuttujia, emme ole välttämättä taattu nähdä arvoa 0. Ja riippuu muista teloituksista että olet tehnyt ja valtion oman muistista, kun olet todella ajaa tätä ohjelmaa, saatat huomata, että olet näe arvoja 0 ja, sen sijaan, joitakin muita hullu numeroita. Mutta älä murehdi. Se ei tule olemaan merkityksellisiä asti voit itse alustaa arvo. Nyt tässä tapauksessa, voimme nähdä, että Olen tehnyt joitakin tuotoksia. Ja minä, juuri nyt, keskeytetty suoritus. Mutta tässä tapauksessa, mitä En todellakaan halua tehdä on nyt askel yli tämän linjan koodia jotta voin todella kysellä käyttäjältä että int että haluamme käyttää ohjelmaamme. Nyt tässä tapauksessa, kun Löin askel yli, ilmoitus että Tauko tai pikemminkin Jatka painike on muuttunut tähän Tauko-painiketta koska tämä koodi on todella täytäntöönpanosta. Mitä tapahtuu nyt on, että se on odottaa meitä syöttää joitakin tietoja kuten voimme nähdä meidän tulostustekstiä alareunassa. Joten juuri nyt, tämä on ei oikeastaan ​​keskeytetty, vaikka se, tavallaan näyttää olla koska mitään ei tapahdu. Mutta se vain niin, että minun erityistapaus linja 13, Odotan käyttäjän syötettä. Ja niin GDB ei voi tarkastaa ohjelma koska se on käynnissä. Nyt seuraavan kerran astun jotkut input-- niin minä kirjoita että numero 5, kuten olemme nähneet past-- osuma Palaa, ja me huomata, että heti, GDB taukoja ja jälleen korostaa seuraavalle riville. Mutta huomaan, että nyt, kun Tämän vuoksi meidän kirjoittamalla arvon, olemme päivittäneet että arvo sisällä meidän paikallisia muuttujia, jotka on erittäin hyödyllistä tietää tarkasti mitä se määrä oli muistissa. Nyt voin antaa tämän ohjelman jatkaa pelaa loppuun asti sen toteuttamista lyömällä Jatka. Voimme nähdä, että hyvin nopeasti tekee ohjelman loppuun täytäntöönpanosta kanssa saman tuotoksen että me oli ennen, debuggeri sulkeutuu, ja nyt tämä ohjelma on täysin pysähtynyt. Osoitan, että vain tarkoituksiin nähdä mitä tapahtuu, kun me todella osuma Jatka. Mutta me todella aiomme halua mennä takaisin tähän ohjelmaan jotta voimme yrittää debug Juuri mitä tapahtuu. Nyt olen käyttäen debuggeri, sallitte ei tarvitse näitä debug printf lausunnot. Niin voisin poistaa niitä minä teen nyt vain mennä takaisin meidän yksinkertaisempaa koodi että meillä oli hetki sitten. Nyt kun tallennan ohjelmoida ja suorittaa sen, se, jälleen, mene että ensimmäiset taitekohta että minulla oli verkossa 11. Ja minä voi tarkastaa minun muuttujia kuin haluan tehdä. Se vain niin, että tämä osa ei ole kovin kiinnostava, Ja tiedän, että aion tulostaa tätä väitettä. Anna numero. Ja sitten, tiedän, että aion pyytää käyttäjältä että kokonaisluku. Joten ehkä, en oikeastaan ​​halua muuttaa minun taitekohta hieman alempana. Voit poistaa taitepisteissä napsauttamalla, jälleen, suoraan vasemmalla että rivinumero. Että red dot katoaa osoittaen että taitekohta on nyt poissa. Nyt tässä tapauksessa, suoritus on keskeytetty. Ja niin se ei ole todella tulee jatkaa kyseisessä tapauksessa. Mutta voin asettaa tauko kohta hieman myöhemmin. Ja kun minä nyt jatkan koodi, se jatkuu ja kerro piste että taitekohta. Jälleen osuin Jatka. Ei tunnu mitään tapahtuu. Mutta se johtuu minun koodi odottaa syötteitä. Minä tulee numero 5, paina Enter, ja nyt seuraava taitekohta tulevat kärsimään. Nyt tässä tapauksessa, tämä on koodiriviä että ennen, tiesimme sattui olemaan buginen. Joten arvioida, mitä tapahtuu juuri tässä vaiheessa. Kun rivi näkyy korostettuna, tämä linja ei ole vielä pantu täytäntöön. Joten tässä tapauksessa, voimme nähdä että minulla on useita, joka Minulla on kokonaisluku nimeltään num, jonka arvo 5. Ja aion esiintyy jotkut matematiikka että numero. Jos astun yli että, voimme huomata, että arvo num on muuttunut mukaisesti aritmeettinen että olemme todella tehneet. Ja nyt, että olemme sisällä tämän silmukan tai nyt että silmukka itsessään on korostettu, näemme, että meillä on uusi muuttuja nimeltä i että aiotaan käyttää, että silmukka. Muistakaa ennen, että olen mainitsi, että joskus olet näkemään jonkinlainen hullu numerot oletukseksi ennen numero tai että muuttuja on todella alustettu. Voimme nähdä, että juuri täällä tämän muuttujan nimeltään i, joka ei ole vielä alustettu aikaan esiin. Mutta voimme nähdä, että se on jonkin verran numero että emme oikeastaan ​​odotamme. Se on okei. Älä ole huolissasi siitä koska meillä ei oikeastaan alustettu, että määrä kunnes askel yli tämä rivi ja arvo i on alustettu arvoon 1.. Niin nähdä, että se on todella tapauksessa, nyt askel yli. Voimme nyt nähdä, että linja on suoritettu. Ja nyt esiin tämä printf linja. Ja voimme nyt nähdä, miten arvomme i ja 3 ovat muuttuneet ajan myötä. Tämä on erittäin hyödyllistä tehdä, itse asiassa, on askel yli linjat toistuvasti. Ja voit löytää mitä todella tapahtuu sisällä oman silmukan ja mitä tapahtuu muuttujat sisällä että silmukka kuin ohjelman suoritus tapahtuu yksi askel kerrallaan. Nyt tässä vaiheessa, minä astui yli juuri tarpeeksi että minä nyt olen lopussa minun ohjelma. Jos astun yli että, se todella lopettaa toteutus kuten olemme nähneet aiemmin. Saanen uudelleen tämän, jälleen kerran, niin että voin huomauttaa jotain muuta pois, yhtä hyvin. Tässä tapauksessa on nyt pyytää minua, taas, useita, joka Aion jälleen, anna. Mutta tällä kertaa, aion syöttää suurempaa määrää niin, että silmukka tulee kerrata kertaa. Tässä tapauksessa, aion anna arvo 11. Nyt uudelleen, koska olin asettanut taitekohta rivillä 15, se tulee esiin, että linja. Voimme nähdä, että meidän numero 11 on oikein edustettuina meidän paikallisia muuttujia. Stepping yli että voimme nyt katsoa mitä tapahtuu meidän arvo i kuten me edetä sisällä tämän silmukan. Se saa kasvaa joka kerta kun huipulle että silmukka. Nyt yksi asioita, jotka saattavat olla hyödyllistä tehdä suorituksen aikana Tämän ohjelman on minulle todella muuttaa muuttujat midstream nähdä mitä tapahtuu minun ohjelma. Tässä tapauksessa en voi itse tuplaklikkaa arvo. Huomaa, että se tulee tekstikenttään. Nyt voin tulla eri Arvostamme yhteensä miten minun ohjelma käyttäytyy kun olen muuttanut että muuttuja. Nyt tässä tapauksessa, muuttuva Nyt sisältää arvon 10. Mutta ohjelma on edelleen keskeytetty toteuttamiseksi. Kun astun yli, näen että arvo i, joka tulin 10, ei ole suurempi kuin arvo num, joka heti aiheuttaa silmukka lopettaa täytäntöönpanosta. Nyt se ei ole ainoa Miksi olisit haluat muokata muuttujan paikallaan. Saatat todella haluavat yrittää muuttaa sitä niin että voit jatkaa toteuttaminen silmukan tai niin, että voit muokata jotain arvoa, ennen kuin se saavuttaa tiettyjä joukko aritmeettinen että olet aikeissa suorittaa. Joten nyt me todella muuttaa arvo, koska ohjelman täytäntöönpanosta, se aiheutti silmukka lopettaa ennenaikaisesti, yhtäkkiä, i sattui olemaan suurempi kuin arvo NUM, eli että silmukka ei enää tarvita suoritettavaksi. Lisäksi se sattui olemaan tapauksessa, että muutimme arvo I kun linja 17 korostettiin, joka oli ajankohtana että silmukan suorittamisen tosiasiallisesti arvioidaan. Jos olisin muuttanut arvo I eri linja, sanovat 19, olisimme nähneet eri käyttäytyminen koska linja 19 olisi on suoritettu ennen silmukka ehto arvioida uudelleen. Nyt tässä vaiheessa, olen, taas, lopussa tämän ohjelman. Ja voin antaa tämän siirtyä anna minun ohjelma lopettaa luonnollisesti. Mutta on pari asiaa jotka ovat tärkeitä ottaa pois mistä tässä keskustelussa. Sinun täytyy arvioida omat oletukset miten koodi pitää käyttäytyä. Aina luulet, että jotkut pala koodia tiedät sattuu työskennellä, jotka saattavat olla punainen lippu mennä takaisin ja arvioida, ja varmista että oletus miten tämä koodi toimii on todella totta, miten se on ilmaistuna lähdekoodia. Mutta vielä pisteeseen oli, kun käytämme debuggeri, voit laittaa raja-arvot osoitteessa eri riviä koodia, joka aiheuttaa virheenkorjaus tauko toteuttamista kussakin näistä linjat jotta voit arvioida muistiin tai jopa muuttaa sitä paikallaan. Ja vielä, muista, että voit luoda useita raja-arvot niin, että te voi myös jatkaa toteuttamista, ohita laajoilla koodin osia, ja se tulee automaattisesti tauko seuraavassa taitekohta. On todella kehittyneempiä piirteitä debuggeri, samoin. Mutta meidän täytyy viittaan jossain myöhemmin videoita jotta todella kiusata erilleen miten käyttää kyseisiä toimintoja. Nyt, kiitos Paljon katsomassa. Ja onnea virheenkorjaus.