[? DAN ARMADARAS:?] Hi, Rwy'n [? Dan Armadaras?]. Heddiw, rydyn ni'n mynd i yn edrych ar debugging. Nid yn unig yr ydym yn mynd i siarad am rai technegau, ond hefyd rydyn ni'n mynd i edrych ar rhai o'r nodweddion a geir o fewn y IDE CS50 sy'n caniatáu chi dadfygio rhaglen yn hawdd. Dim ond un enghraifft o rhywbeth y gellir mynd o'i le ac mae'n mewn gwirionedd yn rhywbeth ein bod eisoes wedi gweld o'r blaen. Yn yr achos hwn, mae hon yn rhaglen C sy'n derbyn yn gyfanrif gan y defnyddiwr, ei rannu gan ddau, ac mae'n darparu yr allbwn yn ôl at y defnyddiwr. Nawr o'r hyn yr ydym wedi ei weld yn gynharach mewn darlithoedd, rydym yn gwybod y bydd hyn mewn gwirionedd yn achosi mathau penodol o broblemau is-adran pan fydd gennym odrifau. Yn benodol, byddwn yn jyst taflu unrhyw beth ar ôl y pwynt degol. Yn awr, rydym yn gwybod bod hwn yn digwydd i fod yn wir. Ac os ydym yn ei rhedeg, gallwn gadarnhau ein amheuon, yn gyntaf, trwy lunio. Ac yna, drwy redeg a mynd i mewn odrif. Mae hyn yn ddim byd newydd. Ond mae hyn mewn gwirionedd yn enghraifft o bug sy'n Gall fodoli o fewn rhaglen ehangach sy'n dod yn fwy anodd i ddod o hyd. Hyd yn oed er ein bod yn gwybod beth yw'r mater yw, y gwir graidd y mater allai fod yn ceisio nodi yn benodol lle mae'r gwall yn digwydd, nodi'r hyn y broblem honno yw, ac yna ei datrys. Felly, ddarparu hyn fel enghraifft o'r hyn a allai fod yn rhywbeth ein bod eisoes yn gwybod, ond gellir eu claddu o fewn elfennau eraill o'r cod. Felly agor ffynhonnell arall hwn file cod fel enghraifft, problem adran hon bellach rhan o raglen ehangach. Efallai dal i fod ychydig yn bit ddyfeisgar, ac yr ydym yn Efallai fod yn gallu hawdd adnabod, yn enwedig ers i ni yn unig yn trafod hyn. Ond gallwn chyfrif i maes bod hyn Gall problem yn bodoli ar raddfa fwy. Os byddaf yn crynhoi hyn ac yn awr rhedeg, rhowch odrif, gallwn weld nad ydym yn cael yn union yr allbwn y gallwn fod wedi disgwyl. Yn yr achos arbennig hwn, efallai y byddwn yn dweud ein bod eisiau gyfrif pob un o'r rhifau o un hyd at ryw rif penodol. A gallwn weld ein bod yn yn cael amrywiaeth o faterion yma os ydym yn outputting, yn syml, 0 ac 1 pan rydym yn darparu mewnbwn o 5. Felly, yr ydym eisoes yn gwybod bod yna broblem yma. Ond efallai nad ydym yn gwybod yn union lle mae hyn yn broblem yn bodoli mewn gwirionedd. Bellach yn un o'r ffyrdd y gallwn geisio atgyweiria hon yn rhywbeth yr ydym i wedi eisoes wedi'u cyflwyno i. Allwn ei ddefnyddio ar raddfa fwy. Ar-lein 14, yr ydym wedi swyddogaeth printf yma, sy'n ein galluogi i argraffu'r wladwriaeth o wahanol ddarnau o wybodaeth. Ac mae hyn yn rhywbeth y byddwch yn Dylai trosoledd o fewn eich rhaglen i geisio chyfrif i maes yn union beth sydd yn digwydd mewn gwahanol linellau o god. Felly hyd yn oed os nad yw hyn yn y cynnyrch terfynol yr ydym mewn gwirionedd eisiau cynhyrchu allan o rhaglen hon, rydym yn dal i Efallai gael rhywfaint o debug datganiadau lle rydym Gall ceisio at chyfrif i maes yn union beth sy'n digwydd y tu o'n cod. Felly, yn yr achos hwn, byddaf yn printf gyda'r tag dadfygio. Yn yr achos hwn, mae hyn yn dim ond llinyn dadfygio fy mod i fyny-roi fel ei fod yn yn glir iawn yn y cynnyrch o fy cod beth yw fy mod yn awyddus i ddangos. Ac allbwn yma y rhif ein bod wedi gyfrifo. Yn yr achos hwn, yr wyf yn gallai eisiau gwybod yn union yr hyn sy'n digwydd cyn ac ar ôl peth cyfrifiant penodol. Felly, efallai y byddwn yn defnyddio printf cyn ac ar ôl y llinell o god. Yn yr achos hwn, gallwn hyd yn oed yn ei gwneud yn ychydig yn fwy clir drwy ddweud debug cyn a dadfygio ar ôl hynny nad wyf yn drysu fy hun gyda llinellau lluosog sy'n edrych yn union yr un fath. Nawr, os byddwn yn ail-grynhoi hyn a rhedeg iddo, rhowch nifer tebyg bump eto, gallwn weld bod gennym Erbyn hyn allbwn cyn ac ar ôl a dod o hyd nad ydym wedi gwneud yn glir rhaniad neu glir gael o'r nifer ein bod mewn gwirionedd am ei wneud. Nawr yn yr achos hwn, mae hyn yn ddim wir yn allbwn clir. Nid yw'n wir yn ganlyniad clir sy'n rydym am ei gael y rhaglen benodol hon. Ac mae hyn yn, unwaith eto, mae ychydig bach ddyfeisgar. Ond, efallai, un o'r pethau y gallem wneud os bydd y fanyleb dywedodd ein bod yn dymuno rhannu'r hyn drwy 2 ac ychwanegu 1-- hynny mewn geiriau eraill, rydym am talgrynnu up-- yna Efallai ein bod yn gwybod y gallem gwneud y peth arbennig, yn yr achos hwn. Nawr dyma rydym yn gwybod y byddwn yn gallu ychwanegu 1 at ein rhif haneru. Gadewch i ni ail-grynhoi hyn ac yn cadarnhau bod hwn yn ymddwyn y ffordd yr ydym am ei. Gallwn weld hynny yn awr cyn gael, mae gennym y rhif 5. Ar ôl cael, mae gennym y rhif 3, a oedd yn ôl ein manyleb, yr hyn yr ydym am ei wneud. Ond os ydym yn edrych ar y allbwn yma, y ​​gallwn weld y gallai gennym un arall bug yn gyfan gwbl, sef ein bod yn dechrau ein cyfrif o 0. Yn awr eto, mae hyn yn rhywbeth ein bod wedi gweld yn y gorffennol a gallwn atgyweiria yn eithaf rhwydd. Ond yn yr achos hwn, rydym yn Roedd hefyd yn y budd-dal o ddefnyddio'r datganiad printf yn uniongyrchol tu mewn i'r ddolen ar gyfer i wybod yn union ble fod camgymeriad yn digwydd. Datganiadau Felly printf yn ddefnyddiol iawn wrth helpu byddwch yn penderfynu ble, yn union yn eich cod ffynhonnell, gwall penodol yn digwydd. Ac mae hefyd yn bwysig sylweddoli hynny, fel yr ydym yn ysgrifennu cod, efallai y byddwn yn cael tybiaethau am gyflwr rhaglen. Neu gallai fod yn rhaid tybiaethau am yr hyn y rhan o'r rhaglen mewn gwirionedd yn gywir neu'n anghywir pan yn nes ymlaen wrth i ni adeiladu ar y rhaglen a'i wneud yn rhan o cymhleth a rhaglen mwy o faint ein bod yn sylweddoli bod rhyw agwedd rhan o hynny yn buggy. Gall defnyddio printf wir yn gallu helpu gyfyngu'r a nodi y rhanbarthau o raglen efallai nad yw yn ymddwyn yn union y ffordd yr ydym yn disgwyl, yn seiliedig ar ein rhagdybiaethau. Ond mae offer eraill ar gael, yn ogystal, sy'n ein galluogi i geisio ffigur ble camgymeriad yn digwydd a hefyd, yn benodol, pa bethau yn digwydd y tu mewn i'r rhaglen. Felly gan ddefnyddio printf yn iawn pan ddefnyddiol rydym am i nodi meysydd penodol o rhaglen sy'n cael rhywfaint o nam. Ond mae hefyd yn dod yn diflas ar ôl ychydig. Yn yr achos hwn, mae hwn yn rhaglen gymharol syml gyda dim ond un neu ddau newidyn. Ac mae'n dod yn hawdd iawn i ni argraffwch y gwerth y newidynnau hynny yng nghyd-destun y rhaglen ehangach. Ond efallai bod gennym wahanol rhaglen sydd â llawer o newidynnau. Ac efallai na fydd yn hollol mor hawdd i'w defnyddio printf i geisio gwerthuso'r hyn sy'n digwydd i bob un o'r newidynnau hynny gan fod y rhaglen yn cael ei gweithredu. Mae rhaglen sy'n bodoli Gelwir rhaglen dadfygiwr. Yn yr achos hwn, yr un y byddwn yn defnydd yn y dadnamydd GNU, neu GDB, sy'n ein galluogi i archwilio'r mewnol gweithio o raglen mewn llawer mwy ffordd manwl. Gallwn gyflawni mewn gwirionedd GDB o'r llinell orchymyn yma at 'n annichellgar deipio GDB a'r gorchymyn yr ydym am ei debug. Yn yr achos hwn, yn cyfrif. Nawr yn yr achos hwn, gallwn weld ei fod yn yn dod â ni at prydlon sy'n dweud GDB. Ac o fewn ein gallu mewn gwirionedd redeg gorchmynion i GDB i mewn gwirionedd yn dechrau gweithredu i roi'r rhaglen, atal mewn mannau penodol, gwerthuso'r newidynnau a archwilio'r newidynnau sy'n yn bodoli yn y cyflwr rhaglen ar y pryd penodol, ac yn y blaen ac yn y blaen. Mae'n rhoi llawer o bŵer i ni. Ond dim ond fel y digwydd bod y DRhA CS50 hefyd yn darparu GUI neu ddefnyddiwr rhyngwyneb ar gyfer GDB sy'n yn caniatáu i ni wneud hyn heb fod angen y rhyngwyneb llinell orchymyn o gwbl neu o gwbl hyd yn oed. Y ffordd y gallaf gael gafael ar y yw drwy ddefnyddio'r botwm dadfygio ar frig y DRhA CS50. Nawr yn y gorffennol, yr hyn sydd gennym gweld yw ein bod yn defnyddio'r gorchymyn llinell i lunio ac yna cynnal rhaglen. Mae'r botwm dadfygio yn gwneud y ddau camau hynny. Ond mae hefyd yn dod i fyny 'r tab debugger ar y dde eithaf sy'n ein galluogi i archwilio amrywiaeth o eiddo o'r rhaglen gan ei fod yn gweithredu. Os byddaf yn cliciwch debug, yn hyn achos, bydd yn dod i fyny tab newydd yn y consol ffenestr ar yr union gwaelod. A gallwch weld bod y tab hwn mae gan rhywfaint o wybodaeth ar y brig. A gallwn anwybyddu hyn i raddau helaeth. Ond un o'r pethau ein bod am i hysbysiad yw ei fod yn allbynnau yr un peth yr ydym Byddai gael os rydym yn ceisio rhedeg wneud ar y rhaglen C yn y ffenestr terfynell. Yma, gallwn weld ei fod yn rhedeg chlang, ac mae ganddo amrywiaeth o faneri, ac mae'n cael ei lunio ein ffeil count.c, sef y tab a ddewiswyd ar y pryd fy mod yn taro debug. Felly, mae hyn yn ddefnyddiol iawn oherwydd bellach yn defnyddio botwm dadfygio hwn, gallwn ar yr un pryd yn llunio ac yna'n gweithredu'r rhaglen yr ydym mewn gwirionedd eisiau rhedeg. Un o'r baneri sydd yn bwysig, yn yr achos hwn, rydym wedi bod mewn gwirionedd yn defnyddio am y tro hiraf ond mae hefyd yn unig oedd rhywfaint o law chwifio [Anghlywadwy], a oedd yn yn yr un yma iawn yma. Yn chlang, mae'n dweud -ggdb3. Yn yr achos hwn, yr hyn yr ydym yn dweud wrth chlang, ein compiler, yw ein bod am i lunio ein rhaglen. Ond hefyd yn rhoi beth yw'r Gelwir Gwybodaeth symbol fel bod y compiler mewn gwirionedd yn cael mynediad i lawer o'r wybodaeth sylfaenol cynnwys yn y rhaglen. Yn fwy penodol, mae nifer swyddogaethau sydd gennyf, enwau'r swyddogaethau hynny, newidynnau, y mathau bod newidynnau hynny, ac amrywiaeth o bethau eraill sy'n helpu y dadnamydd perfformio ei weithrediad. Nawr mae 'na rhywbeth arall mae hynny'n bwysig sôn pan fyddwn ni'n trafod rhedeg rhaglen yn y modd hwn. Sylwch fod ganddo mewn gwirionedd magu tab newydd yn ein consol ar hyd y gwaelod. Mae'n rhaid i ni ryngweithio mwyach yn uniongyrchol gyda'r ffenestr terfynell. Ond mae tab newydd hyn yn mewn gwirionedd derfynnell ffenest. 'I jyst yn benodol i redeg rhaglen yr ydym wedi'i greu. Sylwch fod ar y gwaelod, yn cyfuniad â rhywfaint o allbwn trwy chlang y casglwr a GDB, y gallwn anwybyddu i raddau helaeth, y mae mewn gwirionedd yn dangos allbwn ein rhaglen ar yr union gwaelod. Nawr mae'n bwysig sylweddoli bod hyn yn un ffenestr mewn gwirionedd Bydd yn dangos i chi y allbwn o'r eich rhaglen ond gall hefyd dderbyn mewnbwn ar gyfer y rhaglen honno, yn ogystal. Felly rhybudd sy'n dweud rhowch rif, sef yr un allbwn a oedd gennym Roedd yn y ffenestr terfynell o'r blaen. Ond mae bellach wedi ei ddangos yn tab newydd hwn. Gallaf mewnbwn rhif. Ac y bydd yn mewn gwirionedd swyddogaeth fel yr ydym yn ei ddisgwyl gan ddangos i ni ein debug, allbwn, yr allbwn a allai fod yn buggy, fel yr ydym wedi ei weld o'r blaen. Ac ar y gwaelod iawn, mae'n mewn gwirionedd wedi rhywfaint o allbwn ychwanegol o GDP dim ond dweud bod mae'r rhaglen hon wedi cwblhau. Nawr fel y gwelsoch yn hyn rhedeg benodol trwy, nid oedd yn arbennig o ddefnyddiol oherwydd hyd yn oed er ein bod wedi cael y fwydlen debugger dod i fyny, roedd hyn yn dal i fod yn rhaglen olynol. Ar unrhyw bwynt yn gwneud hynny mewn gwirionedd oedi gweithredu i ni i allu archwilio pob un y newidynnau a gynhwysir yn. Mae rhywbeth arall bod yn rhaid iddynt ei wneud er i gael GDB i gydnabod ein bod am i oedi gweithredu i roi'r rhaglen ac nid dim ond gadael iddo fynd yn ei flaen Fel arfer, fel y byddem mewn unrhyw achos arall. Er mwyn oedi gweithredu, ar ryw llinell benodol, mae angen i ni greu beth sydd Gelwir pwynt egwyl. A phwynt egwyl yn cael ei greu yn hawdd iawn yn hyn o CS50 IDE drwy gymryd eich llygoden a chlicio uniongyrchol i'r chwith o ryw rif llinell benodol. Ar ôl i mi wneud hynny, dot coch Ymddengys, sy'n dangos bod y llinell bellach yn bwynt egwyl. A'r tro nesaf yr wyf yn rhedeg GDB, mae'n Bydd rhoi'r gorau i weithredu ar y pwynt torri pan fydd yn cyrraedd y llinell o god. Yn awr mae hyn yn bwysig beth i wireddu nad yw'n reidrwydd y achos bod pob llinell o god mewn gwirionedd hygyrch. Pe bawn i greu swyddogaeth i fyny yma, er f-- ddi-rym example-- a dim ond gwneud llinell print Yma-- helo world-- byth os wyf yn galw y swyddogaeth hon, bydd yn wir bod, os byddaf yn gosod pwynt torri yma, Ni fydd y swyddogaeth yn cael eu galw. Ac am hynny, mae hyn yn pwynt torri arbennig Bydd byth yn oedi mewn gwirionedd gweithredu i roi'r rhaglen. Felly, gadewch i ni ddweud fy mod yn creu yn gywir pwynt toriad ar rai llinell o god Bydd hynny mewn gwirionedd yn cael ei weithredu. Nawr yn yr achos hwn, dyma'r llinell gyntaf yn y brif swyddogaeth. Felly, bydd yn sicr yn wir hynny, cyn gynted ag yr wyf yn dechrau gweithredu, bydd y llinell gyntaf un yn cael ei gyrraedd. Bydd GDB oedi gweithredu. Ac yna, byddaf yn gallu ryngweithio gyda'r debugger. Gallwch osod llinellau lluosog fel torbwyntiau, os hoffech. Gallwn hefyd greu llinell i fyny yma yn y rhan honno o'r cod na fydd byth yn cael ei gyrraedd. A gallwn hefyd sefydlu un ymhellach isod. Y rheswm y byddem am wneud hyn rydym chi helpu mynd i mewn i ychydig yn fwy manylion mewn dim ond eiliad. Felly am y tro, gadewch i mi jyst analluoga y pwyntiau egwyl ychwanegol fel y gallwn edrych ar yr hyn sy'n digwydd pan fydd gen i un egwyl sengl pwynt yn fy rhaglen. Rwyf wedi gwneud rhywfaint o newidiadau i'r rhaglen hon. Felly, mae angen i mi i'w achub. Byddaf yn clicio debug fel y gallaf dechrau casglu ac yna gweithredu i roi'r debugger. Byddwn yn gweld, ar ôl eiliadau, mae'r llinell ein bod yn dewis fel yr egwyl pwynt yn cael ei hamlygu mewn melyn. Gallwn hefyd yn sylwi bod yn y dde uchaf yn y panel dadfygio bod yr eicon oedi wedi troi i mewn i ychydig o eicon chwarae. Mae hyn yn golygu ein bod wedi oedi gweithredu, yn yr achos penodol hwn. Ac yn taro'r botwm Chwarae byddai yn ein galluogi i ailddechrau gweithredu ar y pwynt penodol. Sylwch fod yna un neu ddau o eraill botymau sydd ar gael yn y panel dadfygio, yn ogystal. Camu drosodd, sy'n caniatáu i mi gweithredu fod un llinell o god ac yn cam dros i'r llinell honno i'r un nesaf, sydd, yn yr achos hwn, yn golygu bod y printf datganiad yn cael ei chyflawni. A bydd yn wedyn yn oedi gweithredu ar-lein 13, fel cynifer. Ac mae hefyd yn gam i mewn i swyddogaeth, a oedd yn yn ddefnyddiol os wyf wedi creu eraill swyddogaethau mewn mannau eraill yn y cod ffynhonnell. Ac yr wyf am i gamu i mewn swyddogaethau hynny yn hytrach na gweithredu swyddogaeth honno yn ei chyfanrwydd. Ond byddwn yn edrych yn fwy ar y cam i mewn i swyddogaeth mewn dim ond eiliad. Nawr sylwi ar rai pethau eraill sy'n bodoli mewn gwirionedd o fewn y panel dadfygio. Mae gennym y panel hwn a elwir yn ffoniwch stac, sy'n dangos i ni ble yn union yr ydym. Yn yr achos hwn, rydym yn y tu mewn o'r prif swyddogaeth. Enw ein sgript yn cael ei count.c. Ac rydym yn digwydd i fod ar llinell 13, colofn un, a oedd yn yn union yr hyn y rhanbarth a amlygwyd o'r cod ffynhonnell yn dangos, yn ogystal. Nawr yn sylwi bod hyn hefyd yn dangos o dan yr adran newidyn lleol pob un o'r newidynnau sy'n yn bodoli o fewn y swyddogaeth hon. Mae'n bwysig nodi bod pob un o'r newidynnau fydd yn ymddangos yn newidyn lleol hwn adran o fewn swyddogaeth, hyd yn oed cyn iddynt gael eu diffinio. Gallwn weld yma fod gennym newidyn Gelwir num, mae gwerth diofyn o 0, ac y mae o'r math int. Nawr cyn i ni mewn gwirionedd yn ymgychwyn pob un o'r newidynnau hyn, nid ydym yn o angenrheidrwydd sicr o weld gwerth o 0. Ac yn dibynnu ar executions eraill eich bod wedi perfformio a chyflwr eich cof pan chi mewn gwirionedd yn rhedeg y rhaglen hon, efallai y byddwch yn dod o hyd i eich bod yn nid ydynt yn gweld gwerth o 0 ac, yn lle hynny, mae rhai rhifau crazy eraill. Ond peidiwch â phoeni am hynny. Dyw hi ddim yn mynd i fod yn berthnasol tan chi mewn gwirionedd yn ymgychwyn gwerth. Nawr yn yr achos hwn, gallwn weld bod Rwyf wedi perfformio rhai allbynnau. A dwi'n, ar hyn o bryd, seibio gweithredu. Ond yn yr achos hwn, beth Fi 'n sylweddol am ei wneud yw i gamu bellach dros y llinell hon o god fel y gallaf mewn gwirionedd gwestiynu'r defnyddiwr ar gyfer y int sy'n rydym am eu defnyddio yn ein rhaglen. Nawr yn yr achos hwn, pan fydd Yr wyf yn taro camu drosodd, rhybudd bod y Pause neu yn hytrach y Ail-ddechrau botwm wedi newid i botwm Saib hwn oherwydd bod y cod hwn yn gweithredu mewn gwirionedd. Beth sy'n digwydd ar hyn o bryd yw ei bod yn aros i ni i mewnbwn rhywfaint o wybodaeth fel y gallwn weld gan ein testun allbwn ar yr union gwaelod. Felly ar hyn o bryd, mae hyn yn Nid seibio mewn gwirionedd, er ei fod, rhyw fath o, yn ymddangos i fod oherwydd nid oes dim yn digwydd. Ond mae'n digwydd dim ond fel bod yn fy achos penodol ar linell 13, Im 'yn aros am fewnbwn y defnyddiwr. Ac nid felly GDB yn gallu arolygu rhaglen gan ei fod yn rhedeg. Nawr y tro nesaf yr wyf yn mynd i mewn rhai input-- felly byddaf yn mynd i mewn y rhif hwnnw 5, fel yr ydym wedi gweld yn y past-- Dychwelyd taro, ac yr ydym yn sylwi bod, ar unwaith, seibiau GDB ac, unwaith eto, yn tynnu sylw at y llinell nesaf. Ond yn sylwi ar hynny yn awr, fel ganlyniad i'n mewnbynnu gwerth, rydym wedi diweddaru y gwerth y tu mewn o'n newidynnau lleol, sy'n yn ddefnyddiol iawn i wybod yn union beth y rhif hwnnw mewn cof. Nawr gallaf ganiatáu rhaglen hon barhau chwarae tan ddiwedd ei weithredu gan daro Ail-ddechrau. Gallwn weld fod yn gyflym iawn mae'r gorffeniad rhaglen gweithredu gyda'r un allbwn yr ydym o'r blaen, mae'r dadnamydd yn cau, ac yn awr y rhaglen hon wedi dod i ben yn gyfan gwbl. Yr wyf yn dangos mai dim ond ar gyfer y ddibenion weld beth sy'n digwydd pan fyddwn mewn gwirionedd yn taro Ail-ddechrau. Ond rydym mewn gwirionedd yn mynd i eisiau mynd yn ôl i mewn i raglen hon fel y gallwn geisio debug yn union beth sy'n digwydd. Nawr bod Im 'yn arfer y dadnamydd, caf oes angen y datganiadau printf dadfygio. Felly, gallwn i gael gwared arnynt gan y byddaf yn ei wneud Erbyn hyn dim ond i fynd yn ôl at ein cod symlach ein bod wedi funud yn ôl. Nawr, pan fyddaf yn achub y rhaglen a'i chyflawni, bydd yn, unwaith eto, ewch i fod cychwynnol torri pwynt bod gen i ar linell 11. A byddaf yn gallu archwilio fy newidynnau gan fy mod am ei wneud. 'I jyst yn digwydd fel bod hyn yn Nid yw rhan yn ddiddorol iawn, Ac yr wyf yn gwybod fy mod i'n mynd argraffu'r datganiad hwn. Rhowch rif. Ac yna, yr wyf yn gwybod fy mod i'n mynd i ofyn i'r defnyddiwr ar gyfer y cyfanrif. Felly efallai, Fi 'n weithredol am symud fy torri pwynt ychydig ymhellach i lawr. Gallwch dynnu pwyntiau egwyl drwy glicio, unwaith eto, yn uniongyrchol i'r chwith o'r y rhif llinell. Bydd hynny'n dot coch yn diflannu, gan nodi bod y pwynt torri yn awr wedi mynd. Nawr yn yr achos hwn, gweithredu wedi cael ei seibio. Ac felly nid yw'n mewn gwirionedd yn mynd i ailddechrau yn yr achos penodol hwnnw. Ond gallaf osod seibiant pwyntio ychydig yn ddiweddarach. A phan wyf yn awr yn ailddechrau fy cod, bydd yn ailddechrau ac yn dweud pwynt y pwynt egwyl. Unwaith eto, yr wyf yn taro Ail-ddechrau. Nid yw'n ymddangos fel unrhyw beth sy'n digwydd. Ond mae hynny'n oherwydd bod fy cod yn aros am fewnbwn. Byddaf yn mynd i mewn i rif 5, daro Chofnoda, a yn awr y bydd y pwynt torri nesaf yn cael ei daro. Nawr yn yr achos hwn, mae hyn yn yw'r llinell o god hynny, o'r blaen, roeddem yn gwybod digwydd bod bygi. Felly gadewch i ni werthuso'r hyn sy'n digwydd ar y pwynt penodol mewn amser. Pan linell cael ei amlygu, mae hyn yn Nid yw llinell wedi cael ei ddienyddio eto. Felly, yn yr achos hwn, gallwn weld bod gennyf nifer, a oedd yn Mae gen i yn gyfanrif o'r enw num sydd â gwerth 5. Ac yr wyf i'n mynd i fod yn perfformio rhywfaint cwestiwn ar y rhif. Os byddaf yn cam dros hynny, a allwn sylwi bod y gwerth am num wedi newid yn unol â'r rhifyddeg yr ydym wedi ei wneud mewn gwirionedd. Ac yn awr ein bod yn y tu mewn o hyn ar gyfer dolen neu yn awr bod y ddolen ar gyfer ei hun yn ei amlygu, gwelwn fod gennym newydd newidyn a elwir ff bod yn mynd i gael ei ddefnyddio mewn un ar gyfer ddolen. Nawr cofiwch cyn fy mod crybwyll bod weithiau eich bod yn mynd i weld rhyw fath o crazy rhifau fel ball cyn y rhif hwnnw neu fod newidyn yn initialized mewn gwirionedd. Gallwn weld bod union yma yn y newidyn hwn Gelwir ff, nad sydd wedi wedi'i ymgychwyn eto ar adeg dynnu sylw. Ond gallwn weld ei fod ganddo rai rhif na fyddem mewn gwirionedd yn ei ddisgwyl. Mae hynny'n iawn. Peidiwch â phoeni am y peth oherwydd ein bod wedi nid mewn gwirionedd initialized y rhif hwnnw hyd nes i mi cam dros y llinell hon a gwerth ff wedi'i ymgychwyn i werth 1. Felly, i weld bod hynny mewn gwirionedd yr achos, gadewch i ni gamu drosodd. Gallwn yn awr weld bod y llinell wedi cael ei ddienyddio. Ac rydym yn awr yn tynnu sylw at llinell printf hwn. A gallwn yn awr weld sut mae ein gwerthoedd o i a 3 wedi newid dros amser. Mae hyn yn ddefnyddiol iawn i'w wneud, mewn gwirionedd, yw i gamu dros linellau dro ar ôl tro. A allwch chi ddod o hyd i beth mewn gwirionedd sy'n digwydd tu mewn i'ch gyfer dolen a beth sy'n digwydd i'r newidynnau y tu mewn o hynny ar gyfer dolen fel y gweithredu rhaglen bydd un cam ar y tro. Nawr ar y pwynt hwn, yr wyf yn camu dros dim ond digon fy mod bellach mod ar ddiwedd fy rhaglen. Os byddaf yn cam dros hynny, bydd yn mewn gwirionedd yn peidio gweithredu fel y gwelsom yn y gorffennol. Gadewch i mi ailgychwyn hyn, unwaith eto, felly y gallaf dynnu rhywbeth arall allan, yn ogystal. Yn yr achos hwn, mae'n yn awr yn gofyn i mi, unwaith eto, ar gyfer nifer, a oedd yn Byddaf, unwaith eto, mynd i mewn. Ond y tro hwn, yr wyf i'n mynd i fynd i mewn yn nifer fwy fel bod y ddolen ar gyfer Bydd ailadrodd gwaith yn fwy. Yn yr achos hwn, dw i'n mynd i fynd i mewn gwerth o 11. Nawr eto oherwydd byddwn i'n gosod pwynt toriad yn llinell 15, mae'n mynd i dynnu sylw at y llinell. Gallwn weld bod ein rhif 11 yn gywir gynrychioli yn ein newidynnau lleol. Camu dros hynny, gallwn yn awr gwyliwch beth sy'n digwydd i'n werth i wrth i ni symud ymlaen y tu mewn o hyn ar gyfer dolen. Mae'n mynd yn gynyddrannedig bob tro yr ydym yn yn cyrraedd brig hynny ar gyfer ddolen. Bellach yn un o'r pethau y gallai'r fod yn ddefnyddiol i'w wneud yn ystod gweithredu y rhaglen hon yw i mi mewn gwirionedd newid y nghanol afon newidynnau i weld beth fydd yn digwydd i fy rhaglen. Yn yr achos hwn, gallaf mewn gwirionedd dwbl cliciwch ar y gwerth. Sylwch fod yn dod yn faes testun. Nawr gallaf fynd i mewn gwahanol gwerthfawrogi yn gyfan gwbl i weld sut mae fy rhaglen yn ymddwyn pan fyddaf wedi newid y newidyn. Nawr yn yr achos hwn, y newidyn ff bellach yn cynnwys gwerth 10. Ond mae'r rhaglen yn dal i fod oedi'r yn gweithredu. Pan fyddaf yn camu drosodd, yr wyf yn gweld bod y gwerth i, yr wyf yn mynd â 10, Nid yw yn fwy na gwerth num, a oedd unwaith yn achosi i'r ddolen ar gyfer i roi'r gorau i weithredu. Nawr nid dyna'r unig rheswm pam y byddech am ei addasu y newidyn yn ei le. Efallai y byddwch mewn gwirionedd yn eisiau i geisio addasu felly y gallwch barhau gweithredu dolen neu fel y gallwch addasu rhywfaint o werth cyn iddo yn cyrraedd rhyw set benodol o rifyddeg eich bod ar fin perfformio. Felly nawr ein bod mewn gwirionedd yn newid y gwerth y ff wrth i'r rhaglen gael ei gweithredu, mae'n achosi i'r i ddolen i roi'r gorau iddi cyn pryd oherwydd, yn sydyn, fi digwydd bod yn fwy na'r gwerth o num, sy'n golygu bod hynny ar gyfer dolen sydd ei angen mwyach i gael ei ddienyddio. Bellach, mae'n digwydd i fod yn achos ein bod yn newid y gwerth i pan fydd y llinell 17 Amlygwyd, sef y pwynt mewn amser bod y ddolen ar gyfer gweithredu yn cael ei werthuso mewn gwirionedd. Os wyf wedi newid y gwerth ff ar linell wahanol, dyweder 19, byddem wedi gweld yn wahanol ymddygiad gan fod llinell 19 byddai wedi gweithredu cyn y ddolen cyflwr ei reevaluated. Nawr ar y pwynt hwn, rwy'n, unwaith eto, ar ddiwedd y rhaglen hon. A gallaf ganiatáu i hyn i fynd ymlaen i caniatáu fy rhaglen i roi'r gorau iddi yn naturiol. Ond mae un neu ddau o bethau sy'n bwysig i fynd i ffwrdd o'r drafodaeth hon penodol. Mae angen i chi werthuso eich rhagdybiaethau eich hun ynghylch sut y dylai'r cod fod yn ymddwyn. Unrhyw bryd y byddwch yn meddwl bod rhai darn o god eich bod yn gwybod yn digwydd i'r gwaith, a allai fod yn baner goch i fynd yn ôl a gwerthuso, a gofalwch eich bod bod eich rhagdybiaeth o sut y cod yn gweithredu mewn gwirionedd yn wir i sut y mae fynegir yn eich cod ffynhonnell. Ond hyd yn oed mwy i bwynt oedd, pan fyddwn yn defnyddio'r dadnamydd, gallwch roi torbwyntiau yn gwahanol linellau o god, a fydd yn achosi y dadnamydd i oedi gweithredu ym mhob un o'r llinellau hynny fel y gallwch werthuso cof neu hyd yn oed newid yn ei le. Ac eto, cofiwch eich bod yn gallu creu torbwyntiau lluosog er mwyn i chi Gall hefyd ailddechrau gweithredu, sgipio dros rhannau mawr o'r cod, a bydd yn oedi yn awtomatig ar y pwynt egwyl nesaf. Mae mewn gwirionedd yn fwy datblygedig nodweddion y dadnamydd, yn ogystal. Ond bydd rhaid i ni eich cyfeirio i rai fideos dilynol er mwyn canfod 'n sylweddol ar wahân sut i ddefnyddio swyddogaethau penodol hynny. Am y tro, diolch i chi yn fawr iawn am wylio. A debugging pob lwc.