1 00:00:00,000 --> 00:00:00,309 2 00:00:00,309 --> 00:00:02,350 [? DAN ARMADARAS:?] Hi, Rwy'n [? Dan Armadaras?]. 3 00:00:02,350 --> 00:00:04,410 Heddiw, rydyn ni'n mynd i yn edrych ar debugging. 4 00:00:04,410 --> 00:00:06,697 Nid yn unig yr ydym yn mynd i siarad am rai technegau, 5 00:00:06,697 --> 00:00:09,280 ond hefyd rydyn ni'n mynd i edrych ar rhai o'r nodweddion a geir 6 00:00:09,280 --> 00:00:14,170 o fewn y IDE CS50 sy'n caniatáu chi dadfygio rhaglen yn hawdd. 7 00:00:14,170 --> 00:00:16,272 >> Dim ond un enghraifft o rhywbeth y gellir mynd o'i le 8 00:00:16,272 --> 00:00:18,730 ac mae'n mewn gwirionedd yn rhywbeth ein bod eisoes wedi gweld o'r blaen. 9 00:00:18,730 --> 00:00:23,200 Yn yr achos hwn, mae hon yn rhaglen C sy'n derbyn yn gyfanrif gan y defnyddiwr, 10 00:00:23,200 --> 00:00:27,580 ei rannu gan ddau, ac mae'n darparu yr allbwn yn ôl at y defnyddiwr. 11 00:00:27,580 --> 00:00:30,610 Nawr o'r hyn yr ydym wedi ei weld yn gynharach mewn darlithoedd, 12 00:00:30,610 --> 00:00:34,370 rydym yn gwybod y bydd hyn mewn gwirionedd yn achosi mathau penodol o broblemau is-adran 13 00:00:34,370 --> 00:00:35,860 pan fydd gennym odrifau. 14 00:00:35,860 --> 00:00:40,330 >> Yn benodol, byddwn yn jyst taflu unrhyw beth ar ôl y pwynt degol. 15 00:00:40,330 --> 00:00:43,170 Yn awr, rydym yn gwybod bod hwn yn digwydd i fod yn wir. 16 00:00:43,170 --> 00:00:47,430 Ac os ydym yn ei rhedeg, gallwn gadarnhau ein amheuon, yn gyntaf, trwy lunio. 17 00:00:47,430 --> 00:00:50,460 Ac yna, drwy redeg a mynd i mewn odrif. 18 00:00:50,460 --> 00:00:51,720 >> Mae hyn yn ddim byd newydd. 19 00:00:51,720 --> 00:00:54,490 Ond mae hyn mewn gwirionedd yn enghraifft o bug sy'n 20 00:00:54,490 --> 00:00:58,810 Gall fodoli o fewn rhaglen ehangach sy'n dod yn fwy anodd i ddod o hyd. 21 00:00:58,810 --> 00:01:02,640 Hyd yn oed er ein bod yn gwybod beth yw'r mater yw, y gwir graidd y mater 22 00:01:02,640 --> 00:01:06,250 allai fod yn ceisio nodi yn benodol lle mae'r gwall yn digwydd, 23 00:01:06,250 --> 00:01:09,750 nodi'r hyn y broblem honno yw, ac yna ei datrys. 24 00:01:09,750 --> 00:01:14,400 Felly, ddarparu hyn fel enghraifft o'r hyn a allai fod yn rhywbeth 25 00:01:14,400 --> 00:01:19,030 ein bod eisoes yn gwybod, ond gellir eu claddu o fewn elfennau eraill o'r cod. 26 00:01:19,030 --> 00:01:23,090 >> Felly agor ffynhonnell arall hwn file cod fel enghraifft, 27 00:01:23,090 --> 00:01:27,165 problem adran hon bellach rhan o raglen ehangach. 28 00:01:27,165 --> 00:01:29,040 Efallai dal i fod ychydig yn bit ddyfeisgar, ac yr ydym yn 29 00:01:29,040 --> 00:01:31,076 Efallai fod yn gallu hawdd adnabod, yn enwedig 30 00:01:31,076 --> 00:01:32,450 ers i ni yn unig yn trafod hyn. 31 00:01:32,450 --> 00:01:38,250 Ond gallwn chyfrif i maes bod hyn Gall problem yn bodoli ar raddfa fwy. 32 00:01:38,250 --> 00:01:45,450 >> Os byddaf yn crynhoi hyn ac yn awr rhedeg, rhowch odrif, 33 00:01:45,450 --> 00:01:49,816 gallwn weld nad ydym yn cael yn union yr allbwn y gallwn fod wedi disgwyl. 34 00:01:49,816 --> 00:01:51,690 Yn yr achos arbennig hwn, efallai y byddwn yn dweud ein bod 35 00:01:51,690 --> 00:01:56,060 eisiau gyfrif pob un o'r rhifau o un hyd at ryw rif penodol. 36 00:01:56,060 --> 00:01:58,130 A gallwn weld ein bod yn yn cael amrywiaeth o faterion 37 00:01:58,130 --> 00:02:03,880 yma os ydym yn outputting, yn syml, 0 ac 1 pan rydym yn darparu mewnbwn o 5. 38 00:02:03,880 --> 00:02:07,380 >> Felly, yr ydym eisoes yn gwybod bod yna broblem yma. 39 00:02:07,380 --> 00:02:11,662 Ond efallai nad ydym yn gwybod yn union lle mae hyn yn broblem yn bodoli mewn gwirionedd. 40 00:02:11,662 --> 00:02:13,620 Bellach yn un o'r ffyrdd y gallwn geisio atgyweiria hon 41 00:02:13,620 --> 00:02:15,745 yn rhywbeth yr ydym i wedi eisoes wedi'u cyflwyno i. 42 00:02:15,745 --> 00:02:18,880 Allwn ei ddefnyddio ar raddfa fwy. 43 00:02:18,880 --> 00:02:21,680 >> Ar-lein 14, yr ydym wedi swyddogaeth printf yma, 44 00:02:21,680 --> 00:02:25,620 sy'n ein galluogi i argraffu'r wladwriaeth o wahanol ddarnau o wybodaeth. 45 00:02:25,620 --> 00:02:28,880 Ac mae hyn yn rhywbeth y byddwch yn Dylai trosoledd o fewn eich rhaglen 46 00:02:28,880 --> 00:02:33,100 i geisio chyfrif i maes yn union beth sydd yn digwydd mewn gwahanol linellau o god. 47 00:02:33,100 --> 00:02:36,350 Felly hyd yn oed os nad yw hyn yn y cynnyrch terfynol yr ydym mewn gwirionedd 48 00:02:36,350 --> 00:02:39,830 eisiau cynhyrchu allan o rhaglen hon, rydym yn dal i 49 00:02:39,830 --> 00:02:42,300 Efallai gael rhywfaint o debug datganiadau lle rydym 50 00:02:42,300 --> 00:02:46,970 Gall ceisio at chyfrif i maes yn union beth sy'n digwydd y tu o'n cod. 51 00:02:46,970 --> 00:02:51,210 >> Felly, yn yr achos hwn, byddaf yn printf gyda'r tag dadfygio. 52 00:02:51,210 --> 00:02:53,540 Yn yr achos hwn, mae hyn yn dim ond llinyn dadfygio 53 00:02:53,540 --> 00:02:56,840 fy mod i fyny-roi fel ei fod yn yn glir iawn yn y cynnyrch o fy cod 54 00:02:56,840 --> 00:02:59,200 beth yw fy mod yn awyddus i ddangos. 55 00:02:59,200 --> 00:03:04,410 Ac allbwn yma y rhif ein bod wedi gyfrifo. 56 00:03:04,410 --> 00:03:06,800 >> Yn yr achos hwn, yr wyf yn gallai eisiau gwybod yn union 57 00:03:06,800 --> 00:03:11,380 yr hyn sy'n digwydd cyn ac ar ôl peth cyfrifiant penodol. 58 00:03:11,380 --> 00:03:16,224 Felly, efallai y byddwn yn defnyddio printf cyn ac ar ôl y llinell o god. 59 00:03:16,224 --> 00:03:18,640 Yn yr achos hwn, gallwn hyd yn oed yn ei gwneud yn ychydig yn fwy clir 60 00:03:18,640 --> 00:03:21,960 drwy ddweud debug cyn a dadfygio ar ôl hynny 61 00:03:21,960 --> 00:03:26,540 nad wyf yn drysu fy hun gyda llinellau lluosog sy'n edrych yn union yr un fath. 62 00:03:26,540 --> 00:03:32,290 >> Nawr, os byddwn yn ail-grynhoi hyn a rhedeg iddo, rhowch nifer tebyg bump eto, 63 00:03:32,290 --> 00:03:35,090 gallwn weld bod gennym Erbyn hyn allbwn cyn ac ar ôl 64 00:03:35,090 --> 00:03:40,670 a dod o hyd nad ydym wedi gwneud yn glir rhaniad neu glir gael o'r nifer 65 00:03:40,670 --> 00:03:43,680 ein bod mewn gwirionedd am ei wneud. 66 00:03:43,680 --> 00:03:48,660 Nawr yn yr achos hwn, mae hyn yn ddim wir yn allbwn clir. 67 00:03:48,660 --> 00:03:52,440 Nid yw'n wir yn ganlyniad clir sy'n rydym am ei gael y rhaglen benodol hon. 68 00:03:52,440 --> 00:03:54,427 >> Ac mae hyn yn, unwaith eto, mae ychydig bach ddyfeisgar. 69 00:03:54,427 --> 00:03:57,510 Ond, efallai, un o'r pethau y gallem wneud os bydd y fanyleb dywedodd 70 00:03:57,510 --> 00:04:01,900 ein bod yn dymuno rhannu'r hyn drwy 2 ac ychwanegu 1-- hynny mewn geiriau eraill, 71 00:04:01,900 --> 00:04:04,550 rydym am talgrynnu up-- yna Efallai ein bod yn gwybod y gallem 72 00:04:04,550 --> 00:04:08,060 gwneud y peth arbennig, yn yr achos hwn. 73 00:04:08,060 --> 00:04:14,010 Nawr dyma rydym yn gwybod y byddwn yn gallu ychwanegu 1 at ein rhif haneru. 74 00:04:14,010 --> 00:04:16,490 >> Gadewch i ni ail-grynhoi hyn ac yn cadarnhau bod hwn 75 00:04:16,490 --> 00:04:18,860 yn ymddwyn y ffordd yr ydym am ei. 76 00:04:18,860 --> 00:04:21,980 Gallwn weld hynny yn awr cyn gael, mae gennym y rhif 5. 77 00:04:21,980 --> 00:04:26,620 Ar ôl cael, mae gennym y rhif 3, a oedd yn ôl ein manyleb, 78 00:04:26,620 --> 00:04:29,292 yr hyn yr ydym am ei wneud. 79 00:04:29,292 --> 00:04:31,000 Ond os ydym yn edrych ar y allbwn yma, y ​​gallwn 80 00:04:31,000 --> 00:04:33,760 weld y gallai gennym un arall bug yn gyfan gwbl, sef 81 00:04:33,760 --> 00:04:36,940 ein bod yn dechrau ein cyfrif o 0. 82 00:04:36,940 --> 00:04:39,390 >> Yn awr eto, mae hyn yn rhywbeth ein bod wedi gweld yn y gorffennol 83 00:04:39,390 --> 00:04:42,500 a gallwn atgyweiria yn eithaf rhwydd. 84 00:04:42,500 --> 00:04:44,790 Ond yn yr achos hwn, rydym yn Roedd hefyd yn y budd-dal 85 00:04:44,790 --> 00:04:48,940 o ddefnyddio'r datganiad printf yn uniongyrchol tu mewn i'r ddolen ar gyfer 86 00:04:48,940 --> 00:04:52,930 i wybod yn union ble fod camgymeriad yn digwydd. 87 00:04:52,930 --> 00:04:55,150 Datganiadau Felly printf yn ddefnyddiol iawn wrth helpu 88 00:04:55,150 --> 00:04:57,940 byddwch yn penderfynu ble, yn union yn eich cod ffynhonnell, 89 00:04:57,940 --> 00:05:00,620 gwall penodol yn digwydd. 90 00:05:00,620 --> 00:05:03,650 >> Ac mae hefyd yn bwysig sylweddoli hynny, fel yr ydym yn ysgrifennu cod, 91 00:05:03,650 --> 00:05:06,052 efallai y byddwn yn cael tybiaethau am gyflwr rhaglen. 92 00:05:06,052 --> 00:05:08,510 Neu gallai fod yn rhaid tybiaethau am yr hyn y rhan o'r rhaglen 93 00:05:08,510 --> 00:05:13,020 mewn gwirionedd yn gywir neu'n anghywir pan yn nes ymlaen wrth i ni adeiladu ar y rhaglen 94 00:05:13,020 --> 00:05:15,950 a'i wneud yn rhan o cymhleth a rhaglen mwy o faint 95 00:05:15,950 --> 00:05:19,700 ein bod yn sylweddoli bod rhyw agwedd rhan o hynny yn buggy. 96 00:05:19,700 --> 00:05:22,680 >> Gall defnyddio printf wir yn gallu helpu gyfyngu'r a nodi 97 00:05:22,680 --> 00:05:26,430 y rhanbarthau o raglen efallai nad yw yn ymddwyn yn union y ffordd yr ydym 98 00:05:26,430 --> 00:05:29,500 yn disgwyl, yn seiliedig ar ein rhagdybiaethau. 99 00:05:29,500 --> 00:05:31,460 Ond mae offer eraill ar gael, yn ogystal, 100 00:05:31,460 --> 00:05:34,860 sy'n ein galluogi i geisio ffigur ble camgymeriad yn digwydd 101 00:05:34,860 --> 00:05:39,930 a hefyd, yn benodol, pa bethau yn digwydd y tu mewn i'r rhaglen. 102 00:05:39,930 --> 00:05:41,990 >> Felly gan ddefnyddio printf yn iawn pan ddefnyddiol rydym am 103 00:05:41,990 --> 00:05:45,900 i nodi meysydd penodol o rhaglen sy'n cael rhywfaint o nam. 104 00:05:45,900 --> 00:05:47,730 Ond mae hefyd yn dod yn diflas ar ôl ychydig. 105 00:05:47,730 --> 00:05:50,500 Yn yr achos hwn, mae hwn yn rhaglen gymharol syml 106 00:05:50,500 --> 00:05:52,750 gyda dim ond un neu ddau newidyn. 107 00:05:52,750 --> 00:05:57,260 Ac mae'n dod yn hawdd iawn i ni argraffwch y gwerth y newidynnau hynny 108 00:05:57,260 --> 00:05:59,670 yng nghyd-destun y rhaglen ehangach. 109 00:05:59,670 --> 00:06:02,670 >> Ond efallai bod gennym wahanol rhaglen sydd â llawer o newidynnau. 110 00:06:02,670 --> 00:06:06,530 Ac efallai na fydd yn hollol mor hawdd i'w defnyddio printf 111 00:06:06,530 --> 00:06:10,120 i geisio gwerthuso'r hyn sy'n digwydd i bob un o'r newidynnau hynny 112 00:06:10,120 --> 00:06:13,590 gan fod y rhaglen yn cael ei gweithredu. 113 00:06:13,590 --> 00:06:16,960 Mae rhaglen sy'n bodoli Gelwir rhaglen dadfygiwr. 114 00:06:16,960 --> 00:06:20,320 Yn yr achos hwn, yr un y byddwn yn defnydd yn y dadnamydd GNU, neu GDB, 115 00:06:20,320 --> 00:06:24,260 sy'n ein galluogi i archwilio'r mewnol gweithio o raglen mewn llawer mwy 116 00:06:24,260 --> 00:06:25,700 ffordd manwl. 117 00:06:25,700 --> 00:06:28,810 >> Gallwn gyflawni mewn gwirionedd GDB o'r llinell orchymyn 118 00:06:28,810 --> 00:06:35,370 yma at 'n annichellgar deipio GDB a'r gorchymyn yr ydym am ei debug. 119 00:06:35,370 --> 00:06:37,550 Yn yr achos hwn, yn cyfrif. 120 00:06:37,550 --> 00:06:41,650 Nawr yn yr achos hwn, gallwn weld ei fod yn yn dod â ni at prydlon sy'n dweud GDB. 121 00:06:41,650 --> 00:06:44,020 Ac o fewn ein gallu mewn gwirionedd redeg gorchmynion i GDB 122 00:06:44,020 --> 00:06:48,260 i mewn gwirionedd yn dechrau gweithredu i roi'r rhaglen, atal mewn mannau penodol, 123 00:06:48,260 --> 00:06:51,060 gwerthuso'r newidynnau a archwilio'r newidynnau sy'n 124 00:06:51,060 --> 00:06:54,152 yn bodoli yn y cyflwr rhaglen ar y pryd penodol, 125 00:06:54,152 --> 00:06:55,110 ac yn y blaen ac yn y blaen. 126 00:06:55,110 --> 00:06:57,240 Mae'n rhoi llawer o bŵer i ni. 127 00:06:57,240 --> 00:06:59,960 >> Ond dim ond fel y digwydd bod y DRhA CS50 hefyd 128 00:06:59,960 --> 00:07:05,870 yn darparu GUI neu ddefnyddiwr rhyngwyneb ar gyfer GDB sy'n 129 00:07:05,870 --> 00:07:11,120 yn caniatáu i ni wneud hyn heb fod angen y rhyngwyneb llinell orchymyn o gwbl 130 00:07:11,120 --> 00:07:13,560 neu o gwbl hyd yn oed. 131 00:07:13,560 --> 00:07:16,930 Y ffordd y gallaf gael gafael ar y yw drwy ddefnyddio'r botwm dadfygio 132 00:07:16,930 --> 00:07:20,120 ar frig y DRhA CS50. 133 00:07:20,120 --> 00:07:24,280 Nawr yn y gorffennol, yr hyn sydd gennym gweld yw ein bod yn defnyddio'r gorchymyn 134 00:07:24,280 --> 00:07:27,660 llinell i lunio ac yna cynnal rhaglen. 135 00:07:27,660 --> 00:07:29,790 >> Mae'r botwm dadfygio yn gwneud y ddau camau hynny. 136 00:07:29,790 --> 00:07:34,380 Ond mae hefyd yn dod i fyny 'r tab debugger ar y dde eithaf 137 00:07:34,380 --> 00:07:38,280 sy'n ein galluogi i archwilio amrywiaeth o eiddo o'r rhaglen 138 00:07:38,280 --> 00:07:40,500 gan ei fod yn gweithredu. 139 00:07:40,500 --> 00:07:44,280 Os byddaf yn cliciwch debug, yn hyn achos, bydd yn dod i fyny 140 00:07:44,280 --> 00:07:48,230 tab newydd yn y consol ffenestr ar yr union gwaelod. 141 00:07:48,230 --> 00:07:51,160 >> A gallwch weld bod y tab hwn mae gan rhywfaint o wybodaeth ar y brig. 142 00:07:51,160 --> 00:07:52,670 A gallwn anwybyddu hyn i raddau helaeth. 143 00:07:52,670 --> 00:07:54,800 Ond un o'r pethau ein bod am i hysbysiad 144 00:07:54,800 --> 00:07:57,170 yw ei fod yn allbynnau yr un peth yr ydym 145 00:07:57,170 --> 00:08:03,000 Byddai gael os rydym yn ceisio rhedeg wneud ar y rhaglen C yn y ffenestr terfynell. 146 00:08:03,000 --> 00:08:06,230 >> Yma, gallwn weld ei fod yn rhedeg chlang, ac mae ganddo amrywiaeth o faneri, 147 00:08:06,230 --> 00:08:12,660 ac mae'n cael ei lunio ein ffeil count.c, sef y tab a ddewiswyd ar y pryd 148 00:08:12,660 --> 00:08:15,100 fy mod yn taro debug. 149 00:08:15,100 --> 00:08:18,010 Felly, mae hyn yn ddefnyddiol iawn oherwydd bellach yn defnyddio botwm dadfygio hwn, 150 00:08:18,010 --> 00:08:23,280 gallwn ar yr un pryd yn llunio ac yna'n gweithredu'r rhaglen yr ydym mewn gwirionedd 151 00:08:23,280 --> 00:08:24,460 eisiau rhedeg. 152 00:08:24,460 --> 00:08:27,880 >> Un o'r baneri sydd yn bwysig, yn yr achos hwn, 153 00:08:27,880 --> 00:08:30,190 rydym wedi bod mewn gwirionedd yn defnyddio am y tro hiraf 154 00:08:30,190 --> 00:08:32,450 ond mae hefyd yn unig oedd rhywfaint o law chwifio [Anghlywadwy], a oedd yn 155 00:08:32,450 --> 00:08:33,820 yn yr un yma iawn yma. 156 00:08:33,820 --> 00:08:35,790 Yn chlang, mae'n dweud -ggdb3. 157 00:08:35,790 --> 00:08:38,570 158 00:08:38,570 --> 00:08:41,250 Yn yr achos hwn, yr hyn yr ydym yn dweud wrth chlang, ein compiler, 159 00:08:41,250 --> 00:08:43,820 yw ein bod am i lunio ein rhaglen. 160 00:08:43,820 --> 00:08:46,810 Ond hefyd yn rhoi beth yw'r Gelwir Gwybodaeth symbol 161 00:08:46,810 --> 00:08:50,940 fel bod y compiler mewn gwirionedd yn cael mynediad i lawer o'r wybodaeth sylfaenol 162 00:08:50,940 --> 00:08:52,610 cynnwys yn y rhaglen. 163 00:08:52,610 --> 00:08:55,260 >> Yn fwy penodol, mae nifer swyddogaethau sydd gennyf, 164 00:08:55,260 --> 00:08:58,000 enwau'r swyddogaethau hynny, newidynnau, y mathau 165 00:08:58,000 --> 00:09:01,730 bod newidynnau hynny, ac amrywiaeth o bethau eraill sy'n helpu y dadnamydd 166 00:09:01,730 --> 00:09:04,350 perfformio ei weithrediad. 167 00:09:04,350 --> 00:09:06,600 Nawr mae 'na rhywbeth arall mae hynny'n bwysig sôn 168 00:09:06,600 --> 00:09:10,280 pan fyddwn ni'n trafod rhedeg rhaglen yn y modd hwn. 169 00:09:10,280 --> 00:09:13,660 >> Sylwch fod ganddo mewn gwirionedd magu tab newydd yn ein consol 170 00:09:13,660 --> 00:09:14,780 ar hyd y gwaelod. 171 00:09:14,780 --> 00:09:18,600 Mae'n rhaid i ni ryngweithio mwyach yn uniongyrchol gyda'r ffenestr terfynell. 172 00:09:18,600 --> 00:09:21,420 Ond mae tab newydd hyn yn mewn gwirionedd derfynnell ffenest. 173 00:09:21,420 --> 00:09:26,710 'I jyst yn benodol i redeg rhaglen yr ydym wedi'i greu. 174 00:09:26,710 --> 00:09:29,270 >> Sylwch fod ar y gwaelod, yn cyfuniad â rhywfaint o allbwn 175 00:09:29,270 --> 00:09:33,500 trwy chlang y casglwr a GDB, y gallwn anwybyddu i raddau helaeth, 176 00:09:33,500 --> 00:09:37,570 y mae mewn gwirionedd yn dangos allbwn ein rhaglen ar yr union gwaelod. 177 00:09:37,570 --> 00:09:41,240 Nawr mae'n bwysig sylweddoli bod hyn yn un ffenestr mewn gwirionedd 178 00:09:41,240 --> 00:09:43,360 Bydd yn dangos i chi y allbwn o'r eich rhaglen 179 00:09:43,360 --> 00:09:47,190 ond gall hefyd dderbyn mewnbwn ar gyfer y rhaglen honno, yn ogystal. 180 00:09:47,190 --> 00:09:49,260 >> Felly rhybudd sy'n dweud rhowch rif, 181 00:09:49,260 --> 00:09:53,050 sef yr un allbwn a oedd gennym Roedd yn y ffenestr terfynell o'r blaen. 182 00:09:53,050 --> 00:09:55,510 Ond mae bellach wedi ei ddangos yn tab newydd hwn. 183 00:09:55,510 --> 00:09:56,550 Gallaf mewnbwn rhif. 184 00:09:56,550 --> 00:10:00,900 Ac y bydd yn mewn gwirionedd swyddogaeth fel yr ydym yn ei ddisgwyl 185 00:10:00,900 --> 00:10:05,890 gan ddangos i ni ein debug, allbwn, yr allbwn a allai fod yn buggy, 186 00:10:05,890 --> 00:10:07,010 fel yr ydym wedi ei weld o'r blaen. 187 00:10:07,010 --> 00:10:10,460 Ac ar y gwaelod iawn, mae'n mewn gwirionedd wedi rhywfaint o allbwn ychwanegol 188 00:10:10,460 --> 00:10:14,550 o GDP dim ond dweud bod mae'r rhaglen hon wedi cwblhau. 189 00:10:14,550 --> 00:10:16,655 >> Nawr fel y gwelsoch yn hyn rhedeg benodol trwy, 190 00:10:16,655 --> 00:10:19,370 nid oedd yn arbennig o ddefnyddiol oherwydd hyd yn oed 191 00:10:19,370 --> 00:10:23,740 er ein bod wedi cael y fwydlen debugger dod i fyny, roedd hyn yn dal i fod yn rhaglen olynol. 192 00:10:23,740 --> 00:10:26,790 Ar unrhyw bwynt yn gwneud hynny mewn gwirionedd oedi gweithredu i ni 193 00:10:26,790 --> 00:10:30,767 i allu archwilio pob un y newidynnau a gynhwysir yn. 194 00:10:30,767 --> 00:10:32,850 Mae rhywbeth arall bod yn rhaid iddynt ei wneud er 195 00:10:32,850 --> 00:10:36,910 i gael GDB i gydnabod ein bod am i oedi gweithredu i roi'r rhaglen 196 00:10:36,910 --> 00:10:42,820 ac nid dim ond gadael iddo fynd yn ei flaen Fel arfer, fel y byddem mewn unrhyw achos arall. 197 00:10:42,820 --> 00:10:45,530 >> Er mwyn oedi gweithredu, ar ryw llinell benodol, 198 00:10:45,530 --> 00:10:47,830 mae angen i ni greu beth sydd Gelwir pwynt egwyl. 199 00:10:47,830 --> 00:10:52,670 A phwynt egwyl yn cael ei greu yn hawdd iawn yn hyn o CS50 IDE drwy gymryd eich llygoden 200 00:10:52,670 --> 00:10:57,090 a chlicio uniongyrchol i'r chwith o ryw rif llinell benodol. 201 00:10:57,090 --> 00:10:59,920 Ar ôl i mi wneud hynny, dot coch Ymddengys, sy'n dangos 202 00:10:59,920 --> 00:11:02,300 bod y llinell bellach yn bwynt egwyl. 203 00:11:02,300 --> 00:11:07,540 >> A'r tro nesaf yr wyf yn rhedeg GDB, mae'n Bydd rhoi'r gorau i weithredu ar y pwynt torri 204 00:11:07,540 --> 00:11:10,280 pan fydd yn cyrraedd y llinell o god. 205 00:11:10,280 --> 00:11:12,230 Yn awr mae hyn yn bwysig beth i wireddu 206 00:11:12,230 --> 00:11:16,140 nad yw'n reidrwydd y achos bod pob llinell o god 207 00:11:16,140 --> 00:11:17,880 mewn gwirionedd hygyrch. 208 00:11:17,880 --> 00:11:23,780 Pe bawn i greu swyddogaeth i fyny yma, er f-- ddi-rym example-- 209 00:11:23,780 --> 00:11:31,230 a dim ond gwneud llinell print Yma-- helo world-- byth os wyf yn galw y swyddogaeth hon, 210 00:11:31,230 --> 00:11:34,770 bydd yn wir bod, os byddaf yn gosod pwynt torri yma, 211 00:11:34,770 --> 00:11:36,220 Ni fydd y swyddogaeth yn cael eu galw. 212 00:11:36,220 --> 00:11:38,310 Ac am hynny, mae hyn yn pwynt torri arbennig 213 00:11:38,310 --> 00:11:43,040 Bydd byth yn oedi mewn gwirionedd gweithredu i roi'r rhaglen. 214 00:11:43,040 --> 00:11:48,020 >> Felly, gadewch i ni ddweud fy mod yn creu yn gywir pwynt toriad ar rai llinell o god 215 00:11:48,020 --> 00:11:50,340 Bydd hynny mewn gwirionedd yn cael ei weithredu. 216 00:11:50,340 --> 00:11:53,470 Nawr yn yr achos hwn, dyma'r llinell gyntaf yn y brif swyddogaeth. 217 00:11:53,470 --> 00:11:56,630 Felly, bydd yn sicr yn wir hynny, cyn gynted ag yr wyf yn dechrau gweithredu, 218 00:11:56,630 --> 00:11:58,580 bydd y llinell gyntaf un yn cael ei gyrraedd. 219 00:11:58,580 --> 00:12:00,230 Bydd GDB oedi gweithredu. 220 00:12:00,230 --> 00:12:04,100 Ac yna, byddaf yn gallu ryngweithio gyda'r debugger. 221 00:12:04,100 --> 00:12:08,480 >> Gallwch osod llinellau lluosog fel torbwyntiau, os hoffech. 222 00:12:08,480 --> 00:12:11,365 Gallwn hefyd greu llinell i fyny yma yn y rhan honno o'r cod 223 00:12:11,365 --> 00:12:12,490 na fydd byth yn cael ei gyrraedd. 224 00:12:12,490 --> 00:12:14,744 A gallwn hefyd sefydlu un ymhellach isod. 225 00:12:14,744 --> 00:12:16,660 Y rheswm y byddem am wneud hyn rydym chi helpu 226 00:12:16,660 --> 00:12:19,119 mynd i mewn i ychydig yn fwy manylion mewn dim ond eiliad. 227 00:12:19,119 --> 00:12:21,660 Felly am y tro, gadewch i mi jyst analluoga y pwyntiau egwyl ychwanegol 228 00:12:21,660 --> 00:12:24,940 fel y gallwn edrych ar yr hyn sy'n digwydd pan fydd gen i un egwyl sengl 229 00:12:24,940 --> 00:12:27,650 pwynt yn fy rhaglen. 230 00:12:27,650 --> 00:12:29,410 Rwyf wedi gwneud rhywfaint o newidiadau i'r rhaglen hon. 231 00:12:29,410 --> 00:12:30,750 Felly, mae angen i mi i'w achub. 232 00:12:30,750 --> 00:12:34,490 Byddaf yn clicio debug fel y gallaf dechrau casglu ac yna 233 00:12:34,490 --> 00:12:36,880 gweithredu i roi'r debugger. 234 00:12:36,880 --> 00:12:40,632 >> Byddwn yn gweld, ar ôl eiliadau, mae'r llinell ein bod yn dewis fel yr egwyl 235 00:12:40,632 --> 00:12:43,360 pwynt yn cael ei hamlygu mewn melyn. 236 00:12:43,360 --> 00:12:47,440 Gallwn hefyd yn sylwi bod yn y dde uchaf yn y panel dadfygio 237 00:12:47,440 --> 00:12:50,940 bod yr eicon oedi wedi troi i mewn i ychydig o eicon chwarae. 238 00:12:50,940 --> 00:12:54,710 Mae hyn yn golygu ein bod wedi oedi gweithredu, yn yr achos penodol hwn. 239 00:12:54,710 --> 00:12:57,840 Ac yn taro'r botwm Chwarae byddai yn ein galluogi i ailddechrau gweithredu 240 00:12:57,840 --> 00:13:00,000 ar y pwynt penodol. 241 00:13:00,000 --> 00:13:03,240 >> Sylwch fod yna un neu ddau o eraill botymau sydd ar gael yn y panel dadfygio, 242 00:13:03,240 --> 00:13:04,220 yn ogystal. 243 00:13:04,220 --> 00:13:09,470 Camu drosodd, sy'n caniatáu i mi gweithredu fod un llinell o god 244 00:13:09,470 --> 00:13:14,030 ac yn cam dros i'r llinell honno i'r un nesaf, sydd, yn yr achos hwn, 245 00:13:14,030 --> 00:13:17,060 yn golygu bod y printf datganiad yn cael ei chyflawni. 246 00:13:17,060 --> 00:13:22,310 A bydd yn wedyn yn oedi gweithredu ar-lein 13, fel cynifer. 247 00:13:22,310 --> 00:13:25,090 >> Ac mae hefyd yn gam i mewn i swyddogaeth, a oedd yn 248 00:13:25,090 --> 00:13:28,950 yn ddefnyddiol os wyf wedi creu eraill swyddogaethau mewn mannau eraill yn y cod ffynhonnell. 249 00:13:28,950 --> 00:13:31,420 Ac yr wyf am i gamu i mewn swyddogaethau hynny yn hytrach na 250 00:13:31,420 --> 00:13:33,050 gweithredu swyddogaeth honno yn ei chyfanrwydd. 251 00:13:33,050 --> 00:13:37,279 Ond byddwn yn edrych yn fwy ar y cam i mewn i swyddogaeth mewn dim ond eiliad. 252 00:13:37,279 --> 00:13:40,320 Nawr sylwi ar rai pethau eraill sy'n bodoli mewn gwirionedd o fewn y panel dadfygio. 253 00:13:40,320 --> 00:13:44,110 >> Mae gennym y panel hwn a elwir yn ffoniwch stac, sy'n dangos i ni 254 00:13:44,110 --> 00:13:45,300 ble yn union yr ydym. 255 00:13:45,300 --> 00:13:48,550 Yn yr achos hwn, rydym yn y tu mewn o'r prif swyddogaeth. 256 00:13:48,550 --> 00:13:50,880 Enw ein sgript yn cael ei count.c. 257 00:13:50,880 --> 00:13:53,820 Ac rydym yn digwydd i fod ar llinell 13, colofn un, a oedd yn 258 00:13:53,820 --> 00:13:58,950 yn union yr hyn y rhanbarth a amlygwyd o'r cod ffynhonnell yn dangos, yn ogystal. 259 00:13:58,950 --> 00:14:02,435 >> Nawr yn sylwi bod hyn hefyd yn dangos o dan yr adran newidyn lleol 260 00:14:02,435 --> 00:14:06,710 pob un o'r newidynnau sy'n yn bodoli o fewn y swyddogaeth hon. 261 00:14:06,710 --> 00:14:08,930 Mae'n bwysig nodi bod pob un o'r newidynnau 262 00:14:08,930 --> 00:14:12,580 fydd yn ymddangos yn newidyn lleol hwn adran o fewn swyddogaeth, 263 00:14:12,580 --> 00:14:14,380 hyd yn oed cyn iddynt gael eu diffinio. 264 00:14:14,380 --> 00:14:19,160 Gallwn weld yma fod gennym newidyn Gelwir num, mae gwerth diofyn o 0, 265 00:14:19,160 --> 00:14:21,280 ac y mae o'r math int. 266 00:14:21,280 --> 00:14:24,110 >> Nawr cyn i ni mewn gwirionedd yn ymgychwyn pob un o'r newidynnau hyn, 267 00:14:24,110 --> 00:14:26,685 nid ydym yn o angenrheidrwydd sicr o weld gwerth o 0. 268 00:14:26,685 --> 00:14:29,200 Ac yn dibynnu ar executions eraill eich bod wedi perfformio 269 00:14:29,200 --> 00:14:32,020 a chyflwr eich cof pan chi mewn gwirionedd yn rhedeg y rhaglen hon, 270 00:14:32,020 --> 00:14:34,605 efallai y byddwch yn dod o hyd i eich bod yn nid ydynt yn gweld gwerth o 0 271 00:14:34,605 --> 00:14:36,550 ac, yn lle hynny, mae rhai rhifau crazy eraill. 272 00:14:36,550 --> 00:14:38,390 >> Ond peidiwch â phoeni am hynny. 273 00:14:38,390 --> 00:14:44,610 Dyw hi ddim yn mynd i fod yn berthnasol tan chi mewn gwirionedd yn ymgychwyn gwerth. 274 00:14:44,610 --> 00:14:49,630 Nawr yn yr achos hwn, gallwn weld bod Rwyf wedi perfformio rhai allbynnau. 275 00:14:49,630 --> 00:14:52,131 A dwi'n, ar hyn o bryd, seibio gweithredu. 276 00:14:52,131 --> 00:14:53,880 Ond yn yr achos hwn, beth Fi 'n sylweddol am ei wneud 277 00:14:53,880 --> 00:14:58,060 yw i gamu bellach dros y llinell hon o god fel y gallaf mewn gwirionedd 278 00:14:58,060 --> 00:15:04,390 gwestiynu'r defnyddiwr ar gyfer y int sy'n rydym am eu defnyddio yn ein rhaglen. 279 00:15:04,390 --> 00:15:07,060 >> Nawr yn yr achos hwn, pan fydd Yr wyf yn taro camu drosodd, rhybudd 280 00:15:07,060 --> 00:15:11,940 bod y Pause neu yn hytrach y Ail-ddechrau botwm wedi newid i botwm Saib hwn 281 00:15:11,940 --> 00:15:14,022 oherwydd bod y cod hwn yn gweithredu mewn gwirionedd. 282 00:15:14,022 --> 00:15:15,730 Beth sy'n digwydd ar hyn o bryd yw ei bod yn 283 00:15:15,730 --> 00:15:21,630 aros i ni i mewnbwn rhywfaint o wybodaeth fel y gallwn weld gan ein testun allbwn 284 00:15:21,630 --> 00:15:23,600 ar yr union gwaelod. 285 00:15:23,600 --> 00:15:25,787 >> Felly ar hyn o bryd, mae hyn yn Nid seibio mewn gwirionedd, 286 00:15:25,787 --> 00:15:28,620 er ei fod, rhyw fath o, yn ymddangos i fod oherwydd nid oes dim yn digwydd. 287 00:15:28,620 --> 00:15:32,360 Ond mae'n digwydd dim ond fel bod yn fy achos penodol ar linell 13, 288 00:15:32,360 --> 00:15:34,210 Im 'yn aros am fewnbwn y defnyddiwr. 289 00:15:34,210 --> 00:15:39,130 Ac nid felly GDB yn gallu arolygu rhaglen gan ei fod yn rhedeg. 290 00:15:39,130 --> 00:15:43,370 >> Nawr y tro nesaf yr wyf yn mynd i mewn rhai input-- felly byddaf yn mynd i mewn y rhif hwnnw 5, 291 00:15:43,370 --> 00:15:46,140 fel yr ydym wedi gweld yn y past-- Dychwelyd taro, ac yr ydym yn 292 00:15:46,140 --> 00:15:51,430 sylwi bod, ar unwaith, seibiau GDB ac, unwaith eto, yn tynnu sylw at y llinell nesaf. 293 00:15:51,430 --> 00:15:55,320 Ond yn sylwi ar hynny yn awr, fel ganlyniad i'n mewnbynnu gwerth, 294 00:15:55,320 --> 00:15:58,930 rydym wedi diweddaru y gwerth y tu mewn o'n newidynnau lleol, sy'n 295 00:15:58,930 --> 00:16:05,560 yn ddefnyddiol iawn i wybod yn union beth y rhif hwnnw mewn cof. 296 00:16:05,560 --> 00:16:10,650 >> Nawr gallaf ganiatáu rhaglen hon barhau chwarae tan ddiwedd ei weithredu 297 00:16:10,650 --> 00:16:12,570 gan daro Ail-ddechrau. 298 00:16:12,570 --> 00:16:16,410 Gallwn weld fod yn gyflym iawn mae'r gorffeniad rhaglen gweithredu 299 00:16:16,410 --> 00:16:19,790 gyda'r un allbwn yr ydym o'r blaen, mae'r dadnamydd yn cau, 300 00:16:19,790 --> 00:16:23,170 ac yn awr y rhaglen hon wedi dod i ben yn gyfan gwbl. 301 00:16:23,170 --> 00:16:25,320 >> Yr wyf yn dangos mai dim ond ar gyfer y ddibenion weld beth 302 00:16:25,320 --> 00:16:27,280 sy'n digwydd pan fyddwn mewn gwirionedd yn taro Ail-ddechrau. 303 00:16:27,280 --> 00:16:30,640 Ond rydym mewn gwirionedd yn mynd i eisiau mynd yn ôl i mewn i raglen hon 304 00:16:30,640 --> 00:16:33,820 fel y gallwn geisio debug yn union beth sy'n digwydd. 305 00:16:33,820 --> 00:16:37,980 Nawr bod Im 'yn arfer y dadnamydd, caf oes angen y datganiadau printf dadfygio. 306 00:16:37,980 --> 00:16:43,860 >> Felly, gallwn i gael gwared arnynt gan y byddaf yn ei wneud Erbyn hyn dim ond i fynd yn ôl at ein cod symlach 307 00:16:43,860 --> 00:16:45,950 ein bod wedi funud yn ôl. 308 00:16:45,950 --> 00:16:48,790 Nawr, pan fyddaf yn achub y rhaglen a'i chyflawni, 309 00:16:48,790 --> 00:16:53,700 bydd yn, unwaith eto, ewch i fod cychwynnol torri pwynt bod gen i ar linell 11. 310 00:16:53,700 --> 00:16:57,700 A byddaf yn gallu archwilio fy newidynnau gan fy mod am ei wneud. 311 00:16:57,700 --> 00:17:00,695 >> 'I jyst yn digwydd fel bod hyn yn Nid yw rhan yn ddiddorol iawn, 312 00:17:00,695 --> 00:17:04,364 Ac yr wyf yn gwybod fy mod i'n mynd argraffu'r datganiad hwn. 313 00:17:04,364 --> 00:17:05,280 Rhowch rif. 314 00:17:05,280 --> 00:17:08,099 Ac yna, yr wyf yn gwybod fy mod i'n mynd i ofyn i'r defnyddiwr ar gyfer y cyfanrif. 315 00:17:08,099 --> 00:17:13,329 Felly efallai, Fi 'n weithredol am symud fy torri pwynt ychydig ymhellach i lawr. 316 00:17:13,329 --> 00:17:16,710 >> Gallwch dynnu pwyntiau egwyl drwy glicio, unwaith eto, yn uniongyrchol 317 00:17:16,710 --> 00:17:18,460 i'r chwith o'r y rhif llinell. 318 00:17:18,460 --> 00:17:22,200 Bydd hynny'n dot coch yn diflannu, gan nodi bod y pwynt torri yn awr wedi mynd. 319 00:17:22,200 --> 00:17:24,780 Nawr yn yr achos hwn, gweithredu wedi cael ei seibio. 320 00:17:24,780 --> 00:17:27,770 Ac felly nid yw'n mewn gwirionedd yn mynd i ailddechrau yn yr achos penodol hwnnw. 321 00:17:27,770 --> 00:17:30,210 Ond gallaf osod seibiant pwyntio ychydig yn ddiweddarach. 322 00:17:30,210 --> 00:17:33,880 >> A phan wyf yn awr yn ailddechrau fy cod, bydd yn ailddechrau ac yn dweud 323 00:17:33,880 --> 00:17:36,190 pwynt y pwynt egwyl. 324 00:17:36,190 --> 00:17:37,374 Unwaith eto, yr wyf yn taro Ail-ddechrau. 325 00:17:37,374 --> 00:17:39,040 Nid yw'n ymddangos fel unrhyw beth sy'n digwydd. 326 00:17:39,040 --> 00:17:41,450 Ond mae hynny'n oherwydd bod fy cod yn aros am fewnbwn. 327 00:17:41,450 --> 00:17:47,900 Byddaf yn mynd i mewn i rif 5, daro Chofnoda, a yn awr y bydd y pwynt torri nesaf yn cael ei daro. 328 00:17:47,900 --> 00:17:50,570 >> Nawr yn yr achos hwn, mae hyn yn yw'r llinell o god 329 00:17:50,570 --> 00:17:53,820 hynny, o'r blaen, roeddem yn gwybod digwydd bod bygi. 330 00:17:53,820 --> 00:17:57,590 Felly gadewch i ni werthuso'r hyn sy'n digwydd ar y pwynt penodol mewn amser. 331 00:17:57,590 --> 00:18:02,620 Pan linell cael ei amlygu, mae hyn yn Nid yw llinell wedi cael ei ddienyddio eto. 332 00:18:02,620 --> 00:18:06,490 Felly, yn yr achos hwn, gallwn weld bod gennyf nifer, a oedd yn 333 00:18:06,490 --> 00:18:11,610 Mae gen i yn gyfanrif o'r enw num sydd â gwerth 5. 334 00:18:11,610 --> 00:18:15,090 Ac yr wyf i'n mynd i fod yn perfformio rhywfaint cwestiwn ar y rhif. 335 00:18:15,090 --> 00:18:20,130 >> Os byddaf yn cam dros hynny, a allwn sylwi bod y gwerth am num 336 00:18:20,130 --> 00:18:23,780 wedi newid yn unol â'r rhifyddeg yr ydym wedi ei wneud mewn gwirionedd. 337 00:18:23,780 --> 00:18:26,810 Ac yn awr ein bod yn y tu mewn o hyn ar gyfer dolen 338 00:18:26,810 --> 00:18:29,090 neu yn awr bod y ddolen ar gyfer ei hun yn ei amlygu, 339 00:18:29,090 --> 00:18:32,450 gwelwn fod gennym newydd newidyn a elwir ff bod 340 00:18:32,450 --> 00:18:35,370 yn mynd i gael ei ddefnyddio mewn un ar gyfer ddolen. 341 00:18:35,370 --> 00:18:38,230 >> Nawr cofiwch cyn fy mod crybwyll bod weithiau eich bod yn 342 00:18:38,230 --> 00:18:43,470 mynd i weld rhyw fath o crazy rhifau fel ball cyn y rhif hwnnw 343 00:18:43,470 --> 00:18:45,530 neu fod newidyn yn initialized mewn gwirionedd. 344 00:18:45,530 --> 00:18:49,040 Gallwn weld bod union yma yn y newidyn hwn 345 00:18:49,040 --> 00:18:51,345 Gelwir ff, nad sydd wedi wedi'i ymgychwyn eto 346 00:18:51,345 --> 00:18:53,560 ar adeg dynnu sylw. 347 00:18:53,560 --> 00:18:57,070 Ond gallwn weld ei fod ganddo rai rhif na fyddem mewn gwirionedd yn ei ddisgwyl. 348 00:18:57,070 --> 00:18:57,620 >> Mae hynny'n iawn. 349 00:18:57,620 --> 00:18:59,661 Peidiwch â phoeni am y peth oherwydd ein bod wedi nid mewn gwirionedd 350 00:18:59,661 --> 00:19:04,970 initialized y rhif hwnnw hyd nes i mi cam dros y llinell hon a gwerth 351 00:19:04,970 --> 00:19:08,560 ff wedi'i ymgychwyn i werth 1. 352 00:19:08,560 --> 00:19:11,400 Felly, i weld bod hynny mewn gwirionedd yr achos, gadewch i ni gamu drosodd. 353 00:19:11,400 --> 00:19:14,420 Gallwn yn awr weld bod y llinell wedi cael ei ddienyddio. 354 00:19:14,420 --> 00:19:17,000 Ac rydym yn awr yn tynnu sylw at llinell printf hwn. 355 00:19:17,000 --> 00:19:22,230 >> A gallwn yn awr weld sut mae ein gwerthoedd o i a 3 wedi newid dros amser. 356 00:19:22,230 --> 00:19:26,450 Mae hyn yn ddefnyddiol iawn i'w wneud, mewn gwirionedd, yw i gamu dros linellau dro ar ôl tro. 357 00:19:26,450 --> 00:19:30,480 A allwch chi ddod o hyd i beth mewn gwirionedd sy'n digwydd tu mewn i'ch gyfer dolen 358 00:19:30,480 --> 00:19:33,660 a beth sy'n digwydd i'r newidynnau y tu mewn o hynny ar gyfer dolen 359 00:19:33,660 --> 00:19:39,200 fel y gweithredu rhaglen bydd un cam ar y tro. 360 00:19:39,200 --> 00:19:41,110 >> Nawr ar y pwynt hwn, yr wyf yn camu dros dim ond digon 361 00:19:41,110 --> 00:19:44,210 fy mod bellach mod ar ddiwedd fy rhaglen. 362 00:19:44,210 --> 00:19:46,980 Os byddaf yn cam dros hynny, bydd yn mewn gwirionedd yn peidio gweithredu 363 00:19:46,980 --> 00:19:48,860 fel y gwelsom yn y gorffennol. 364 00:19:48,860 --> 00:19:52,110 Gadewch i mi ailgychwyn hyn, unwaith eto, felly y gallaf dynnu rhywbeth arall allan, 365 00:19:52,110 --> 00:19:53,320 yn ogystal. 366 00:19:53,320 --> 00:19:55,350 >> Yn yr achos hwn, mae'n yn awr yn gofyn i mi, unwaith eto, 367 00:19:55,350 --> 00:19:57,100 ar gyfer nifer, a oedd yn Byddaf, unwaith eto, mynd i mewn. 368 00:19:57,100 --> 00:20:00,300 Ond y tro hwn, yr wyf i'n mynd i fynd i mewn yn nifer fwy fel bod y ddolen ar gyfer 369 00:20:00,300 --> 00:20:02,540 Bydd ailadrodd gwaith yn fwy. 370 00:20:02,540 --> 00:20:06,090 Yn yr achos hwn, dw i'n mynd i fynd i mewn gwerth o 11. 371 00:20:06,090 --> 00:20:08,390 >> Nawr eto oherwydd byddwn i'n gosod pwynt toriad yn llinell 15, 372 00:20:08,390 --> 00:20:10,490 mae'n mynd i dynnu sylw at y llinell. 373 00:20:10,490 --> 00:20:12,980 Gallwn weld bod ein rhif 11 yn gywir 374 00:20:12,980 --> 00:20:15,560 gynrychioli yn ein newidynnau lleol. 375 00:20:15,560 --> 00:20:22,460 Camu dros hynny, gallwn yn awr gwyliwch beth sy'n digwydd i'n werth i 376 00:20:22,460 --> 00:20:25,680 wrth i ni symud ymlaen y tu mewn o hyn ar gyfer dolen. 377 00:20:25,680 --> 00:20:31,960 Mae'n mynd yn gynyddrannedig bob tro yr ydym yn yn cyrraedd brig hynny ar gyfer ddolen. 378 00:20:31,960 --> 00:20:35,110 >> Bellach yn un o'r pethau y gallai'r fod yn ddefnyddiol i'w wneud yn ystod gweithredu 379 00:20:35,110 --> 00:20:40,490 y rhaglen hon yw i mi mewn gwirionedd newid y nghanol afon newidynnau i weld 380 00:20:40,490 --> 00:20:42,450 beth fydd yn digwydd i fy rhaglen. 381 00:20:42,450 --> 00:20:46,540 Yn yr achos hwn, gallaf mewn gwirionedd dwbl cliciwch ar y gwerth. 382 00:20:46,540 --> 00:20:48,040 Sylwch fod yn dod yn faes testun. 383 00:20:48,040 --> 00:20:50,280 >> Nawr gallaf fynd i mewn gwahanol gwerthfawrogi yn gyfan gwbl 384 00:20:50,280 --> 00:20:55,700 i weld sut mae fy rhaglen yn ymddwyn pan fyddaf wedi newid y newidyn. 385 00:20:55,700 --> 00:20:59,560 Nawr yn yr achos hwn, y newidyn ff bellach yn cynnwys gwerth 10. 386 00:20:59,560 --> 00:21:02,810 Ond mae'r rhaglen yn dal i fod oedi'r yn gweithredu. 387 00:21:02,810 --> 00:21:07,610 Pan fyddaf yn camu drosodd, yr wyf yn gweld bod y gwerth i, yr wyf yn mynd â 10, 388 00:21:07,610 --> 00:21:12,170 Nid yw yn fwy na gwerth num, a oedd unwaith yn achosi i'r ddolen ar gyfer 389 00:21:12,170 --> 00:21:14,240 i roi'r gorau i weithredu. 390 00:21:14,240 --> 00:21:16,210 >> Nawr nid dyna'r unig rheswm pam y byddech 391 00:21:16,210 --> 00:21:19,450 am ei addasu y newidyn yn ei le. 392 00:21:19,450 --> 00:21:22,210 Efallai y byddwch mewn gwirionedd yn eisiau i geisio addasu felly 393 00:21:22,210 --> 00:21:24,590 y gallwch barhau gweithredu dolen 394 00:21:24,590 --> 00:21:27,370 neu fel y gallwch addasu rhywfaint o werth cyn iddo 395 00:21:27,370 --> 00:21:32,630 yn cyrraedd rhyw set benodol o rifyddeg eich bod ar fin perfformio. 396 00:21:32,630 --> 00:21:36,210 >> Felly nawr ein bod mewn gwirionedd yn newid y gwerth y ff wrth i'r rhaglen gael ei gweithredu, 397 00:21:36,210 --> 00:21:39,540 mae'n achosi i'r i ddolen i roi'r gorau iddi cyn pryd oherwydd, yn sydyn, fi 398 00:21:39,540 --> 00:21:42,770 digwydd bod yn fwy na'r gwerth o num, sy'n golygu bod hynny ar gyfer dolen 399 00:21:42,770 --> 00:21:45,410 sydd ei angen mwyach i gael ei ddienyddio. 400 00:21:45,410 --> 00:21:48,780 Bellach, mae'n digwydd i fod yn achos ein bod yn newid y gwerth i 401 00:21:48,780 --> 00:21:53,270 pan fydd y llinell 17 Amlygwyd, sef y pwynt mewn amser 402 00:21:53,270 --> 00:21:56,280 bod y ddolen ar gyfer gweithredu yn cael ei werthuso mewn gwirionedd. 403 00:21:56,280 --> 00:22:00,210 >> Os wyf wedi newid y gwerth ff ar linell wahanol, dyweder 19, 404 00:22:00,210 --> 00:22:03,360 byddem wedi gweld yn wahanol ymddygiad gan fod llinell 19 byddai 405 00:22:03,360 --> 00:22:08,310 wedi gweithredu cyn y ddolen cyflwr ei reevaluated. 406 00:22:08,310 --> 00:22:11,900 Nawr ar y pwynt hwn, rwy'n, unwaith eto, ar ddiwedd y rhaglen hon. 407 00:22:11,900 --> 00:22:15,707 A gallaf ganiatáu i hyn i fynd ymlaen i caniatáu fy rhaglen i roi'r gorau iddi yn naturiol. 408 00:22:15,707 --> 00:22:18,290 Ond mae un neu ddau o bethau sy'n bwysig i fynd i ffwrdd 409 00:22:18,290 --> 00:22:19,960 o'r drafodaeth hon penodol. 410 00:22:19,960 --> 00:22:22,490 Mae angen i chi werthuso eich rhagdybiaethau eich hun 411 00:22:22,490 --> 00:22:24,710 ynghylch sut y dylai'r cod fod yn ymddwyn. 412 00:22:24,710 --> 00:22:28,220 Unrhyw bryd y byddwch yn meddwl bod rhai darn o god eich bod yn gwybod yn digwydd i'r gwaith, 413 00:22:28,220 --> 00:22:30,940 a allai fod yn baner goch i fynd yn ôl a gwerthuso, a gofalwch eich bod 414 00:22:30,940 --> 00:22:33,470 bod eich rhagdybiaeth o sut y cod yn gweithredu 415 00:22:33,470 --> 00:22:38,290 mewn gwirionedd yn wir i sut y mae fynegir yn eich cod ffynhonnell. 416 00:22:38,290 --> 00:22:41,300 >> Ond hyd yn oed mwy i bwynt oedd, pan fyddwn yn defnyddio'r dadnamydd, 417 00:22:41,300 --> 00:22:43,920 gallwch roi torbwyntiau yn gwahanol linellau o god, 418 00:22:43,920 --> 00:22:48,110 a fydd yn achosi y dadnamydd i oedi gweithredu ym mhob un o'r llinellau hynny 419 00:22:48,110 --> 00:22:52,210 fel y gallwch werthuso cof neu hyd yn oed newid yn ei le. 420 00:22:52,210 --> 00:22:55,630 Ac eto, cofiwch eich bod yn gallu creu torbwyntiau lluosog er mwyn i chi 421 00:22:55,630 --> 00:23:00,390 Gall hefyd ailddechrau gweithredu, sgipio dros rhannau mawr o'r cod, 422 00:23:00,390 --> 00:23:04,790 a bydd yn oedi yn awtomatig ar y pwynt egwyl nesaf. 423 00:23:04,790 --> 00:23:07,760 >> Mae mewn gwirionedd yn fwy datblygedig nodweddion y dadnamydd, yn ogystal. 424 00:23:07,760 --> 00:23:10,170 Ond bydd rhaid i ni eich cyfeirio i rai fideos dilynol 425 00:23:10,170 --> 00:23:14,090 er mwyn canfod 'n sylweddol ar wahân sut i ddefnyddio swyddogaethau penodol hynny. 426 00:23:14,090 --> 00:23:15,990 Am y tro, diolch i chi yn fawr iawn am wylio. 427 00:23:15,990 --> 00:23:18,080 A debugging pob lwc.