[? 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.