[? DAN ARMADARAS:?] Sveiki, Aš [? Danas Armadaras?]. Šiandien mes ketiname žiūri į derinti. Ne tik mes ketiname kalbėti apie kai kurių metodų, bet mes ketiname pažvelgti į keletas iš funkcijų, esančius per CS50 IDE, kad būtų galima jums lengvai derinti programą. Tik vienas pavyzdys kažkas, kad gali suklysti ir tai tikrai kažkas kad mes jau matėme anksčiau. Šiuo atveju, tai yra, C programa , kuri priima sveikasis skaičius nuo naudotojo, ją dalina iš dviejų, ir suteikia išėjimo atgal į vartotojo. Dabar iš to, ką mes matėme anksčiau paskaitose, mes žinome, kad tai iš tikrųjų gali sukelti konkrečių rūšių skaidymo problemas kai mes turime nelyginis skaičius. Tiksliau, mes tiesiog išmesti nieko po kablelio. Dabar mes žinome, kad tai atsitinka būti tas atvejis. Ir jei mes paleisti jį, mes galime patvirtinti, mūsų įtarimai, pirma, sudarant. Ir tada, bėgiojimą ir patekti nelyginis skaičius. Tai nieko naujo. Bet tai iš tiesų yra pavyzdys klaidą, kad gali egzistuoti didesnės programos kad tampa sunkiau susekti. Nors mes žinome, ką klausimas yra tikroji esmė klausimo gali būti bando nustatyti specialiai kur įvyksta klaida, nustatyti, kas šią problemą yra, ir tada nustatant jį. Taigi pateikti tai kaip pavyzdys kas gali būti kažkas kad mes jau žinome, tačiau gali būti palaidotas per kitų elementų kodą. Taigi atidarymo šį kito šaltinio kodas failą kaip, pavyzdžiui, Šis padalinys problema dabar dalis didesnės programą. Vis dar gali būti šiek tiek tiek nenatūralu, ir mes galėtų lengvai identifikuoti, ypač nes mes tik aptarti tai. Tačiau mes galime išsiaiškinti, kad ši problema gali egzistuoti platesniu mastu. Jei aš surinkti tai ir dabar paleisti jį, įveskite nelyginis skaičius, matome, kad mes negalime gauti tiksliai išvesties, kad mes galime tikėtis. Šiuo konkrečiu atveju, mes galime pasakyti, kad mes nori skaičiuoti visus numerius, iš vienos iki tam tikru numeriu. Ir matome, kad mes turi įvairiais klausimais čia jei mes išvedė, tiesiog, 0 ir 1, kai mes teikiame 5 įvestį. Taigi, mes jau žinome, kad yra problema čia. Bet mes negali tiksliai žinoti kur šis klausimas iš tikrųjų egzistuoja. Dabar vienas iš būdų, kad mes galime pabandyti išspręsti šią problemą yra kažkas, kad mes jau buvo pristatytas. Mes galime tik jį naudoti platesniu mastu. On line 14, mes turime Ši funkcija printf, kuri leidžia mums spausdinti valstybės įvairių informacijos fragmentų. Ir tai yra kažkas, kad jūs turėtų išnaudoti per jūsų programa pabandyti išsiaiškinti, ką tai vyksta įvairių eilučių kodo. Taigi, net jei taip nėra, galutinės produkcijos, kad mes iš tikrųjų nori gaminti iš Ši programa, mes vis dar gali turėti tam tikrą debug pareiškimai, kur mes galite pabandyti išsiaiškinti, ką tiksliai vyksta viduje mūsų kodą. Taigi, šiuo atveju, aš printf su debug žyma. Šiuo atveju, tai yra tik derinti eilutė kad aš iki-išleidimą, kad ji taptų labai aišku, mano kodas produkcijos kas tai yra, kad aš noriu parodyti. Ir išėjimo čia numeris kad mes skaičiuojamas. Šiuo atveju, galiu nori tiksliai žinoti tai, kas vyksta prieš ir po tam tikro konkretaus apskaičiavimo. Taigi galiu naudoti printf prieš o po to kodo eilutę. Šiuo atveju, aš netgi kad ji šiek tiek aiškesnė sakydamas debug prieš ir derinti po tiek kad aš nepainiokite save su keletą eilučių, kurie atrodo identiški. Dabar, jei mes sukompiliuoti ir paleisti tai jis vėl įvesti numerį kaip penki, matome, kad turime dabar išėjimo prieš ir po ir mano, kad mes ne padaryti aiškus kvadratas arba aišku, turintis skaičiaus kad mes iš tikrųjų nori daryti. Dabar, šiuo atveju, tai yra tikrai ne aišku produkcija. Tai tikrai nėra aišku, rezultatas, kad mes norime iš šio tikros programos. Ir tai yra, vėl, šiek tiek nenatūralu. Bet, ko gero, vienas iš dalykų, kad galėtume daryti, jei specifikacija sakė kad mes norime padalinti tai padaryti 2 ir pridėti 1-- taip, kitaip tariant, norime suburti up-- tada mes galime žinoti, kad mes galime padaryti, kad ypatingą dalyką, šiuo atveju. Dabar čia mes žinome, kad bus galėtų pridėti 1 prie mūsų perpus skaičius. Leiskite perkompiliuoti tai ir kad šis elgiasi taip, kad mes norime. Mes matome, kad dabar, kol turintys, turime skaičius 5. Po to, mes turime 3 numeriu, kuri pagal mūsų specifikacijoje, yra tai, ką mes norėjome padaryti. Bet jei pažvelgsime į produkcija čia, mes galime matyti, kad mes galime turėti kitą Re apskritai, kuris yra kad mes pradedame mūsų skaičių nuo 0. Dabar vėl, tai yra kažkas, kad matėme praeityje ir mes galime nustatyti gana lengvai. Bet šiuo atveju, mes taip pat turėjo naudos ne naudojant printf tiesiogiai viduje už linijos tiksliai žinoti, kur ši klaida buvo pasikartojimui. Taigi printf pareiškimai labai naudinga padėti jums nustatyti, kurioje, būtent savo kodą, konkreti klaida pasikartojimui. Ir tai taip pat svarbu suvokti, kad, kaip mes rašyti kodą, mes galime turėti prielaidas apie programos būseną. Arba mes galime turėti prielaidas apie tai, kas programos dalis iš tiesų yra teisingas, ar neteisingas, kai vėliau kaip mes statome ant tos programos ir padaryti jį įgyvendinti, nepaisant sudėtinga ir didesnis programa kad mes suprantame, kad kai kurie aspektas apie tai iš tikrųjų Buggy. Naudojant printf tikrai gali padėti susiaurinti ir nustatyti dėl programos regionai, negali būti elgiasi būtent taip, kad mes tikėtis, remiantis mūsų prielaidomis. Bet yra kitas priemones, prieinamas, taip pat, kad leidžia mums bando išsiaiškinti ten, kur klaida vyksta Taip pat, konkrečiai, ką vyksta viduje šią programą. Taigi, naudojant printf yra labai naudinga, kai mes norime nustatyti konkrečius sritis programa, kuri turi tam tikrą klaidą. Bet jis taip pat tampa nuobodų po kurio laiko. Šiuo atveju, tai yra gana paprasta programa tik su vienu ar dviem kintamaisiais. Ir tai tampa labai lengva mums spausdinti šių kintamųjų vertės atsižvelgiant į didesnę programą kontekste. Bet mes galime turėti skirtingas programa, kuri turi daug kintamųjų. Ir tai gali būti ne visai labai paprasta naudoti printf pabandyti įvertinti tai, kas vyksta į kiekvienos iš šių kintamųjų Kadangi programa yra vykdomas. Yra programa, kuri egzistuoja vadinamas debugeris programa. Šiuo atveju, vienas, kad mes naudojimas yra GNU debugeris arba GDB, kuri leidžia mums patikrinti vidaus darbu programą, daug daugiau Detali būdas. Mes iš tikrųjų gali atlikti GDB iš komandinės eilutės čia tiesiog rašyti GDB ir komandą, kad mes norime derinti. Šiuo atveju, skaičius. Dabar, šiuo atveju, galime matyti, kad ji duoda mums į eilutę, kad sako GDB. Ir mes galime iš tikrųjų vykdyti komandas į GDB kad iš tikrųjų pradėti vykdymo programa, sustabdyti jį tam tikrais klausimais, įvertinti kintamuosius ir tikrinti kintamųjų, kurie egzistuoja programos valstybės tuo konkrečiu momentu, ir taip toliau ir taip toliau. Ji suteikia daug energijos mums. Bet tai tiesiog taip atsitinka, kad CS50 IDE pat numato GUI arba vartotojo sąsaja GDB, kad leidžia mums tai padaryti, nereikalaujant komandinės eilutės sąsaja kokia arba ne visi net. Taip, kad galiu pasiekti, kad yra naudojant derinimo mygtuką pačiame viršuje CS50 IDE. Dabar praeityje, ką turime matyti tai, kad mes naudojame komandą linija kaupti ir tada paleisti programą. Derinimo mygtuką daro abiejų šių etapų. Tačiau ji taip pat atneš up debugeris skirtukas dešinėje kuri leidžia mums patikrinti veislę savybių programos kaip ji yra vykdomas. Jei aš spustelėkite debug, šiuo atveju, jis atneš iki naujas skirtukas konsolės langas pačioje apačioje. Ir jūs galite pamatyti, kad tai skirtukas kai pačiame viršuje informacija. Ir mes galime daugiausia ignoruoti tai. Tačiau vienas iš dalykų, kad norime pastebėti, tai, kad ji išveda tas pats dalykas, kad mes būtų gauti, jei mes bandėme paleisti pateikti dėl C programa terminalo langą. Čia mes matome tai veikia klingsėti, ir ji turi vėliavų įvairovę, ir ji yra kompiliavimo mūsų count.c failą, kuris buvo pasirinktas kortelėje tuo metu, kad aš hit derinti. Taigi tai yra labai naudinga, nes dabar naudojant šią derinimo mygtuką, mes galime vienu metu kaupia ir tada vykdyti programą, kad mes iš tikrųjų norite paleisti. Vienas iš vėliavėlių, kad yra Svarbu, šiuo atveju, mes iš tikrųjų buvo naudojant už ilgiausią laiką bet tiesiog padarė tam tikrą ranką garbanojimo [nesigirdi], kuris tai vienas čia. Be klingsėti, ji sako -ggdb3. Šiuo atveju, kas mes esame sakau klingsėti, mūsų kompiliatorių, yra tai, kad mes norime sudaryti savo programą. Bet taip pat pateikti kas yra vadinamas simbolis informacija taip, kad kompiliatorius tikrųjų turi prieigą iki pagrindinės daug informacijos pateikta pagal programą. Konkrečiau, numeris funkcijų, kad aš, šių funkcijų pavadinimai, kintamieji, tipai kad šie kintamieji yra, ir įvairovė kitų dalykų, kurie padeda debugger atlikti savo darbą. Dabar yra kažkas tai svarbu paminėti kai mes aptarti veikia yra vienas iš šiuo būdu programa. Atkreipkite dėmesį, kad tai yra iš tikrųjų išvedė naują skirtuką mūsų konsolės išilgai dugno. Mes nebeturime bendrauti tiesiogiai su terminalo langą. Bet šis naujas skirtukas faktiškai terminalo langą. Jis tiesiog yra būdingi veikia programa, kad mes sukūrėme. Atkreipkite dėmesį, kad apačioje, ir kartu su kai produkcija iki klingsėti kompiliatorius ir GDB, kurioje mes daugiausia gali ignoruoti, ji iš tikrųjų rodo, produkcijos Mūsų programa pačioje apačioje. Dabar svarbu suvokti, kad tai vienas langas iš tikrųjų bus parodyti jums išėjimas iš savo programos bet taip pat gali priimti įvestį tos programos, taip pat. Taigi pranešimas, kad sako Prašome įvesti numerį, kuris yra tas pats, kad mes turėjo išėjimo turėjo terminalo lange prieš. Bet tai dabar parodyta šiame naujame skirtuke. Galiu įvesties numerį. Ir tai tikrai bus funkcija, kaip mes tikimės, rodydamas mums mūsų debug, produkcija, produkcijos, kuri gali būti Buggy, kaip matėme anksčiau. Ir pačioje apačioje, tai iš tikrųjų turi tam tikrą papildomą išvestį nuo BVP tiesiog pasakyti, kad Ši programa yra baigtas. Dabar, kaip jūs matėte tai pirma eina per, ji buvo ne itin naudinga, nes net nors mes turėjome Debugger meniu ateiti aukštyn, tai vis dar buvo vykdomos programos. Jokiame taške tai padarė iš tikrųjų sustabdyti vykdymą mus kad būtų galima patikrinti visus kintamieji esančius viduje. Yra kažkas kad mes turime daryti, kad gauti GDB pripažinti, kad mes norime pristabdyti programos vykdymo ir ne tik, kad ji galėtų toliau paprastai, kaip mes to bet kuriuo kitu atveju. Siekiant sustabdyti vykdymą, tam tikru konkrečiu linija, turime sukurti tai, kas vadinama pertrauka taškas. Ir pertrauka taškas labai lengvai sukurta šiame CS50 IDE atsižvelgiant pelę ir paspaudus tiesiogiai į kairę kai kurių specifinių linijų skaičius. Kai aš padaryti, kad raudonas taškas Pasirodo, kuris rodo, kad linija yra dabar pertrauka taškas. Ir kitą kartą, kad aš paleisti GDB, ją nustos vykdymą tuo lūžio taško kai jis pasiekia, kad kodo eilutę. Dabar tai yra svarbus dalykas suvokti kad tai nebūtinai atvejis, kad kiekvieną kodo eilutę yra tikrai prieinamos. Jei aš būčiau sukurti funkciją iki čia, nes example-- void f-- ir tiesiog padaryti spausdinimo liniją here-- Sveiki world-- jei aš niekada skambinti šią funkciją, ji bus tas atvejis, kad, jei aš nustatyti pertrauka čia funkcija niekada nebus vadinamas. Ir todėl, šis pirma pertrauka taškas niekada iš tikrųjų sustabdyti programos vykdymą. Taigi tarkime, kad aš teisingai sukurti pertrauka taškas nors kodo eilutę kad iš tikrųjų bus įvykdytas. Dabar, šiuo atveju, tai yra Pirmoji linija pagrindinė funkcija. Taigi tikrai bus tuo atveju, kad kaip tik aš pradėti vykdymą, pačioje pirmoje eilutėje bus pasiektas. GDB bus pristabdyti vykdymą. Ir tada, aš galės bendrauti su išriktuotojo. Galite nustatyti keletą eilučių, kaip ribinės koncentracijos, jei norėtumėte. Mes taip pat galime sukurti liniją iki čia, šio kodo segmento kad niekada nebus pasiektas. Ir taip pat gali nustatyti vieną toliau. Priežasties, kad mes būtume nori tai mes padarysime eiti į šiek tiek daugiau Detalė vos akimirką. Taigi dabar, leiskite man tiesiog išjungti šie papildomi atkovoti kad galėtume pažvelgti, kas atsitinka, kai turiu vieną pertrauką taškas į mano programą. Aš padariau kai pokyčiai šiai programai. Taigi man reikia ją išsaugoti. Aš spustelėkite debug, kad galėčiau pradėti rengimo ir tada vykdymas išriktuotojo. Pamatysime, kad po akimirkų linija, kuri buvo pasirinkta kaip pertraukos taškas yra paryškinamas geltonai. Taip pat galima pastebėti, kad į Viršutinė tiesiai į debug skydelyje kad pertraukos piktograma tapo į mažai žaidimo piktogramą. Tai reiškia, kad mes turime pauzę vykdymas, šiuo konkrečiu atveju. Ir pataikyti mygtuką "Leisti" būtų leidžia mums tęsti vykdymą tuo konkrečiu klausimu. Atkreipkite dėmesį, kad ten yra kita pora mygtukai laisvų šiame debug skydelio, taip pat. Žingsnis per, kuris leidžia man vykdyti šią vieną eilutę kodo ir peržengti tą liniją į Kitas vienas, kuris, šiuo atveju, reikštų, kad printf sakinys yra įvykdomas. Ir tai bus tada pristabdyti vykdymas on-line 13, kaip ir. Ir ten taip pat yra žingsnis į funkcijas, kurios, yra naudinga, jei aš sukūriau kitą funkcijos kitur kodą. Ir aš noriu žingsnis į šios funkcijos, o ne vykdyti šią funkciją, kaip visuma. Bet mes pažvelgti daugiau pakopoje į funkciją tik akimirką. Dabar pastebėti kai kurių kitų dalykų, kad iš tikrųjų egzistuoja šio derinimo pulte. Mes turime tai skydelio vadinamas skambinti kamino, kuris rodo mums kur tiksliai esame. Šiuo atveju, mes yra viduje Pagrindinio funkcija. Mūsų scenarijus yra vadinamas count.c. Ir mes atsitiktų būti 13 linija, vienas stulpelis, kuris Būtent tai pabrėžė regionas iš kodo rodo, taip pat. Dabar pastebėti, kad šis taip pat rodo, pagal vietinio kintamojo skyriuje visų kintamųjų, kad egzistuoja tokia funkcija. Svarbu pažymėti, kad visi kintamieji pasirodys šio kintamojo vietos skyriuje per funkciją, dar prieš jos yra apibrėžtos. Mes matome, kad čia turime kintamąjį vadinamas num, turi numatytąją reikšmę 0, ir jis yra tipas int. Dabar, kol mes iš tikrųjų inicijuoti visų šių kintamųjų, mes nebūtinai garantuoja, kad pamatyti vertė yra 0. Ir priklausomai nuo kitų egzekucijų kad turite atlikti ir jūsų atmintyje, kai valstybiniai jūs iš tikrųjų paleisti šią programą, jums gali rasti, kad jums nematau vertybes 0 ir, vietoj to, keletas kitų beprotiškas numeriai. Bet nesijaudinkite apie tai. Jis nesiruošia būti aktuali, kol jūs iš tikrųjų inicijuoti vertę. Dabar šiuo atveju, mes galime pamatyti, kad Aš įvykdžiau keletą išėjimus. Ir aš, dabar, sustabdytas vykdymas. Bet šiuo atveju, kas Aš tikrai noriu daryti tai dabar peržengti šią liniją kodo, kad galėčiau iš tikrųjų užklausti tos int vartotoją, mes nori naudoti mūsų programą. Dabar šiuo atveju, kai I hit peržengti, pranešimus kad Pauzė ar veikiau Resume mygtuką pasikeitė šį mygtuką Pauzė nes šis kodas yra faktiškai vykdyti. Kas vyksta dabar yra tai, kad mūsų laukia įvesti tam tikrą informaciją kaip matome mūsų produkcijos tekstą pačioje apačioje. Dabar, vadinasi, tai yra faktiškai nėra sustabdytas, nors ji, tarsi atrodo, būti, nes nieko nevyksta. Bet tai tiesiog taip atsitinka, kad mano konkretus atvejis on-line 13 Aš laukiu naudotojo įvesties. Ir taip GDB negali patikrinti nes ji programa veikia. Dabar, kai kitą kartą, kad aš įvesti kai input-- todėl aš įvesti šį numerį 5, kaip mes matėme į past-- Atsiverkite, ir mes praneša, kad iš karto, GDB pauzių ir vėl pabrėžiamas kitą eilutę. Tačiau pastebite, kad dabar, kaip rezultatas mūsų įvedusi vertę, mes atnaujinome šią vertę viduje mūsų vietinių kintamųjų, kurie Labai naudinga tiksliai žinoti tai, kas, kad skaičius buvo atmintyje. Dabar galiu tai leisti programa toliau žaisti iki jo vykdymo pabaigos pataikyti CV. Mes matome, kad labai greitai Ar programa apdaila vykdant su tuo pačiu išėjimo, kad mes turėjo ir anksčiau, debugeris užsidaro, o dabar ši programa nustojo visiškai. I rodo, kad tik už tikslai pamatyti, ką atsitinka, kai mes iš tikrųjų nukentėjo CV. Bet mes iš tikrųjų ketiname norite grįžti į šią programą kad galėtume bandyti derinti Būtent tai, kas vyksta. Dabar, kad aš naudoju debugger, aš gali nereikia šiuos derinimo printf atskaitomybę. Taigi galėčiau juos pašalinti, kaip aš darysiu dabar tik grįžti į mūsų paprastesniu kodas kad mes turėjome prieš momentas. Dabar, kai aš išgelbėti programuoti ir vykdyti, ji vėl eiti į tą pradinį pertraukos tašką, kad man teko on-line 11 d. Ir aš gebėti apžiūrėti Mano kintamieji, kaip aš noriu daryti. Jis tiesiog taip atsitinka, kad ši dalis nėra labai įdomus, Ir aš žinau, kad aš ruošiuosi spausdinti šį pareiškimą. Prašome įvesti numerį. Ir tada aš žinau, kad aš ruošiuosi paprašyti tos sveikojo skaičiaus vartotoją. Taigi, galbūt, aš iš tikrųjų noriu perkelti savo pertrauka taškas šiek tiek toliau. Galite pašalinti atkovoti spustelėdami, vėlgi, tiesiogiai tos linijos numeris kairę. Tai red dot "išnyks, nurodant kad pertrauka punktas dabar dingo. Dabar šiuo atveju, vykdymas buvo sustabdytas. Ir taip jis nėra iš tikrųjų ketiname atnaujinti toje konkrečiu atveju. Bet aš galiu nustatyti pertraukos šiek tiek vėliau punktą. Ir kai dabar aš vėl mano kodas, jis bus atnaujintas, ir pasakyti tos pertraukos taškas. Vėlgi, aš paspauskite Tęsti. Neatrodo kaip nieko, kas vyksta. Bet tai, nes mano kodas laukia įvesties. Aš įveskite numerį 5, paspauskite Enter, ir dabar kita pertrauka taškas bus hit. Dabar, šiuo atveju, šis yra kodo eilutę kad prieš, mes žinojome, atsitiko Buggy. Taigi leiskite įvertinti, kas atsitinka, šiuo konkrečiu metu. Kai linija pabrėžta, ši linija dar nebuvo įvykdytas. Taigi, šiuo atveju, galime matyti kad aš turiu numerį, Turiu sveikasis skaičius, vadinamas Num, kas turi vertę 5. Ir aš ruošiuosi būti atlikti kai tą skaičių matematikos. Jei aš peržengti, kad mes galime Atkreipkite dėmesį, kad už num vertę pakeitė laikantis aritmetinis, kad mes iš tikrųjų padaryta. Ir dabar, kad mes esame viduje tai už kilpos ar dabar, kad už kilpos pati pabrėžė, matome, kad turime naują kintamasis vadinamas i, kad vyksta būti naudojamas, kad kilpa. Dabar prisiminti, kad aš prieš paminėjo, kad kartais esate ketiname pamatyti šiek tiek crazy natūra numeriai kaip numatytąją prieš šio skaičiaus arba kad kintamasis yra iš tikrųjų inicializuoti. Mes matome, kad būtent čia šį kintamąjį vadinamas i, kuris neturi dar buvo inicijuoti tuo pabrėžti laiko. Tačiau matome, kad ji turi tam tikrą skaičių kad mes ne iš tikrųjų tikėtis. Tai gerai. Nesijaudinkite apie tai nes mes turime ne iš tikrųjų inicializuoti šį numerį iki I žingsnis virš šios linijos ir vertę, Aš buvo inicijuoti prie vertės 1 d. Taigi matyti, kad tai iš tikrųjų atveju, tegul peržengti. Mes dabar matome, kad ši linija buvo įvykdytas. Ir dabar mes išryškinti tai printf linija. Ir dabar mes matome, kaip mūsų vertybes I ir 3 pasikeitė laikui bėgant. Tai labai naudinga, iš tikrųjų, yra peržengti linijos pakartotinai. Ir jūs galite rasti tai, ko iš tikrųjų atsitinka viduje jūsų už kilpos ir kas atsitinka su kintamieji viduje, kad kilpa kaip tos programos vykdymą atsiranda vienas žingsnis metu. Dabar šiuo metu, aš peržengė tik pakankamai kad aš dabar esu ne iš mano programos pabaigoje. Jei aš peržengti, kad jis bus iš tikrųjų nutraukti vykdymą kaip matėme praeityje. Leiskite man iš naujo tai, dar kartą, todėl kad galiu atkreipti kažkas iš, taip pat. Šiuo atveju, ji yra dabar klausia manęs, vėlgi, už skaičių, kuris Aš vėl įvesti. Bet šį kartą, aš ruošiuosi įvesti didesnį skaičių taip, kad už kilpos bus pakartoti kelis kartus. Šiuo atveju, aš ruošiuosi įvesti reikšmė yra 11. Dabar vėl, nes aš nustatyti pertrauka taško, esančio 15 eilutėje, jis ketina pažymėkite tą eilutę. Mes matome, kad mūsų numeris 11 yra teisingai atstovaujama mūsų vietinių kintamųjų. Kovos daugiau, kad dabar mes galime žiūrėti, kas atsitinka su mūsų verte i kaip mes pereisime viduje tai už kilpa. Ji gauna didinamas kiekvieną kartą, kai mes pasiekti, kad viršuje kilpa. Dabar vienas iš dalykų, kurie gali būti naudinga padaryti vykdymo metu Šios programos yra man iš tikrųjų pakeisti kintamųjų Vidurys upės pamatyti kas atsitinka su mano programa. Šiuo atveju, galiu iš tikrųjų dukart spustelėkite vertę. Atkreipkite dėmesį, kad tai tampa teksto laukas. Dabar galiu įvesti skiriasi Vertiname viso pamatyti, kaip mano programa elgiasi kai aš pasikeitė, kad kintamasis. Dabar, šiuo atveju, kintamasis Aš dabar yra vertę 10. Bet programa yra vis dar sustabdytas vykdymo metu. Kai aš peržengti, matau, kad vertė i, kurios aš įvesta kaip 10, yra ne didesnis nei ke verte, kuris iš karto sukelia for ciklas sustabdyti vykdymą. Dabar tai ne tik priežastis, kodėl jums būtų nori pakeisti kintamąjį į vietą. Jūs iš tikrųjų norėti bandyti jį pakeisti taip, kad galite tęsti vykdymas kilpa arba tiek, kad jūs galite pakeisti kai prieš jį vertė pasiekia tam tikrą konkretų rinkinį aritmetika kad jūs ketinate atlikti. Taigi dabar, kad mes iš tikrųjų keisti I vertė, kaip programos vykdė, jis sukėlė for ciklas mesti per anksti, nes visi staiga, aš įvyko būtų didesnė, negu vertė NUM, tai reiškia, kad už kilpos nebereikia būti įvykdytas. Be to, tai atsitiko būti atvejis, kad mes pakeitėme I vertė, kai linija 17 buvo pabrėžta, kuris buvo momentas kad už kilpos vykdymo buvo faktiškai vertinamos. Jeigu aš pakeitė vertę Aš kitame linijos, tarkim 19, mes matėme skiriasi elgesys, nes eilutė 19 būtų įvykdė prieš kilpa sąlyga buvo perkainotas. Dabar šioje vietoje, aš, vėlgi, šio programos pabaigoje. Ir aš galiu tai leisti plaukti į leidžia mano programa mesti natūraliai. Bet yra pora dalykų kad yra svarbu atimti iš šios diskusijos. Jūs turite įvertinti jūsų pačių prielaidos apie tai, kaip kodas, turėtų būti elgiasi. Bet kuriuo metu jūs manote, kad kai kūrinys nuo kodas žinote atsitinka dirbti, kad gali būti raudona vėliava eiti atgal ir įvertinti, ir būti tikri, kad jūsų prielaida kaip tas kodas veikia iš tikrųjų tiesa, kaip ji yra išreiškė savo kodo. Bet dar klausimas buvo, kai mes naudojame debugerem, galite įdėti ribines vertes ne skirtingų eilučių kodo, kuris bus sukelti į debugerem sustabdyti vykdymą ne kiekvienas iš šių linijų kad galite įvertinti atmintis arba net pakeisti jį į vietą. Ir vėl, nepamirškite, kad jūs galite sukurti kelis ribines vertes taip, kad jūs Taip pat galite atnaujinti vykdymą, praleiskite per didelių porcijų kodas, ir jis bus automatiškai sustabdyti kitame lūžio tašką. Yra iš tikrųjų labiau pažengęs bruožai išriktuotojo, taip pat. Bet mes turime nukreipti jus kai vėlesnių video tam tikrai erzinti išskyrus kaip naudoti šiuos konkrečius funkcijas. Nes dabar, ačiū labai daug žiūri. Ir geros kloties derinimo.