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