>> DOUG LLOYD: B眉t眉n h眉ququ gdb.
M蓹hz n蓹dir?
Dayan谋r bel蓹 gdb, GNU Debugger 眉莽眉n,
h蓹qiq蓹t蓹n z蓹hmli vasit蓹dir ki, biz ed蓹 bil蓹rsiniz Bizim proqramlar谋 debug biz蓹 k枚m蓹k etm蓹k 眉莽眉n istifad蓹,
v蓹 ya 艧eyi oldu臒u tapmaq bizim proqramlar谋 yanl谋艧 gedir.
Gdb, q蓹rib蓹 g眉cl眉, lakin bu 莽谋x谋艧 v蓹 qar艧谋l谋ql谋
bir az sirli ola bil蓹r.
Bu ad蓹t蓹n bir command line al蓹t var, v蓹 Bu siz蓹 mesaj bir 莽ox atmaq olar.
V蓹 bu c眉r a臒谋r bil蓹rsiniz ged蓹n d蓹qiq n蓹 analiz.
Xo艧b蓹xtlikd蓹n, biz q蓹bul etdik add谋mlar sizin 眉莽眉n bu problemi h蓹ll etm蓹k
CS50 vasit蓹sil蓹 i艧 kimi.
Siz qrafik istifad蓹 edirsinizs蓹 ay谋klama, m蓹nim h蓹mkar谋m Dan
Armandarse olduqca dan谋艧d谋 bir video haqq谋nda bir az ki,
burada olmal谋d谋r 陌ndi, siz蓹 laz谋m ola bil蓹r
Bu command line istifad蓹 etm蓹k tools gdb il蓹 i艧l蓹m蓹k 眉莽眉n.
Siz CS50 i艧 edirsinizs蓹 IDE, bunu etm蓹k laz谋m deyil.
Amma de臒ilseniz CS50 IDE 莽al谋艧an,
b蓹lk蓹 bir versiyas谋n谋 istifad蓹 ed蓹r蓹k, CS50 Arac谋 ki,
v蓹 ya ba艧qa bir Linux 蓹m蓹liyyat gdb sistemi, bu y眉kl眉
istifad蓹 etm蓹k laz谋m ola bil蓹r bu command line al蓹tl蓹r.
>> V蓹 ild蓹n bil蓹r bu ki, n蓹 etm蓹k laz谋md谋r
nec蓹 anlamaq 眉莽眉n faydal谋 GDB skript sat谋r谋 i艧l蓹yir.
Ancaq yen蓹 d蓹, siz de臒ilseniz CS50 IDE istifad蓹 ed蓹r蓹k, siz
qrafik ay谋klama istifad蓹 ed蓹 bil蓹rsiniz ki, IDE daxil edilir.
Bel蓹 艧eyl蓹r il蓹 ba艧lamaq 眉莽眉n Gdb ay谋klama ba艧lamaq 眉莽眉n
x眉susi prosesi proqram, siz b眉t眉n laz谋m
GDB t蓹qib tipi Proqram ad谋 il蓹.
Bel蓹 ki, m蓹s蓹l蓹n, proqram 蓹g蓹r salam, siz gdb salam yaz谋n ki.
>> Bunu zaman, olacaq GDB m眉hit qoparmaq 眉莽眉n.
Sizin tez d蓹yi艧dirm蓹k v蓹 蓹v蓹zin蓹 olan ad蓹t蓹n n蓹
Siz h蓹r 艧eyi yaz谋n zaman command x蓹tti ls da,
Sizin tipik b眉t眉n cd-- Linux, sizin tez 蓹mrl蓹ri
, y蓹qin ki, bir 艧ey d蓹yi艧蓹c蓹k parantez kimi gdb parantez.
脟眉nki, yeni gdb tez var Siz gdb m眉hit daxilind蓹 ist蓹yirik.
Sonra ki, 蓹traf m眉hit daxilind蓹, iki 蓹sas 蓹mrl蓹ri var
Siz y蓹qin ki, istifad蓹 ed蓹c蓹yik ki, a艧a臒谋dak谋 qaydada.
>> ilk b, olan fasil蓹 眉莽眉n q谋sa.
V蓹 b, ad蓹t蓹n yaz谋n sonra bir funksiyas谋 ad谋n谋 yaz谋n,
v蓹 ya Bildiyiniz n蓹 varsa n蓹 line say谋 蓹traf谋nda
Proqram ba艧lay谋r bir az q蓹rib蓹 davranmaq,
Bir x蓹tt yaz谋n s谋ra h蓹m莽inin.
N蓹 b, v蓹 ya fasil蓹 yoxdur bu proqram imkan verir
m眉蓹yy蓹n bir n枚qt蓹y蓹 q蓹d蓹r 莽al谋艧t谋rmak 眉莽眉n, funksiyas谋, y蓹ni ad谋
belirtti臒iniz v蓹 ya line oldu臒unu belirtti臒iniz n枚mr蓹si.
>> V蓹 o n枚qt蓹d蓹, onu icras谋 dondurmaq ed蓹c蓹k.
Bu, 莽眉nki, h蓹qiq蓹t蓹n yax艧谋 bir 艧ey deyil icra dondurulub sonra,
Siz 莽ox yava艧-yava艧 ba艧laya bil蓹r proqram gezinmek.
Siz oldu臒unuz 蓹g蓹r Ad蓹t蓹n, 莽al谋艧an Sizin proqramlar谋, onlar olduqca q谋sa ist蓹yirik.
Ad蓹t蓹n, siz dot 莽izgi yaz谋n n蓹 Proqram ad谋 daxil edin hit
v蓹 q谋rpmaq 蓹vv蓹l, sizin Proqram art谋q ba艧a 莽atm谋艧d谋r.
Bu, h蓹qiq蓹t蓹n c蓹hd 莽ox vaxt deyil v蓹 yanl谋艧 gedir n蓹 anlamaq.
Bu, h蓹qiq蓹t蓹n, h蓹r 艧eyi yava艧 etm蓹k 眉莽眉n bel蓹 a艧a臒谋 b bir fasil蓹 point q蓹bulu il蓹,
v蓹 sonra g眉cl蓹ndirm蓹kl蓹.
>> Siz fasil蓹 m眉蓹yy蓹n etdik sonra bir d蓹f蓹 point, proqram 莽al谋艧t谋rabilirsiniz.
V蓹 h蓹r hans谋 bir varsa command line d蓹lill蓹ri,
Siz burada m眉蓹yy蓹n zaman Siz proqram ad谋 gdb yaz谋n.
Siz b眉t眉n command line daxil r, v蓹 ya run alaraq d蓹lill蓹ri,
v蓹 sonra h蓹r hans谋 command line d蓹lill蓹ri Siz proqram daxilind蓹 laz谋md谋r.
Dig蓹r bir s谋ra h蓹qiq蓹t蓹n var m眉h眉m v蓹 faydal谋 蓹mrl蓹ri
脺DM-in 蓹traf m眉hit daxilind蓹.
Bel蓹 ki, yaln谋z tez m蓹n蓹 imkan b蓹zil蓹ri 眉z蓹rind蓹 gedin.
>> ilk, n枚vb蓹ti 眉莽眉n q谋sa n edir v蓹 n枚vb蓹ti 蓹v蓹zin蓹 n yaz谋n
h蓹m i艧 olard谋.
V蓹 yaln谋z stenoqrafiya var.
V蓹 y蓹qin ki, art谋q kazan谋lm谋艧 kimi 艧eyi yaz谋n qadir olan 眉莽眉n istifad蓹
q谋sa 眉mumiyy蓹tl蓹 yax艧谋d谋r.
V蓹 n蓹 bunu ed蓹c蓹k laz谋md谋r deyil kod ir蓹li bir blok add谋m.
Bel蓹 ki, ir蓹li h蓹r蓹k蓹t ed蓹c蓹yik bir funksiyas谋 z蓹ng q蓹d蓹r.
V蓹 sonra yerin蓹 ki, funksiyas谋 daxil dal谋艧
v蓹 funksiyalar谋 b眉t眉n ke莽ir indeksi, yaln谋z funksiyas谋 olacaq.
>> funksiyas谋 adlanacaq.
Onun i艧 n蓹 laz谋md谋rsa ed蓹c蓹yik.
Bu d蓹y蓹r qay谋dacaqlar adl谋 funksiyas谋.
V蓹 sonra 眉莽眉n h蓹r蓹k蓹t ed蓹c蓹yik ki, z蓹ng funksiyas谋 n枚vb蓹ti line.
Add谋m ist蓹yirsinizs蓹 funksiyas谋 daxilind蓹,
蓹v蓹zin蓹 yaln谋z olan x眉susil蓹, icra
Siz problem hesab edir蓹m ki, 蓹g蓹r ki, funksiyas谋 daxilind蓹 yalan bil蓹r,
Siz, 蓹lb蓹tt蓹, bir fasil蓹 t蓹yin ed蓹 bil蓹r daxilind蓹 funksiyas谋 qeyd.
茝g蓹r siz art谋q yay谋nl谋yorsan谋z v蓹 ya, siz kod ir蓹li bir x蓹tt add谋m s istifad蓹 edin.
>> Bel蓹 ki, bu add谋m olacaq v蓹 funksiyalar谋 daxil dive,
蓹v蓹zin蓹 yaln谋z icra var v蓹 funksiyas谋 davam
Siz ay谋klama 眉莽眉n ist蓹yirik ki.
茝g蓹r bilm蓹k ist蓹yirsinizs蓹 d蓹yi艧蓹n d蓹y蓹ri,
Siz p, v蓹 ya 莽ap ed蓹 bil蓹rsiniz, v蓹 sonra d蓹yi艧蓹n ad谋.
V蓹 siz蓹 莽ap ed蓹c蓹k GDB 蓹traf m眉hit daxilind蓹,
d蓹yi艧蓹n ad谋 ki, S蓹ninl蓹 me-- d蓹yi艧蓹n d蓹y蓹ri b蓹han蓹
adl谋 etdik ki.
H蓹r d蓹y蓹rl蓹ri bilm蓹k ist蓹yirsinizs蓹 burada yerli d蓹yi艧蓹n 蓹l莽atan
Hal-haz谋rda olan sizin proqram, siz info yerli ed蓹bil蓹rsiniz.
Bu 莽ox s眉r蓹tli var sonra p yazaraq v蓹 n蓹 olursa olsun,
b眉t眉n h蓹yata listing Siz m枚vcud bilirik d蓹yi艧蓹nl蓹r.
Siz info yerli yaz谋n v蓹 bu ed蓹 bil蓹rsiniz sizin 眉莽眉n h蓹r 艧eyi 莽ap ed蓹c蓹k.
Sonrak谋 q蓹d蓹r olan bt edir Back Trace 眉莽眉n q谋sa.
陌ndi, 眉mumiyy蓹tl蓹, x眉susil蓹 erk蓹n CS50,
Siz, h蓹qiq蓹t蓹n, m眉nasib蓹til蓹 olmayacaq BT, v蓹 ya geri iz istifad蓹 etm蓹k,
funksiyalar谋 olan deyilik, 莽眉nki dig蓹r funksiyalar谋 z蓹ng.
>> Siz 蓹sas z蓹ng bir ola bil蓹r funksiyas谋, lakin y蓹qin ki, var.
Siz dig蓹r funksiyas谋 yoxdur ba艧qa bir funksiyas谋, z蓹ng ed蓹n
ba艧qa bir funksiyas谋 莽a臒谋r谋r, v蓹 s.
Lakin proqramlar谋 daha 莽ox almaq kimi kompleks, x眉susil蓹
i艧 ba艧lamaq zaman recursion il蓹 geri iz
imkan 眉莽眉n h蓹qiq蓹t蓹n faydal谋 艧蓹kild蓹 ola bil蓹r c眉r 眉莽眉n b蓹zi kontekstind蓹 almaq
M蓹n proqram谋 edir蓹m.
Bel蓹 ki, sizin kodu yazd谋q dem蓹k v蓹 Siz 蓹sas bir funksiyas谋 莽a臒谋r谋r bilirik ki,
bir funksiyas谋 莽a臒谋r谋r f, funksiyas谋 h 莽a臒谋r谋r g.
Bel蓹likl蓹, biz bir ne莽蓹 qat var qu艧 balas谋 burada olur.
>> Siz daxilind蓹 蓹g蓹r Sizin gdb 蓹traf m眉hit,
v蓹 sizin daxili bilirik saat, ancaq unutmaq
Siz harada siz var n蓹 haqq谋nda Siz BT, v蓹 ya geri iz yaz谋n are--,
v蓹 bu, h, q h蓹yata 蓹sas f 莽ap ed蓹c蓹k b蓹zi dig蓹r m蓹lumatlar yana艧谋 olan
bir ipucu verir ki, OK 蓹sas adl谋 f adl谋 g f, g, h adl谋
v蓹 harada M蓹n Hal-haz谋rda m蓹nim proqram谋 edir蓹m.
Bel蓹 ki, h蓹qiq蓹t蓹n faydal谋 ola bil蓹r x眉susil蓹 gdb sirli-biznes kimi
, bir az b枚y眉k olur h蓹r 艧eyi tam olaraq harada tapmaq.
N蓹hay蓹t, proqram g枚r眉l蓹n zaman, Bitirdi臒inizde v蓹 ya ay谋klama
v蓹 眉z add谋m ist蓹yir蓹m gdb m眉hitd蓹n,
bu 莽谋xmaq nec蓹 bilm蓹k k枚m蓹k edir.
Siz q yaz谋n v蓹 ya 莽谋xmaq 眉莽眉n, t蓹rk ed蓹 bil蓹r.
陌ndi, bu g眉n Videonu 蓹vv蓹l M蓹n arabas谋 proqram haz谋rlad谋
M蓹n t蓹rtib adl谋 buggy1, buggy1.c kimi tan谋nan fayl谋.
Siz bu g枚zl蓹y蓹 bil蓹r kimi Proqram fakt arabas谋 var.
Bir 艧ey yanl谋艧 gedir M蓹n c蓹hd v蓹 莽al谋艧t谋r谋n.
陌ndi t蓹蓹ss眉f ki, s蓹hv蓹n M蓹nim buggy1.c fayl silindi
bel蓹 qaydada m蓹n蓹 anlamaq 眉莽眉n n蓹 bu proqram il蓹 yanl谋艧 gedir
M蓹n istifad蓹 etm蓹k 眉莽眉n gedir蓹m GDB c眉r kor-koran蓹, 莽al谋艧谋r
Bu proqram gezinmek 眉莽眉n yanl谋艧 gedir n蓹 anlamaq.
Amma vasit蓹l蓹rd蓹n istifad蓹 biz art谋q haqq谋nda 枚yr蓹ndim
biz olduqca 莽ox anlamaq olar bu d蓹qiq n蓹.
Bel蓹 ki, 眉z蓹rind蓹 r蓹hb蓹rlik ed蓹k CS50 IDE v蓹 bir g枚z var.
OK, bel蓹 ki, biz buraday谋q my CS50 IDE 蓹traf m眉hit,
v蓹 m蓹n bir az zoom laz谋md谋r bel蓹 ki, bir az daha 莽ox ola bil蓹r.
M蓹nim terminal p蓹nc蓹r蓹, m蓹n siyah谋s谋n谋 蓹g蓹r M蓹nim cari direktoru m蓹zmunu
ls, biz ki, m蓹n g枚r眉rs眉n眉z m蓹nb蓹 fayllar谋 bir ne莽蓹 var
Burada, o c眉ml蓹d蓹n 蓹vv蓹ll蓹r buggy1 m眉zakir蓹 olunub.
N蓹 d蓹qiq zaman gedir M蓹n c蓹hd v蓹 buggy1 ax谋r.
Yax艧谋 tapmaq imkan verir.
M蓹n dot 莽izgi n枚v眉 arabas谋, m蓹n Enter d眉ym蓹sini bas谋n.
>> Seqmentasiya 莽at谋艧mazl谋qlar.
Bu yax艧谋 deyil.
Siz geri varsa, seqmentasiya g眉nah ad蓹t蓹n
biz yadda艧 daxil zaman ba艧 verir biz toxunmaq icaz蓹 deyilik ki.
Biz el蓹 蓹ld蓹 etdik h眉dudlar谋ndan k蓹narda
n蓹 proqram谋, compiler biz蓹 verdi.
V蓹 bel蓹 art谋q bir ipucu Toolbox saxlamaq 眉莽眉n
biz ay谋klama prosesi ba艧layacaq kimi.
Something burada bir az yanl谋艧 ke莽mi艧dir.
>> B眉t眉n h眉quqlar, bel蓹 ed蓹k start GDB 蓹traf m眉hit蓹 q蓹d蓹r
biz anlamaq bil蓹r g枚rmek d蓹qiq problemdir.
M蓹n ekran sil gedir蓹m v蓹 m蓹n gdb yaz谋n gedir蓹m
yen蓹 gdb m眉hit daxil etm蓹k, v蓹 proqram ad谋
M蓹n buggy1 debug etm蓹k ist蓹yir蓹m ki,.
Biz oxu, bir az mesaj almaq buggy1 simvollar谋, g枚r眉l蓹n.
O dem蓹kdir ki, b眉t眉n bu 莽谋xard谋 deyil birlikd蓹 b眉t眉n kodu,
v蓹 indi instantly edilmi艧dir Gdb, v蓹 getm蓹k 眉莽眉n haz谋r.
>> 陌ndi m蓹n n蓹 ist蓹yir蓹m?
Siz n蓹 xat谋rlay谋ram yoxdur ilk add谋m ad蓹t蓹n
M蓹n bu m眉hitd蓹 daxilind蓹 deyil蓹m sonra?
脺mid edir蓹m ki, m眉蓹yy蓹n etdi fasil蓹 point, 莽眉nki
蓹slind蓹 m蓹n bunu ist蓹yir蓹m n蓹.
陌ndi yoxdur bu m蓹nb蓹 kodu
脰n眉md蓹 olan y蓹qin ki, tipik istifad蓹 halda, yolu il蓹.
Siz y蓹qin ki, olacaq.
Bel蓹 ki, yax艧谋.
Amma f蓹rz deyil, n蓹 etm蓹k Bildiyiniz bir funksiyas谋
h蓹r bir C proqram m枚vcuddur?
N蓹 b枚y眉k v蓹 ya nec蓹 m眉r蓹kk蓹b Bu, bu funksiya m眉tl蓹q m枚vcuddur.
Main, sa臒?
>> Bel蓹 ki, b眉t眉n ba艧qa, biz bil蓹r u臒ursuz 蓹sas bir fasil蓹 n枚qt蓹sini qurmaq.
V蓹 yen蓹, m蓹n yaln谋z yaz谋n bil蓹r 蓹v蓹zin蓹 b, 蓹sas pozub.
V蓹 siz maraql谋 oldu臒unuz halda, 蓹g蓹r He莽 bir uzun komanda h蓹yata yaz谋n
v蓹 sonra ki, h蓹yata yanl谋艧 艧ey tipli,
v蓹 xilas olmaq ist蓹yirik b眉t眉n M蓹n yaln谋z kimi,
Siz olan, Control U bil蓹r h蓹r 艧eyi silm蓹k v蓹 siz蓹 geri g蓹tirm蓹k
kursor x蓹tl蓹ri 蓹vv蓹lin蓹.
Yaln谋z bas谋b saxlay谋n 莽ox daha s眉r蓹tli bir 莽ox silm蓹k v蓹 ya bir d蓹st蓹 d蓹f蓹 vuraraq
眉z蓹rind蓹.
>> Bel蓹 ki, biz 蓹sas bir fasil蓹 n枚qt蓹sini qurmaq laz谋md谋r.
V蓹 G枚rd眉y眉n眉z kimi, biz var deyir fayl buggy1.c bir fasil蓹 n枚qt蓹sini qurmaq,
v蓹 y蓹qin ilk line 茝sas kodu x蓹tti yeddi.
Yen蓹 yoxdur Burada m蓹nb蓹 fayl,
ancaq ki, g眉man laz谋md谋r M蓹n蓹 h蓹qiq蓹ti s枚yl蓹yir蓹m.
V蓹 sonra, m蓹n yaln谋z 莽al谋艧谋ram v蓹 r, proqram run.
Proqram ba艧layaraq.
B眉t眉n h眉quqlar, bel蓹 ki, bu mesaj谋 bir az sirli edir.
Lakin 蓹sas蓹n n蓹 Burada ba艧 ver蓹n yaln谋z var edir
M蓹n fasil蓹 t蓹艧kil etdik m蓹n蓹 izah point, break point say谋 1.
>> V蓹 sonra, kodu ki, x蓹tt, Bel蓹 fayl v蓹ya qovluq yoxdur.
yegan蓹 s蓹b蓹bi ki, Hesab edir蓹m ki, mesaj g枚r眉yorum
M蓹n s蓹hv蓹n 莽眉nki M蓹nim buggy.c fayl silindi.
M蓹nim buggy1.c fayl m枚vcud 蓹g蓹r cari kataloq,
orada h蓹qiq蓹t蓹n ki line sa臒 m蓹n蓹 n蓹 kodu x蓹tt
s枚z眉n deyilir.
T蓹蓹ss眉f ki, m蓹n bunu silindi.
Biz n枚v getm蓹k 眉莽眉n var olacaq daha kor-koran蓹 bu bir az vasit蓹sil蓹.
>> OK, bel蓹 ki, g枚r蓹k, n蓹 M蓹n burada n蓹 etm蓹k ist蓹yirsiniz?
Yax艧谋, m蓹n yerli n蓹 bilm蓹k ist蓹yir蓹m d蓹yi艧蓹nl蓹r b蓹lk蓹 m蓹nim 眉莽眉n m枚vcuddur.
M蓹n proqram a莽谋lm谋艧 etdik.
Nin ola bil蓹r n蓹 g枚rm蓹k ed蓹k art谋q bizim 眉莽眉n ba艧lat谋lm谋艧.
M蓹n Info yerli, he莽 bir yerli yaz谋n.
B眉t眉n h眉quqlar ki, deyil, bel蓹 ki, M蓹n蓹 informasiya ton verir.
M蓹n c蓹hd v蓹 bir d蓹yi艧蓹n 莽ap ed蓹 bil蓹r, amma he莽 bir d蓹yi艧蓹n adlar谋n谋 bilmir蓹m.
M蓹n geri iz c蓹hd ed蓹 bil蓹r, amma 蓹sas daxilind蓹 deyil蓹m,
bel蓹 ki, m蓹n deyil bilirik 陌ndi bir funksiyas谋 z蓹ng.
>> M蓹nim yaln谋z variantlar谋 kimi bel蓹 g枚r眉n眉r n v蓹 ya istifad蓹 v蓹 dal谋艧 ba艧lamaq 眉莽眉n.
M蓹n n istifad蓹 gedir蓹m.
Bel蓹 ki, n yaz谋n.
Gosh Aman, n蓹 burada davam edir.
Program siqnallar谋 q蓹bul SIGSEGV seqmentasiya g眉nah,
v蓹 sonra m蓹hsullar谋n谋n b眉t眉n d蓹st蓹.
M蓹n art谋q overwhelmed edir蓹m.
B蓹li, h蓹qiq蓹t蓹n var bir 莽ox burada 枚yr蓹nildi.
Bel蓹 ki, n蓹 bu biz蓹 n蓹 deyir?
N蓹 biz蓹 deyir, bu proqram deyil, haqq谋nda, lakin h蓹l蓹 seg g眉nah.
V蓹 x眉susil蓹, m蓹n gedir蓹m daha burada zoom,
bu bar蓹d蓹 seg g眉nah haqq谋nda bir 艧ey strcmp 莽a臒谋r谋b.
>> 陌ndi biz m眉zakir蓹 ola bil蓹r geni艧 f蓹aliyy蓹t g枚st蓹rir.
Biz fikrind蓹 deyilik, 莽眉nki is-- h蓹r funksiyas谋 haqq谋nda dan谋艧maq ki,
C standart m枚vcuddur kitabxana lakin onlar sizin 眉莽眉n b眉t眉n m枚vcud ist蓹yirik
Bir almaq, x眉susil蓹 d蓹 蓹g蓹r reference.cs50.net baxmaq.
V蓹 strcmp h蓹qiq蓹t蓹n g眉cl眉 daxili m枚vcud funksiyas谋
string.h header bir m枚vzu fayl,
funksiyalar谋 h蓹sr olunur fayl谋 il蓹 i艧 v蓹 strings manipulyasiya.
>> V蓹 x眉susil蓹, n蓹 strcmp yoxdur edir iki strings d蓹y蓹rl蓹r m眉qayis蓹 edir.
Bel蓹likl蓹, m蓹n Seqmentasiya g眉nah haqq谋nda Ben z蓹ng g枚r眉n眉r strcmp 眉莽眉n.
M蓹n n edib v蓹 蓹slind蓹 m蓹n mesaj谋 almaq proqram siqnal SIGSEGV il蓹 xitam
seqmentasiya g眉nah. Bel蓹 ki, indi M蓹n, h蓹qiq蓹t蓹n, seg faulted var,
v蓹 proqram olduqca var 莽ox s蓹m蓹r蓹li imtina.
Bu proqram谋n sonu.
Bu pozuldu, bu q蓹zaya u臒ray谋b.
Bel蓹 ki, bir 莽ox deyil idi, lakin m蓹n h蓹qiq蓹t蓹n kifay蓹t q蓹d蓹r bir az 枚yr蓹nm蓹k idi
bu ki莽ik t蓹cr眉b蓹.
M蓹n n蓹 枚yr蓹ndim?
B蓹li, m蓹nim proqram q蓹zalar谋 d蓹rhal olduqca 莽ox.
M蓹nim proqram q蓹zalar谋 bir strcmp z蓹ng, amma
h蓹r hans谋 yerli d蓹yi艧蓹nl蓹r yoxdur m蓹nim Yem蓹yini zamanda proqram.
Bel蓹 ki, n蓹 string, v蓹 ya strings, M蓹n b蓹lk蓹 m眉qayis蓹 ola bil蓹r.
M蓹n he莽 bir yerli yoxsa d蓹yi艧蓹nl蓹r, g眉c
b蓹lk蓹 bir m蓹n var yax艧谋d谋r ki, t蓹xmin do臒ru ola bil蓹r qlobal d蓹yi艧蓹n.
>> Amma, 眉mumiyy蓹tl蓹, g枚r眉n眉r M蓹n m眉qayis蓹 edir蓹m
m枚vcud deyil ki, bir 艧ey.
Bel蓹 ki, ara艧d谋rmaq imkan bir az daha ki.
Bel蓹likl蓹, m蓹n ekran sil gedir蓹m.
M蓹n h蓹yata 莽谋xmaq 眉莽眉n gedir蓹m Ikinci gdb m眉hit.
M蓹n OK, d眉艧眉nc蓹 deyil蓹m, var m蓹nim proqram he莽 bir yerli d蓹yi艧蓹nl蓹rin.
M蓹n ke莽m蓹k g眉man edir蓹m b蓹lk蓹 g枚r蓹s蓹n bir command line arqument kimi simli.
Bel蓹 ki, yaln谋z bu test imkan verir.
M蓹n 蓹vv蓹l bu h蓹yata yoxdur.
>> M蓹n bu proqram run b蓹lk蓹 蓹g蓹r in n蓹z蓹r salaq bir command line arqumenti il蓹 i艧l蓹yir.
Huh, he莽 seqmentasiyas谋 g眉nah.
Bu, sad蓹c蓹 m蓹n bunu h蓹yata fiqurlu ki, m蓹n蓹.
Bel蓹 ki, b蓹lk蓹 ki, fix burada.
M蓹n geri getm蓹k v蓹 蓹g蓹r h蓹qiq蓹t蓹n baxmaq buggy1.c faktiki m蓹nb蓹 kodu,
edir蓹m n蓹 olsa kimi g枚r眉n眉r M蓹n olmadan strcmp z蓹ng edilm蓹si al谋ram
蓹slind蓹 argv [1] m枚vcud olub-olmad谋臒谋n谋 yoxlan谋lmas谋.
Bu, h蓹qiq蓹t蓹n deyil buggy1.c 眉莽眉n m蓹nb蓹 kodu.
Bel蓹likl蓹, m蓹n, h蓹qiq蓹t蓹n, ehtiyac n蓹 m蓹nim proqram d眉zeltmek 眉莽眉n burada n蓹,
f蓹rz M蓹n , m蓹n蓹 qar艧谋s谋nda fayl
yaln谋z etm蓹k 眉莽眉n bir 莽ek 蓹lav蓹 etm蓹k 蓹min argc 2 b蓹rab蓹rdir.
Bel蓹 ki, bu n眉mun蓹 yen蓹, dediyim kimi sa臒, bir az g枚st蓹rdi edir?
Siz, 眉mumiyy蓹tl蓹, fikrind蓹 deyilik t蓹sad眉f蓹n sizin m蓹nb蓹 kodu silm蓹k
v蓹 sonra c蓹hd var v蓹 proqram debug.
Amma 眉mid edir蓹m ki, bu, verdi Bir ill眉strasiya
艧eyi n枚v ki, haqq谋nda d眉艧眉n眉r ola bil蓹r
kimi proqram ay谋klama edirik.
>> Burada i艧l蓹r d枚vl蓹t n蓹dir?
N蓹 d蓹yi艧蓹nl蓹r I do M蓹n蓹 蓹l莽atan var?
D蓹qiq m蓹nim proqram n蓹 x蓹ttind蓹, 艧aqq谋lt谋l谋,
n蓹 funksiyas谋 n蓹 z蓹ng haqq谋nda?
Ipu莽lar谋 hans谋 ki, m蓹n蓹 verir?
V蓹 d蓹qiq zehniyy蓹t c眉r ki,
Siz etdiyiniz zaman 蓹ld蓹 edilm蓹lidir Sizin proqramlar谋 ay谋klama haqq谋nda d眉艧眉n眉r.
>> M蓹n Doug Lloyd edir蓹m.
Bu CS50 edir.