[? DAN ARMADARAS:?] Hi, Jien [? Dan Armadaras?]. Illum, aħna qed tmur biex tkun tħares lejn debugging. Mhux biss ser nieħdu jitkellmu dwar xi teknika, imma wkoll aħna qed tmur biex tħares lejn wħud mill-karatteristiċi li jinsabu fi ħdan il-IDE CS50 li jippermettu inti faċilment debug programm. Biss eżempju wieħed ta ' xi ħaġa li tista 'tmur ħażin u huwa attwalment xi ħaġa li konna diġà rajna qabel. F'dan il-każ, dan huwa programm C li taċċetta integer mill-utent, jaqsam it tnejn, u jipprovdi l-output lura lill-utent. Issa minn dak Rajna aktar kmieni fil lectures, nafu li dan fil-fatt se jikkawżaw tipi speċifiċi ta 'problemi diviżjoni meta jkollna numri bil-fard. Speċifikament, aħna ser biss armih xejn wara l-punt deċimali. Issa, aħna nafu li dan jiġri li jkun il-każ. U jekk aħna run, nistgħu nikkonfermaw suspetti tagħna, minn naħa, billi kompilazzjoni. U mbagħad, billi jorganizza u jidħlu numru fard. Dan huwa xejn ġdid. Iżda dan huwa attwalment Eżempju ta 'bug li jista 'jeżisti fi ħdan programm akbar li ssir aktar diffiċli biex jillokalizzaw. Anki jekk aħna nafu x'inhi l-kwistjoni jiġifieri, il-qofol tal-kwistjoni vera jista 'jkun jippruvaw jidentifikaw speċifikament fejn l-iżball iseħħ, jidentifika dak li problema huwa, u mbagħad iffissar. Allura jipprovdu dan bħala eżempju ta 'dak li jista' jkun xi ħaġa li aħna diġà jafu iżda jistgħu jiġu midfuna fi ħdan elementi oħra tal-kodiċi. Allura ftuħ dan is-sors ieħor fajl kodiċi bħala eżempju, din il-problema diviżjoni issa huwa parti minn programm ikbar. Still jista 'jkun ftit bit artifiċjali, u aħna jista 'jkun kapaċi li faċilment identifikata, speċjalment peress li aħna qed biss jiddiskutu din. Iżda nistgħu insemmu li din problema tista 'teżisti fuq skala akbar. Jekk I jiġbor dan u issa run, jidħol numru fard, nistgħu naraw li aħna ma jsibux preċiżament l-output li aħna jista 'jkollhom mistenni. F'dan il-każ partikolari, nistgħu ngħidu li aħna tixtieq li jgħoddu kollha tan-numri minn wieħed sa ċertu numru speċifiku. U nistgħu naraw li aħna għandhom varjetà ta 'kwistjonijiet hawn jekk aħna qed outputting, sempliċiment, 0 u 1 meta aħna jipprovdu input ta '5. Allura aħna diġà jafu li hemm problema hawn. Iżda aħna ma jkunu jafu bi preċiżjoni fejn din il-kwistjoni fil-fatt teżisti. Issa wieħed mill-modi li nistgħu nippruvaw biex jiffissaw dan hija xi ħaġa li konna diġà ġew introdotti biex. Nistgħu tagħmel użu minnha biss fuq skala akbar. Fuq il-linja 14, għandna din il-funzjoni printf, li jippermetti li jistampa l-istat ta 'diversi biċċiet ta' informazzjoni. U din hija xi ħaġa li inti għandhom lieva fil-programm tiegħek biex tipprova insemmu eżattament x'hemm jiġri fil-linji differenti ta 'kodiċi. Għalhekk anki jekk dan ma jkunx il- output finali li għandna attwalment tixtieq li jipproduċu barra mill dan il-programm, aħna xorta jista 'jkollha xi debug dikjarazzjonijiet fejn aħna tista 'tipprova ċifra barra preċiżament dak li qed jiġri ġewwa tal-kodiċi tagħna. Allura f'dan il-każ, I se printf mal-tag debug. F'dan il-każ, dan huwa biss string debug li jien up-tqegħid sabiex issir ċar ħafna fil-produzzjoni tal-kodiċi tiegħi liema huwa li nixtieq li juru. U l-produzzjoni hawn in-numru li għandna komputat. F'dan il-każ, I jista trid tkun taf preċiżament dak li qed jiġri qabel u wara xi komputazzjoni speċifiku. So I tista 'tuża printf qabel u wara dik il-linja tal-kodiċi. F'dan il-każ, I jistgħu anki jagħmilha ftit aktar ċara billi qal debug qabel u debug wara hekk li jien ma jikkonfondi myself ma ' linji multipli li tfittex identiċi. Issa jekk aħna recompile dan u run dan, niżżel numru bħall ħamsa mill-ġdid, nistgħu naraw li għandna issa output qabel u wara u ssib li aħna ma jsir ċar diviżjoni jew ċara li n-numru li aħna fil-fatt tixtieq li tagħmel. Issa f'dan il-każ, dan huwa mhux verament output ċara. Mhuwiex verament riżultat ċar li irridu minn dan il-programm partikolari. U dan huwa, għal darb'oħra, a ftit artifiċjali. Iżda, forsi, waħda mill-affarijiet li stajna nagħmlu jekk l-ispeċifikazzjoni qal li aħna rridu li jaqsmu dan billi 2 u żid 1-- hekk fi kliem ieħor, irridu li jarrotondaw up-- imbagħad nistgħu nafu li nistgħu tagħmel dan ħaġa partikolari, f'dan il-każ. Issa hawnhekk nafu li se nkunu kapaċi li jżidu 1 sa numru bin-nofs tagħna. Ejja recompile dan u tikkonferma li din qiegħedx iġib ruħu l-mod li aħna jixtiequ. Nistgħu naraw li issa qabel li, aħna għandna l-numru 5. Wara li, aħna għandna l-numru 3, li skond l-ispeċifikazzjoni tagħna, huwa dak li aħna riedu jagħmlu. Iżda jekk inħarsu lejn il- output hawn, nistgħu tara li aħna jista 'jkollhom ieħor bug kollox, li huwa li aħna qed jibdew għadd tagħna minn 0. Issa darb'oħra, din hija xi ħaġa li rajna fil-passat u nistgħu tiffissa pjuttost faċilment. Iżda f'dan il-każ, aħna kellhom ukoll il-benefiċċju tintuża l-istqarrija printf direttament ġewwa tal-linja għall li jkunu jafu preċiżament fejn dan l-iżball kien sseħħ. Dikjarazzjonijiet hekk printf huma utli ħafna biex tgħin inti jiddeterminaw fejn, preċiżament fil-kodiċi sors tiegħek, żball speċifiku qed isseħħ. U huwa wkoll importanti li tirrealizza li, kif aħna qed miktub kodiċi, aħna jista 'jkollhom suppożizzjonijiet dwar l-istat ta 'programm. Jew aħna jista 'jkollhom suppożizzjonijiet dwar liema parti tal-programm huwa attwalment eżatta jew żbaljata meta aktar tard kif aħna nibnu fuq dak il-programm u jagħmilha parti minn kumpless u l-programm akbar li niftakru li xi aspett ta 'li huwa attwalment Buggy. Bl-użu printf jista 'verament tgħin iċekknu u tidentifika ir-reġjuni ta 'programm li ma jistax jiġu iġib ruħu eżattament il-mod li aħna jistennew, ibbażat fuq suppożizzjonijiet tagħna. Iżda hemm għodod oħrajn disponibbli, kif ukoll, li jippermettu magħna biex tipprova figura fejn isir żball li jseħħu u wkoll, speċifikament, liema affarijiet qed jiġri ġewwa tal-programm. Hekk billi tuża printf huwa ferm meta meħtieġa rridu li jiġu identifikati oqsma ta ' programm li għandhom xi bug. Iżda huwa wkoll isir tedious wara ftit żmien. F'dan il-każ, dan huwa programm relattivament sempliċi ma waħda biss jew tnejn varjabbli. U li jsir faċli ħafna għalina li jistampa l-valur ta 'dawk varjabbli fil-kuntest tal-programm akbar. Iżda aħna jista 'jkollhom differenti programm li għandu ħafna fatturi varjabbli. U jista 'ma jkunx pjuttost daqshekk faċli biex jintużaw printf li tipprova tevalwa dak li qed jiġri lil kull waħda minn dawk il-varjabbli bħala l-programm huwa ta 'eżekuzzjoni. Hemm programm li teżisti imsejħa programm debugger. F'dan il-każ, il-wieħed li aħna se użu huwa l-debugger GNU, jew GDB, li jippermetti li jispezzjonaw l-intern ħidma ta 'programm fi ħafna aktar mod dettaljat. Nistgħu ngħidu tesegwixxi GDB mill-linja tal-kmand hawn billi sempliċiment ittajpjar GDB u l kmand li aħna rridu li debug. F'dan il-każ, l-għadd. Issa f'dan il-każ, nistgħu naraw li dan iwassalna għall pront li tgħid GDB. U nistgħu attwalment tesegwixxi jikkmanda biex GDB li attwalment tibda l-eżekuzzjoni tal- programm, jitwaqqaf f'ċerti punti, tevalwa l-fatturi varjabbli u jispezzjonaw l-varjabbli li jeżistu fl-istat programm f'dak il-mument partikolari, u hekk u ibqa 'sejjer hekk. Hija tipprovdi ħafna ta 'enerġija lilna. Iżda huwa biss hekk jiġri li l-IDE CS50 wkoll jipprovdi GUI jew utent interface għal GDB li jippermetti li jagħmlu dan mingħajr il-bżonn l-interface kmand tal-linja tkun xi tkun jew għal kollox saħansitra. Il-mod li nista 'aċċess li huwa billi tuża l-buttuna debug fuq nett tal-IDE CS50. Issa fil-passat, dak li għandna tidher hija li nużaw il-kmand linja li tiġbor u mbagħad tmexxi programm. Il-buttuna debug ma kemm ta 'dawk il-passi. Iżda huwa wkoll se jġib l- tab debugger fuq-lemin li jippermetti li jispezzjonaw varjetà tal-proprjetajiet tal-programm kif huwa esekuzzjoni. Jekk I ikklikkja debug, f'dan każ, se jtella ġdid tab fil-console tieqa fil-qiegħ nett. U tista 'tara li dan tab għandu xi informazzjoni fuq nett. U nistgħu aktar jinjora dan. Iżda waħda mill-affarijiet li aħna rridu li avviż huwa li outputs l-istess ħaġa li aħna se tikseb jekk aħna ppruvaw biex imexxu jagħmlu fuq il-programm C fit-tieqa terminal. Hawnhekk, nistgħu naraw huwa taħdem clang, u għandha varjetà ta 'bnadar, u huwa kumpilazzjoni fajl count.c tagħna, li kien il-tab magħżul fiż-żmien li I hit debug. Allura dan huwa utli ħafna għaliex issa jużaw din il-buttuna debug, nistgħu simultanjament tiġbor u mbagħad tesegwixxi l-programm li għandna attwalment tixtieq li tmexxi. Waħda mill-bnadar li huwa importanti, f'dan il-każ, konna attwalment qed tuża għall-itwal żmien iżda wkoll biss ma xi naħa waving [inaudible], li huwa dan wieħed dritt hawn. Fil clang, jgħid -ggdb3. F'dan il-każ, dak li aħna javżak clang, kompilatur tagħna, hija li aħna rridu li jikkompilaw programm tagħna. Imma wkoll jipprovdu x'inhuma imsejħa informazzjoni simbolu sabiex il-kumpilatur attwalment għandha aċċess għal ħafna mill-informazzjoni bażika jinsabu fi ħdan il-programm. B'mod aktar speċifiku, l-għadd ta 'funzjonijiet li għandi, l-ismijiet ta 'dawk il-funzjonijiet, varjabbli, it-tipi li dawk il-varjabbli huma, u l-varjetà ta 'affarijiet oħra li jgħinu l-debugger iwettaq operazzjoni tagħha. Issa hemm xi ħaġa oħra li l-importanti li wieħed isemmi meta aħna qed jiddiskutu running programm b'dan il-mod. Avviż li hija għandha fil-fatt aġġornati ġdid tab fil tagħna console tul il-qiegħ. Aħna m'għadx għandhom jinteraġixxu direttament mal-tieqa terminal. Iżda dan tab ġdid huwa attwalment tieqa terminal. Huwa biss hija speċifika għat-tmexxija programm li ħloqna. Avviż li fil-qiegħ, fl flimkien ma 'xi produzzjoni mill clang l kumpilatur u GDB, li nistgħu aktar jinjora, fil-fatt turi l-output ta ' programm tagħna fil-qiegħ nett. Issa huwa importanti li tirrealizza li dan il-tieqa wieħed fil-fatt juruk l- produzzjoni mill-programm tiegħek iżda wkoll tista 'taċċetta input għal dak il-programm, kif ukoll. Allura avviż li jgħid jekk jogħġbok niżżel numru, li hija l-istess produzzjoni li kellna kellhom fit-tieqa terminal qabel. Imma huwa issa muri f'dan tab ġdid. I tista 'input numru. U fil-fatt se funzjoni kif aħna nistennew juru us debug tagħna, output, l-output li jista 'jkun Buggy, kif konna rajna qabel. U fil-qiegħ nett, hija fil-fatt għandha xi output addizzjonali mill-PGD biss qal li dan il-programm ikun temm. Issa kif inti raw f'dan partikolari run permezz, ma kienx partikolarment utli minħabba li, anki għalkemm kellna l-menu debugger jiġu up, dan kien għadu programm korrenti. Fl-ebda punt ma kien fil-fatt nieqaf eżekuzzjoni għalina biex ikunu jistgħu jispezzjonaw kollha il-varjabbli li jinsabu ġewwa. Hemm xi ħaġa oħra li għandna nagħmlu sabiex biex jiksbu GDB li jirrikonoxxu li aħna rridu biex nieqaf eżekuzzjoni tal-programm u mhux biss tippermetti li tipproċedi normalment kif aħna kieku fi kwalunkwe każ ieħor. Sabiex nieqaf eżekuzzjoni, f'xi linja speċifika, għandna bżonn li jinħoloq x'hemm imsejħa punt tal-qasma. U punt waqfa huwa faċilment maħluqa f'dan CS50 IDE billi jieħdu maws u tikklikkja direttament lejn ix-xellug ta 'xi numru linja speċifika. Ladarba I tagħmel dan, tikka ħamra jidher, li jindika li dan l issa huwa punt waqfa. U l-ħin li jmiss li I run GDB, huwa se tieqaf eżekuzzjoni f'dak break-punt meta jilħaq dik il-linja tal-kodiċi. Issa dan huwa importanti ħaġa li tirrealizza li mhuwiex neċessarjament l- każ li kull linja tal-kodiċi huwa attwalment aċċessibbli. I Jekk kellhom joħolqu funzjoni up here, għal f-- null example-- u biss tagħmel linja print here-- bonjour world-- jekk I qatt sejħa din il-funzjoni, se jkun il-każ li, jekk I tistabbilixxi punt tal-qasma hawn, il-funzjoni qatt mhu se tkun imsejħa. U għalhekk, dan partikolari punt tal-qasma qatt se attwalment nieqaf eżekuzzjoni tal-programm. Mela ejja ngħidu li jien korrett joħolqu punt waqfa fuq xi linja tal-kodiċi li fil-fatt ser jiġi eżegwit. Issa f'dan il-każ, dan huwa l- ewwel linja fil-funzjoni prinċipali. Għalhekk żgur li se jkun il-każ li, hekk kif nibda eżekuzzjoni, l-ewwel linja se jintlaħaq. GDB se nieqaf eżekuzzjoni. U mbagħad, I se jkunu jistgħu jinteraġixxu ma 'l-debugger. Tista 'tissettja linji multipli kif breakpoints, jekk inti tixtieq. Nistgħu wkoll tinħoloq linja up hawn f'dan is-segment tal-kodiċi li qatt mhu se jintlaħaq. U nistgħu wkoll sett wieħed aktar 'l isfel. Ir-raġuni li aħna se tixtieq li tagħmel dan aħna ser jmorru fi ftit aktar dettall fil ftit mument. Allura għal issa, let me biss jiskonnettja dawn il-punti waqfa addizzjonali sabiex inkunu nistgħu nħarsu lejn dak li jiġri meta I jkollhom waħda break wieħed punt fil-programm tiegħi. I għamlu xi bidliet għal dan il-programm. So I bżonn biex isalvawh. I se ikklikkja debug sabiex I tista tibda l-kumpilazzjoni u mbagħad eżekuzzjoni tal-debugger. Aħna se tara li, wara mumenti, l- linja li aħna magħżula bħala l-break punt huwa enfasizzat bl-isfar. Nistgħu wkoll avviż li fil- dritt ta 'fuq fil-panel debug li l-ikona pause daret fi icon play ftit. Dan ifisser li għandna nieqaf eżekuzzjoni, f'dan il-każ partikolari. U laqtu l-buttuna Play ikun inessu biex jerġa 'jibda l-eżekuzzjoni f'dak il-punt speċifiku. Avviż li hemm koppja ta 'oħrajn buttuni disponibbli f'dan panel debug, kif ukoll. Pass fuq, li tippermetti lili biex tesegwixxi dik il-linja waħda tal-kodiċi u pass fuq dik il-linja mal- wieħed li jmiss, li, f'dan il-każ, ikun ifisser li l-printf dikjarazzjoni hija esegwita. U mbagħad se nieqaf eżekuzzjoni fuq il-linja 13, bħal hekk. U hemm ukoll pass fil-funzjoni, li huwa utli jekk I ħolqu oħra funzjonijiet bnadi oħra fil-kodiċi tas-sors. U nixtieq li pass lejn dawk il-funzjonijiet aktar milli tesegwixxi dik il-funzjoni kollha kemm hi. Iżda aħna ser tħares aktar fil-pass fil-funzjoni fi ftit mument. Issa Avviż xi affarijiet oħra li attwalment jeżistu fi ħdan dan il-panel debug. Għandna din panel imsejjaħ il- sejħa munzell, li jurina fejn eżattament aħna. F'dan il-każ, aħna ġewwa tal-funzjoni prinċipali. Iskrittura tagħna hija msejħa count.c. U aħna jiġri li jkun fuq linja 13, kolonna waħda, li huwa preċiżament dak ir-reġjun enfasizzati tas-source code jindika, ukoll. Issa avviż li dan juri wkoll taħt it-taqsima varjabbli lokali il-varjabbli kollha li jeżistu fi ħdan din il-funzjoni. Huwa importanti li wieħed jinnota li kollha tal-varjabbli se jidhru f'dan varjabbli lokali taqsima fi ħdan funzjoni, anki qabel ma huma definiti. Nistgħu naraw hawnhekk li għandna varjabbli imsejħa num, ikollu valur default ta '0, u huwa ta 'int tip. Issa qabel we attwalment initialize kollha ta 'dawn il-varjabbli, aħna mhux qed neċessarjament garantit biex tara valur ta '0. U jiddependi fuq l-eżekuzzjonijiet oħra li inti għandek mwettqa u l-istat ta 'memorja tiegħek meta inti fil-fatt tmexxi dan il-programm, inti tista 'ssib li inti ma tara valuri ta '0 u, minflok, xi numri crazy oħra. Imma ma joqogħdu jinkwetaw dwar dan. Huwa mhux se tkun rilevanti sakemm inti fil-fatt initialize-valur. Issa f'dan il-każ, nistgħu naraw li I wettqu xi riżultati. U jien, id-dritt issa, waqfa qasira eżekuzzjoni. Iżda f'dan il-każ, liema I really jixtiequ jagħmlu huwa li issa pass fuq din il-linja ta 'kodiċi sabiex I tista' attwalment query l-utent għal dak int li irridu li jużaw fil-programm tagħna. Issa f'dan il-każ, meta I hit pass fuq, avviż li l Pause jew pjuttost il Resume buttuna inbidlet għal din il-buttuna Pause għaliex din il-kodiċi huwa attwalment esekuzzjoni. X'inhu jiġri dritt issa hija li huwa stennija għalina biex input xi informazzjoni kif nistgħu naraw mill-test output tagħna fil-qiegħ nett. Allura issa dritt, dan huwa mhux attwalment waqfa qasira, anki jekk, tip ta ', jidher li jkun minħabba li xejn qed jiġri. Iżda huwa biss hekk jiġri li fil każ speċifiku tiegħi fuq il-linja 13, Jien stennija għall-input utent. U għalhekk GDB ma tkunx tista 'tispezzjona programm kif tkun qed taħdem. Issa l-ħin li jmiss li I jidħlu xi input-- so I ser jidħol dak in-numru 5, kif aħna stajt tidher fil- past-- hit Ritorn, u aħna Avviż li, immedjatament, pauses GDB u, għal darb'oħra, jenfasizza l-linja li jmiss. Imma avviż li issa, bħala riżultat ta inputjar tagħna valur, Aħna aġġornati dak il-valur ġewwa ta 'varjabbli lokali tagħna, li huwa utli ħafna li jkunu jafu preċiżament dak li numru kien fil-memorja. Now I jistgħu jippermettu dan il-programm li jkompli playing sal-aħħar tal-eżekuzzjoni tagħha billi jolqot Resume. Nistgħu naraw li malajr ħafna ma l-finitura programm eżekuzzjoni bl-istess output li aħna kellhom qabel, il-debugger jagħlaq, u issa dan il-programm jkun waqaf kompletament. I juru li biss għall- finijiet ta 'jaraw dak jiġri meta aħna attwalment hit Resume. Iżda aħna fil-fatt se tixtieq li tmur lura fis dan il-programm sabiex inkunu nistgħu nippruvaw debug preċiżament dak li qed jiġri. Issa li jien jużaw l-debugger, I jistgħu m'għandekx bżonn dawn id-dikjarazzjonijiet printf debug. So I tista 'tneħħi lilhom kif se nagħmel issa biss li jmorru lura għall-kodiċi sempliċi tagħna li kellna mument ilu. Issa meta I isalva l- programm u esegwit, se, għal darb'oħra, tmur f'dak inizjali break punt li kelli fuq il-linja 11. U jien ser tkun kapaċi li jispezzjonaw varjabbli tiegħi bħala I trid tagħmel. Huwa biss hekk jiġri li din parti mhux interessanti ħafna, U naf li jien ser biex jistampa din l-istqarrija. Jekk jogħġbok daħħal numru. U mbagħad, naf li jien ser li titlob lill-utent għal dak integer. Hekk forsi, I attwalment jridux jimxu tiegħi break punt ftit aktar 'l isfel. Inti tista 'tneħħi punti waqfa billi tikklikkja, għal darb'oħra, direttament lejn ix-xellug ta 'dik l-għadd linja. Li tikka ħamra se jisparixxu, li jindika li dan break-punt issa hija marret. Issa f'dan il-każ, eżekuzzjoni tkun ġiet waqfa qasira. U dan mhuwiex fil-fatt se jerġa f'dak il-każ partikolari. Imma I tista 'tistabbilixxi waqfa punt a ftit aktar tard. U meta I issa jerġa tiegħi kodiċi, se tkompli u tgħid il-punt ta 'dan break-punt. Għal darb'oħra, I hit Resume. Ma tidhirx bħal xejn qed jiġri. Iżda dan għaliex tiegħi kodiċi qed jistenna għall-input. I se jidħol numru 5, hit Ikteb, u issa l-punt tal-qasma li jmiss se jintlaqtu. Issa f'dan il-każ, din huwa l-linja tal-kodiċi li, qabel, aħna kien jaf li jkun ġara Buggy. Mela ejja jevalwa dak li jiġri f'dan il-punt parikolari. Meta linja hija enfasizzata, dan linja għadha ma ġietx eżegwita. Allura f'dan il-każ, nistgħu naraw li għandi numru, li Għandi integer imsejħa num li għandu valur 5. U jien ser tkun qed tagħmel xi matematika fuq dak in-numru. Jekk I pass fuq li, nistgħu avviż li l-valur għall-num nbidlet skond il- aritmetika li konna attwalment isir. U issa li aħna ġewwa ta 'dan għal loop jew issa li l-linja ta nnifisha hija enfasizzata, naraw li għandna ġdida varjabbli imsejjaħ i li se jintuża f'dik għal loop. Issa ftakar qabel li jien semma li kultant int ser tara xi tip ta 'crazy numri bħala default qabel dak in-numru jew dak il-varjabbli hija fil-fatt initialized. Nistgħu naraw li preċiżament hawn f'dan il-varjabbli imsejħa i, li ma jkunx ġewx initialized fiż-żmien li jenfasizzaw. Iżda nistgħu naraw li għandha xi numru li aħna ma attwalment jistennew. Li OK. Tinkwetax dwar dan għaliex aħna ma attwalment initialized dak in-numru sal I pass fuq il-linja u l-valur i kien initialized għall-valur 1. Allura biex tara li dan huwa attwalment il-każ, ejja pass fuq. Aħna issa tista 'tara li dan linja tkun ġiet eżegwita. U aħna issa qegħdin jenfasizzaw din il-linja printf. U aħna issa tista 'tara kif il-valuri tagħna ta 'i u 3 inbidlu maż-żmien. Dan huwa utli ħafna li tagħmel, fil-fatt, huwa pass fuq linji ripetutament. U inti tista 'ssib dak attwalment jiġri ġewwa tal għat loop tiegħek u dak li jiġri għall- varjabbli ġewwa ta 'li għal loop bħal dik eżekuzzjoni tal-programm iseħħ pass wieħed fi żmien. Issa f'dan il-punt, I intensifikati fuq biss biżżejjed li I issa am fl-aħħar tal-programm tiegħi. Jekk I pass fuq li, se fil-fatt jieqfu eżekuzzjoni kif rajna fil-passat. Let me terġa 'tibda dan, għal darb'oħra, hekk li nista 'jiġi xi ħaġa oħra barra, kif ukoll. F'dan il-każ, huwa issa tistaqsi lili, għal darb'oħra, għal numru, li I se, għal darb'oħra, jidħlu. Iżda dan iż-żmien, jien ser jidħlu fis numru akbar sabiex il-linja ta se jtenni darbiet aktar. F'dan il-każ, jien ser li jidħlu valur ta '11. Issa mill-ġdid minħabba I d sett punt waqfa fil-linja 15, li għaddej biex jenfasizzaw dik il-linja. Nistgħu naraw li tagħna Numru 11 huwa korrett rappreżentati fil-varjabbli lokali tagħna. Titjib fuq dan, nistgħu issa watch x'jiġri valur tagħna ta 'i kif aħna tipproċedi ġewwa ta 'dan għall loop. Jiġrilha inkrementat kull darba we tilħaq il-quċċata ta 'li għal loop. Issa waħda mill-affarijiet li jistgħu jkun utli li jagħmlu waqt l-eżekuzzjoni ta 'dan il-programm huwa għalija li fil-fatt jibdlu l-midstream varjabbli biex tara dak li jiġri għall-programm tiegħi. F'dan il-każ, nista attwalment ikklikkja darbtejn il-valur. Avviż li din issir qasam tat-test. Issa nista 'jidħol differenti valur għal kollox biex tara kif program tiegħi iġib ruħu meta stajt inbidlet dak il-varjabbli. Issa f'dan il-każ, il-varjabbli i issa fih il-valur 10. Iżda l-programm għadu waqfa qasira fl-eżekuzzjoni. Meta I pass fuq, nara li l- i valur, li I daħal bħala 10, ma tkunx ikbar mill-valur tal num, li immedjatament tikkawża l għall loop biex tieqaf esekuzzjoni. Issa li mhux l-uniku raġuni għaliex inti tixtieq li timmodifika l-varjabbli fil-post. Inti tista 'attwalment jridu biex jippruvaw jimmodifikaw hekk inti tista 'tkompli eżekuzzjoni ta 'loop jew sabiex inti tista 'timmodifika xi valur quddiemu jilħaq xi sett speċifiku ta 'aritmetika li inti ser iwettqu. Allura issa li għandna attwalment ibiddlu l- valur ta 'i bħala l-programm kien ta' eżekuzzjoni, ikkawżat l għal loop biex nieqaf qabel iż-żmien minħabba, kollha f'daqqa, i ġara li jkun ikbar mill-valur tal num, li jfisser li li għal loop m'għadhomx meħtieġa li għandhom jitwettqu. Barra minn hekk, dan ġara li jkun il- każ li aħna biddel il-valur ta 'i meta l-linja 17 ġiet enfasizzata, li kien il-punt fiż-żmien li l-eżekuzzjoni loop kien fil-fatt qed jiġu evalwati. Jekk I kienu nbidlu l-valur tal i fuq linja differenti, jiġifieri 19, aħna raw differenti imġieba minħabba line 19 kieku eżegwiti qabel il-linja kundizzjoni ġiet reevaluated. Issa f'dan il-punt, jien, għal darb'oħra, fl-aħħar ta dan il-programm. U nista 'jippermettu li dan jipproċedi għal jippermettu programm tiegħi biex nieqaf naturali. Iżda hemm ftit affarijiet li huma importanti għal take away minn din id-diskussjoni partikolari. Ikollok bżonn biex tevalwa assunzjonijiet tiegħek dwar kif il-kodiċi għandu jkun iġib ruħu. Kwalunkwe ħin li inti taħseb li xi biċċa tal-kodiċi inti taf jiġri għax-xogħol, li jista 'jkun bandiera ħamra li jmorru lura u tevalwa, u kun żgur din il-preżunzjoni tiegħek ta kif dan il-kodiċi qed topera huwa fil-fatt veru li kif huwa espressi fil-kodiċi sors tiegħek. Iżda anke aktar il-punt kien, meta aħna qed jużaw l-debugger, inti tista 'tpoġġi breakpoints fuq linji differenti ta 'kodiċi, li se tikkawża l debugger li nieqaf eżekuzzjoni f'kull wieħed minn dawk linji sabiex inti tista 'tevalwa l- memorja jew saħansitra l-bidla fil-post. U għal darb'oħra, ftakar li inti tista ' joħolqu breakpoints multipli sabiex inti tista 'wkoll jerġa eżekuzzjoni, aqbeż fuq porzjonijiet kbar ta 'kodiċi, u dan ser nieqaf awtomatikament fil-punt tal-qasma li jmiss. Hemm fil-fatt aktar avvanzati karatteristiċi tal-debugger, kif ukoll. Iżda aħna ser ikollhom biex jirreferik li xi videos sussegwenti sabiex verament tease apparti kif tuża dawk il-funzjonijiet partikolari. Għal issa, nirringrazzjak ħafna għall-ħars. U debugging Xorti tajba.