[? DAN ARMADARAS:?] Hi, Jaz sem [? Dan Armadaras?].
Danes bomo treba videti v razhroščevanje.
Ne samo, da se bomo govorimo o nekaterih tehnikah,
ampak gremo pogledati nekatere funkcije vseboval
v CS50 IDE, ki omogočajo vam omogoča enostavno debug program.
>> Samo en primer nekaj, kar bi lahko šlo narobe
in da je dejansko nekaj da smo že videli.
V tem primeru gre za C program da sprejme celo število od uporabnika,
ga deli z dve in zagotavlja izhod nazaj uporabniku.
Sedaj od tistega, kar smo videli prej na predavanjih,
vemo, da se bo to dejansko povzroči posebne vrste težav delitve
ko imamo lihe številke.
>> Natančneje, bomo samo mečejo kaj decimalno vejico.
Zdaj vemo, da je to se zgodi, da je tako.
In če jo zaženete, lahko rečemo, naše sume, prvi, po zbiranju.
In potem, s tekom in vnosom liho število.
>> To ni nič novega.
Ampak to je pravzaprav Primer hrošča, ki
lahko obstaja znotraj večje programa da postane težje izslediti.
Čeprav vemo, kaj je vprašanje je, pravi Bistvo zadeve
morda poskušali identificirati še posebej, kjer se napaka pojavi,
ugotavljanju, kaj je problem je, in ga nato pritrjevanje.
Torej, zagotoviti to kot primer o tem, kaj bi lahko kaj
da smo že vedeli, a se lahko pokopan v drugih elementih kode.
>> Torej odpiranje ta drugi vir Koda datoteko kot primer,
ta delitev problem je zdaj del večjega programa.
Še vedno lahko malo bit izmišljene, in smo
Morda bi lahko zlahka identificirati, še posebej,
Ker smo pravkar razpravljali o tem.
Vendar pa lahko ugotovimo, da je ta problem lahko obstaja v večjem obsegu.
>> Če prevedem to in zdaj teči je, da vnesete liho število,
lahko vidimo, da ne bomo dobili natančno izhod, ki smo ga lahko pričakuje.
V tem konkretnem primeru, lahko bi rekli, da smo
želite prešteti vse številke od enega do neke določeno številko.
In vidimo, da smo imajo različne vprašanj
tukaj, če smo prikazovanje, enostavno, 0 in 1 ko nudimo vhod 5.
>> Tako že vemo, da tam je problem tukaj.
Ampak mi ne vedo natančno kjer to vprašanje dejansko obstaja.
Zdaj eden od načinov, da bomo poskušali popraviti to
je nekaj, kar smo jih že predstavil.
Mi lahko samo uporabljati v večjem obsegu.
>> Na liniji 14, imamo ta funkcija printf,
ki nam omogoča, da natisnete stanju različnih informacijami.
In to je nekaj, kar vas bi moral finančni vzvod v vašem programu
da bi poskušali ugotoviti, kaj je dogaja v različnih vrstic kode.
Torej, čeprav to ni Končni rezultat, ki smo dejansko
želijo proizvajati iz ta program, še vedno
morda nekaj razhroščevanje Izjave Kje smo
Lahko poskusite ugotoviti natančno, kaj se dogaja v notranjosti našega kodeksa.
>> Torej, v tem primeru bom printf z debug oznako.
V tem primeru gre Samo debug niz
da sem gor-dajanje, tako da postane v proizvodnji moje kode zelo jasno
kaj je to, da hočem pokazati.
In izhodna tukaj številka da smo izračunali.
>> V tem primeru, bom morda želijo natančno vedeti
kaj se dogaja pred in Po nekaj posebnega računanja.
Torej lahko uporabljam printf pred in po tem vrstico kode.
V tem primeru, lahko sem celo da bo malo bolj jasno
z besedami razhroščevanje pred in razhroščevanje po tako
da ne bom sam zamenjati z več linij, ki so videti enaki.
>> Zdaj, če bomo prevedite to in tek je ponovno vnesite številko kot pet,
lahko vidimo, da imamo Sedaj izhod pred in po
in ugotovili, da smo naredili jasno delitve ali jasno ob števila
da dejansko želimo storiti.
Sedaj v tem primeru pa je to ni res jasen izhod.
To ni res jasen rezultat, ki želimo iz tega posebnega programa.
>> To pa je spet, A malo izmišljene.
Ampak, morda, je ena od stvari, ki kar lahko storimo, če specifikacija dejal
da želimo deliti to z 2 in dodajte 1-- tako z drugimi besedami,
želimo zaokrožiti up-- nato bomo morda vedeli, da smo lahko
storiti, da se posebno stvar, v tem primeru.
Zdaj tukaj vemo, da bomo lahko dodali 1 do našega prepolovil število.
>> Naj prevedem to in potrdite, da je to
se obnaša tako, kot smo želeli.
Vidimo lahko, da je zdaj pred ob imamo številko 5.
Po tem, ko smo imeli številko 3, ki po naši specifikaciji,
je tisto, kar smo želeli storiti.
Ampak, če pogledamo izhodna tukaj, smo lahko
videti, da bi imeli drugo bug skupaj, kar je
da smo z začetkom našega štetja od 0.
>> Zdaj pa še enkrat, to je nekaj, da smo bili priča v preteklosti
in ne moremo popraviti dokaj hitro.
Toda v tem primeru smo imeli tudi koristi
uporabe izjavo printf neposredno notranjost za zanke
natančno vedeti, kje da je bila napaka, ki se pojavljajo.
Torej printf izjave so zelo koristne pri
lahko ugotovite, kje, Ravno v vaši izvorni kodi,
specifična napaka se pojavlja.
>> In to je tudi pomembno, da se zavedaš, da, kot smo pisno kodo,
bomo morda imeli predpostavke o stanju programa.
Ali lahko imamo predpostavke kaj del programa
je dejansko pravilna ali napačna, ko kasneje kot smo gradili na tem programu
in da bo del Kompleksna in večji programa
da se zavedamo, da nekateri vidik od tega je dejansko buggy.
>> Uporaba printf lahko resnično pomaga zožilo in identifikacijo
regije program, ki ne sme je treba natančno obnaša tako, da smo
pričakujejo, ki temelji na naših predpostavkah.
Ampak tam je druga orodja voljo, kot tudi,
ki nam omogočajo, da bi poskušali sliki tam, kjer do napake, ki se pojavljajo
In tudi, natančneje, kakšne stvari se dogaja v notranjosti programa.
>> Torej, z uporabo printf je zelo koristno, če želimo
opredeliti posebna področja program, ki imajo neko napako.
Ampak tudi postane dolgočasno čez nekaj časa.
V tem primeru gre za relativno preprost program
s samo enim ali dvema spremenljivkama.
In to postane zelo enostavno za nas izpisal vrednost teh spremenljivk
V okviru širšega programa.
>> Vendar pa lahko imamo drugačen Program, ki ima veliko spremenljivk.
In morda ne bo povsem tako preprost za uporabo printf
da bi poskušali oceniti, kaj se dogaja za vsakega izmed teh spremenljivk
kot program je izvršiteljica.
Obstaja program, ki obstaja imenuje program razhroščevalnik.
V tem primeru je tisti, ki bomo Uporaba je GNU razhroščevalnik, ali GDB,
ki nam omogoča, da pregledujejo notranji Delovanje programa v veliko bolj
Podroben način.
>> Mi lahko dejansko izvršiti GDB v ukazni vrstici
Tukaj ga preprosto tipkanje GDB in ukaz, da želimo, da debug.
V tem primeru se šteje.
Zdaj, v tem primeru, lahko vidimo, da je nas pripelje na poziv, ki pravi GDB.
In bomo lahko dejansko izvajanje ukazov za GDB
dejansko začne usmrtitve Program, nehaj na določenih mestih,
ovrednotiti spremenljivk in pregledati spremenljivke, ki
obstajajo v državi programa v tistem trenutku,
in tako naprej in tako naprej.
To zagotavlja veliko moči za nas.
>> Ampak to samo zato, da se zgodi da CS50 IDE tudi
omogoča GUI ali uporabnika vmesnik za GDB da
nam omogoča, da to storijo brez potrebe v ukazni vrstici vmesnik whatsoever
ali sploh še.
Tako, da sem lahko dostopate da je s pomočjo gumba debug
na samem vrhu CS50 IDE.
Zdaj v preteklosti, kar imamo videti je, da bomo uporabili ukaz
linije za sestavljanje in nato zaženite program.
>> Gumb za iskanje napak ne oba od teh korakov.
Ampak bo tudi bruhati Zavihek razhroščevalnik na skrajni desni
ki nam omogoča, da pregledajo različne lastnosti programa
saj je izvršiteljica.
Če kliknem razhroščevanje, v tem Primer bo bruhati
nov zavihek v konzoli Okno na samem dnu.
>> In lahko vidite, da je ta zavihek nekatere informacije na samem vrhu.
In smo lahko v veliki meri prezreti to.
Toda ena od stvari da želimo obvestilo
je, da oddaja ista stvar, ki smo
bi dobili, če smo želeli teči, da na Program C v terminalskem oknu.
>> Tu lahko vidimo, da je tekmovanje v teku Jek, in ima različne zastave,
in je zbiranje našo count.c datoteko, ki je bil izbran zavihek v času
da sem udaril razhroščevanje.
Torej, to je zelo koristno, saj zdaj uporablja ta gumb debug,
bomo lahko hkrati zbere in nato izvesti program, ki smo dejansko
želite zagnati.
>> Eden od zastave, ki je pomembno, v tem primeru,
smo dejansko uporabo za najdaljši čas
ampak samo naredil nekaj z roko mahal [neslišno], ki
je to ena tukaj.
V Jek, pravi -ggdb3.
V tem primeru, kar smo povedal Jek, naš prevajalnik,
je, da želimo, da pripravijo svoj program.
Ampak tudi, kaj so imenuje informacije simbol
tako da dejansko ima prevajalnik dostop da veliko osnovnega informacij
vsebovane v programu.
>> Natančneje, število funkcij, ki jih imam,
imena teh funkcij, spremenljivke, vrste
da so te spremenljivke, in sorta drugih stvari, ki pomagajo razhroščevalnik
opravlja svojo dejavnost.
Zdaj pa še nekaj drugega da je pomembno omeniti
ko smo razpravljali tek program na ta način.
>> Opazimo, da je dejansko odraščali nov zavihek v našem konzole
na dnu.
Nimamo več za interakcijo neposredno s terminalskem oknu.
Toda ta nov zavihek je pravzaprav okno terminal.
Samo je specifična za delovanje Program, ki smo jih ustvarili.
>> Opazimo, da pri dnu, v Kombinacija z nekaj izhodom
s Jek prevajalnik in GDB, ki smo ga lahko v veliki meri prezreti,
dejansko prikazuje izhod naš program na samem dnu.
Zdaj je pomembno, da se zavedaš, da to eno okno dejansko
vam bo pokazal Izhod iz programa
ampak tudi lahko sprejemajo prispevke za ta program, kot dobro.
>> Tako obvestilo, ki pravi, Prosimo vpišite številko,
ki je enaka izhodni da smo imeli je imel v oknu terminala poprej.
Ampak to je zdaj prikazano v tem novem zavihku.
Jaz lahko vnesete številko.
In da bo dejansko funkcija, kot smo pričakovali
nam kaže našo razhroščevanje, proizvodnja, izhod, da bi bilo buggy,
kot smo videli prej.
In na samem dnu, ga dejansko ima nekaj dodatnega izhoda
od BDP, samo pravim, da je Ta program je končan.
>> Zdaj, kot ste videli, v tem zlasti teči skozi,
ni bilo posebej koristno, saj tudi
čeprav smo imeli priti meni razhroščevalnik navzgor, je to še vedno program teče.
Na nobenem mestu to storil dejansko premor izvedbe za nas
da se lahko pregledajo vse spremenljivke vsebovane znotraj.
Še nekaj da moramo storiti, da bi
priti GDB priznati, da želimo da prekinete izvajanje programa
in ne le omogoča, da nadaljuje praviloma kot bi mi v vseh drugih primerih.
>> Da bi premor izvršitve, na neki določeni progi,
moramo ustvariti tisto, kar je imenuje prelomna točka.
In je prelomna točka zelo enostavno ustvaril V tem CS50 IDE ob miško
in kliknete neposredno na levi nekega določenega števila linije.
Ko sem to naredil, rdeča pika Zdi se, kar kaže na
da je ta linija sedaj prelomna točka.
>> In naslednjič, ko sem teči GDB ga, bo ustavilo usmrtitev na tej točko lomljenja
ko doseže to vrstico kode.
Zdaj je to pomembno stvar, da se zavedaš,
da to ni nujno velja, da je vsaka vrstica kode
je dejansko dostopna.
Če bi bil jaz ustvariti funkcijo tu gor, za example-- void F-
in samo narediti tiskanja linijo here-- zdravo world-- če nisem poklical to funkcijo,
da bo v primeru, da je če sem nastavil točko lomljenja tukaj,
funkcija ne bo nikoli poklical.
In zato ta zlasti prelomna točka
v resnici nikoli ne bo premor izvajanje programa.
>> Torej, recimo, da sem se pravilno ustvarjanje prelom točka na neki vrstico kode
da bo dejansko izveden.
Sedaj je v tem primeru je to Prva vrstica v glavno funkcijo.
Torej bo to zagotovo zgodilo da, takoj ko začnem izvršitve,
zelo prva linija bo dosežen.
GDB bo premor izvršitve.
In potem bom lahko interakcijo z razhroščevalnik.
>> Nastavite lahko več vrstic kot Mejni vrednosti, če bi želeli.
Mi lahko ustvarite tudi linijo gor Tukaj v tem segmentu kode
da ne bodo nikoli dosegli.
In bomo lahko tudi v nadaljevanju določiti enega.
Razlog, da smo bi želite to bomo storili
iti v malo več detajl v samo trenutek.
Torej za zdaj, povej mi samo onemogočiti ti dodatni odmor točk
tako da bomo lahko pogledali, kaj se dogaja ko imam en sam odmor
točka v mojem programu.
Naredil sem nekaj spremembe tega programa.
Torej rabim, da ga shranite.
Bom kliknite razhroščevanje, tako da sem lahko začnete s sestavljanjem in potem
izvedba razhroščevalnik.
>> Videli bomo, da se po nekaj trenutkih, v črta, ki smo izbrali kot počitek
točka je označena z rumeno barvo.
Prav tako lahko opazimo, da je v zgornji desni v debug plošči
da je ikona za pavzo obrnil v malo ikono za predvajanje.
To pomeni, da imamo premor izvedba, v tem konkretnem primeru.
In hitting gumb Predvajaj bi Dovolite nam, da nadaljuje izvajanje
na tej določeni točki.
>> Opazite, da je nekaj drugega Gumbi so na voljo v tem debug plošči,
kot dobro.
Korak več, ki mi omogoča, da izvršiti to eno vrstico kode
in korak več, da te črte na Naslednji on, ki je v tem primeru,
bi pomenilo, da je printf Izjava se izvaja.
In bo potem pavza izvršba na liniji 13, kot tako.
>> In tam je tudi korak v funkciji, ki je
je koristno, če sem ustvaril drugo Funkcije drugje v izvorno kodo.
In želim, da stopite v te funkcije namesto
izvršiti to funkcijo kot celote.
Vendar bomo videti bolj v koraku v funkcijo v samo trenutek.
Zdaj opazili nekaj drugih stvari, ki jih dejansko obstajajo v tem debug plošči.
>> Imamo to plošča imenuje klic stack, ki nam pokaže,
kje smo točno.
V tem primeru smo v notranjosti glavne funkcije.
Naš scenarij se imenuje count.c.
In se zgodi, da se na vrstica 13, stolpec ena, ki
Ravno to pa je izpostavil regija izvorne kode nakazuje, kot dobro.
>> Zdaj opazili, da tudi to kaže pod lokalnim spremenljivim prečnim
vse spremenljivke, ki obstajajo v tej funkciji.
Pomembno je omeniti, da so vse spremenljivke
se bo pojavil v tej lokalni spremenljivki poglavje v funkciji
še preden so opredeljena.
Mi lahko vidite tukaj, da imamo spremenljivko imenuje num, ima privzeto vrednost 0,
in je tipa int.
>> Zdaj pa, preden smo dejansko inicializacijo vseh teh spremenljivk,
nismo nujno zagotovljeno, da vidim vrednost 0.
In odvisno od drugih usmrtitvah ki ste jih opravili
in stanje vašega pomnilnika, ko ste dejansko zagnati ta program,
boste morda ugotovili, da vas ne vidim vrednosti 0
in namesto tega nekatere druge nore številke.
>> Ampak ne skrbi.
To se ne dogaja, da so pomembni, dokler ste dejansko inicializirati vrednost.
Zdaj, v tem primeru, lahko vidimo, da Imam izvedli nekaj izhodov.
In jaz, prav zdaj, zaustavljenih izvršitve.
Toda v tem primeru, kar Res želite storiti
je zdaj korak v tej vrstici kode, tako da sem lahko dejansko
poizvedbo uporabnika za to notr, da želimo uporabiti v našem programu.
>> Sedaj je v tem primeru, ko Zadel sem stopiti čez, obvestila
da Pause oziroma Nadaljuj Gumb se je spremenilo na ta gumb Pause
ker ta oznaka se dejansko izvršuje.
Kaj se dogaja Trenutno je, da je
čaka na nas, da vnesete nekaj informacij Kot lahko vidimo, ki jih naše izhodne besedilom
na dnu.
>> Torej zdaj, to je dejansko ni zaustavljena,
čeprav to, nekako se zdi, da je, ker se nič ne dogaja.
Vendar je prav tako se zgodi, da se v moj posebni primer na liniji 13,
Čakam vnos uporabnika.
In tako GDB ne more pregledati program, saj je tekmovanje v teku.
>> Zdaj, ko naslednjič vnesem nekaj input-- zato bom vnesite to številko 5,
kot smo videli v past-- sprašuje nazaj, in smo
obvestilo, da mora takoj, GDB premore in ponovno opozarja na naslednjo vrstico.
Ampak obvestilo, da je zdaj, kot Rezultat naše vnosom vrednosti,
Posodobili smo to vrednost v notranjosti naših lokalnih spremenljivk, ki
je zelo uporaben za natančno vedeti kaj ta številka je bila v pomnilniku.
>> Zdaj lahko omogoči ta program, da nadaljuje igranje do konca njegovo izvedbo
s pritiskom Nadaljuj.
Vidimo lahko, da je zelo hitro počne program konča izvršitve
z isto izhodno da smo je imel prej, razhroščevalnik zapre,
in sedaj ta program se je popolnoma ustavil.
>> I kažejo, da le za Nameni videli, kaj
se zgodi, ko smo dejansko hit Nadaljuj.
Vendar smo dejansko se dogaja, da želijo iti nazaj v ta program
tako da bomo lahko poskusite debug natančno, kaj se dogaja.
Zdaj, ko sem z razhroščevalnik, smem te izjave debug printf ne potrebujete.
>> Torej sem jih lahko odstranite tako bom naredil zdaj samo, da se vrnete na našo enostavnejši kodo
da smo imeli pred nekaj trenutki.
Zdaj, ko sem shranite program in ga izvršiti,
to bo, še enkrat, pojdite na to začetnica prekinil točko, ki sem ga imel na liniji 11.
In bom lahko vpogleda moje spremenljivke, kot si želim.
>> Samo tako se zgodi, da to del ni zelo zanimivo,
In vem, da bom natisniti to izjavo.
Prosimo vpišite številko.
In potem, vem, da bom vprašati uporabnika za to število.
Torej, morda sem dejansko želijo, da se premaknete my prekinil točko malo niže.
>> Lahko odstranite premorov točke s klikom, še enkrat, neposredno
na levi strani te številke linije.
Da rdeča pika bo izginila, kar pomeni, da je ta prelomna točka sedaj šla.
Sedaj je v tem primeru, izvedba je bila začasno ustavljena.
In tako da je dejansko ne bo nadaljeval v tem konkretnem primeru.
Ampak jaz lahko nastavite odmor točka a malo kasneje.
>> In ko sem zdaj spet moj koda, se bo nadaljevala in povej
točka te prekinitve točke.
Spet sem udaril Nadaljuj.
Ne zdi kaj se dogaja.
Ampak to je, ker je moj koda čaka na vhodu.
Bom vpišite številko 5, zadeti nastopiti, in Zdaj bo naslednja prelomna točka hit.
>> Sedaj je v tem primeru pa je to je vrstica kode
da je, preden smo vedeli, se je zgodilo, da je buggy.
Torej, kaj je oceniti, kaj se zgodi v tem določenem trenutku.
Ko je poudarjena linija, to linija še ni bila izvedena.
Torej, v tem primeru lahko vidimo, da imam številko, ki
Imam celo imenovano num, ki ima vrednost 5.
In bom se opravlja nekaj matematike na to številko.
>> Če stopim več, da bomo lahko opazili, da je bila vrednost za num
se je spremenila v skladu z aritmetična da smo dejansko storili.
In sedaj, ko smo Notranjost tega za zanke
ali je sedaj, da se za zanko sam je poudaril,
vidimo, da imamo novo spremenljivka Poklicala sem, da
se bo treba uporabiti, da se za zanko.
>> Zdaj pa ne pozabite pred tem I je omenil, da se včasih ste
videli nekakšen nor številke kot privzeto pred to številko
ali da spremenljivka dejansko inicializiran.
Mi lahko natančno videli, da tukaj v tej spremenljivki
Poklical sem, ki nima ni bil inicializiran
ob poudari.
Vendar lahko vidimo, da ima nekaj več da mi ne bi bilo pravzaprav pričakovati.
>> To je ok.
Ne skrbite saj imamo dejansko ne
inicializiran to število do I korak čez to linijo in vrednostjo
i je inicializiran na vrednost 1.
Tako da vidim, da je to dejansko v primeru, kaj je korak več.
Sedaj lahko vidite, da je ta Vrstica je bila izvedena.
In zdaj poudarjanje to printf črta.
>> In zdaj lahko vidite, kako naše vrednote za i in 3 so se sčasoma spremenili.
To je zelo koristno, da ne, dejansko je, da stopite preko linije večkrat.
In jih lahko najdete, kaj dejansko se dogaja v notranjosti vašega za zanke
in kaj se zgodi na spremenljivke v notranjosti, da je za zanke
kot to izvedbo programa pojavi en korak naenkrat.
>> Sedaj na tej točki, sem stopil čez ravno dovolj
da sem zdaj jaz na koncu mojega programa.
Če stopim več, da se bo to dejansko preneha izvajanje
kot smo videli v preteklosti.
Naj ponovno zaženete to, še enkrat, tako da da sem lahko kažejo nekaj drugega ven,
kot dobro.
>> V tem primeru je zdaj me sprašuješ, še enkrat,
za številne, ki Bom spet začne.
Ampak tokrat, bom za vstop v večje število, tako da je za zanko
bo Ponovil večkrat.
V tem primeru, jaz grem vnesti vrednost 11.
>> Zdaj pa še enkrat, ker bi jaz nastavljen prelom točka na liniji 15,
to se dogaja, da označite to vrstico.
Vidimo, da je naša Številka 11 je pravilno
zastopani v naših lokalnih spremenljivk.
Stepping preko tega, da smo zdaj lahko opazujte, kaj se dogaja z našo vrednosti i
kot smo nadaljevali znotraj tega za zanke.
To gets poveča vsakič, ko smo dosežejo vrh, ki za zanke.
>> Zdaj pa ena od stvari, ki bi lahko koristno narediti med izvajanjem
tega programa je za mene, da dejansko spremenite spremenljivk midstream videti
kaj se zgodi z mojim programom.
V tem primeru sem lahko dejansko dvokliknite vrednost.
Obvestilo, da postane polje za besedilo.
>> Zdaj lahko vnesete drugačno vrednost skupaj
da vidim, kako moj program obnaša ko sem spremenil to spremenljivko.
Sedaj je v tem primeru, je spremenljivka i zdaj vsebuje vrednost 10.
Toda program še zamrznili izvršbe.
Ko stopim več, vidim, da je vrednost i, ki sem vstopil kot 10,
ni večja od vrednosti num, ki takoj povzroči, da se za zanko
za ustavitev izvršitve.
>> Zdaj to ni edini Razlog, zakaj bi jih
želeli spremeniti spremenljivko prosto.
Morda boste dejansko želijo poskusiti, da ga spremeni tako,
da lahko še naprej Izvršitev zanke
ali pa tako, da lahko spremenite nekatere vrednosti pred njo
doseže neko poseben sklop aritmetike da ste o tem opravljati.
>> Torej sedaj, da smo dejansko spremeniti Vrednost i, kot je program bil izvršitve,
je povzročila, da je za zanke, da zaprete prezgodaj, saj kar naenkrat, i
zgodilo, da se večja od vrednosti NUM, kar pomeni, da je ta za zanko
ni več potrebno, da se izvrši.
Nadalje se je zgodilo, da je Primer, ki smo spremenili vrednost I
ko je bila poudarjena linija 17, kar je trenutek
da je za izvedbo zanke je dejansko ocenili.
>> Če bi spremenili vrednost i na drugo linijo, recimo 19,
smo bi videli drugačen vedenje, ker linija 19 bi
se izvrši pred zanko pogoj je bil prevrednotujejo.
Sedaj na tej točki, da sem, še enkrat, Na koncu tega programa.
In ne morem dopustiti, da nadaljuje dovolite moj program za naravno zaprete.
Toda obstaja nekaj stvari, ki so pomembni za odvoz
od tem razprave.
Morate oceniti lastne predpostavke
o tem, kako koda je treba obnašati.
Vsak čas menite, da so nekateri kos o koda veste, se zgodi na delo,
da je lahko rdeča zastava iti nazaj in oceniti, in se prepričajte,
da vaši predpostavki kako da koda deluje
je dejansko res, kako je izraženo v izvorni kodi.
>> Ampak še bolj na mestu je, ko smo z razhroščevalnik,
lahko postavite prelomnih točk na različnih vrstic kode,
ki bo povzročila razhroščevalnik do premor usmrtitev na vsaki od teh vrstic
tako da lahko oceni spomin ali celo spremeniti v mestu.
In še enkrat, ne pozabite, da lahko ustvariti več prelomnih točk, tako da boste
Lahko tudi nadaljevanje izvedbe, preskočite na velikih delov kode,
in ga bomo samodejno pavzo na naslednji točko lomljenja.
>> Tam je dejansko bolj napredni lastnosti razhroščevalnik, kot tudi.
Bom, ampak bomo morali sklicevati nekaterih poznejših videoposnetkov
da bi res draži narazen, kako za uporabo te posebne funkcije.
Za zdaj, hvala zelo veliko za gledanje.
In srečno razhroščevanje.