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