ડો LLOYD: બધા અધિકાર GDB. તે બરાબર શું છે? રહે છે, જે તેથી GDB, GNU ડિબગર માટે, ખરેખર અદ્ભુત સાધન છે કે અમે કરી શકે છે અમારા કાર્યક્રમો ડિબગ અમને મદદ કરવા માટે ઉપયોગ, અથવા વસ્તુઓ છે જ્યાં શોધવા અમારા કાર્યક્ર ખોટું જઈ રહી છે. GDB, આશ્ચર્યજનક શક્તિશાળી છે, પરંતુ તે સાથે આઉટપુટ અને ક્રિયાપ્રતિક્રિયા થોડો ભેદી હોઈ શકે છે. તે સામાન્ય રીતે એક આદેશ વાક્ય સાધન છે, અને તે તમને સંદેશાઓ ઘણો ફેંકવું કરી શકો છો. અને તે પ્રકારની હાર્ડ કરી શકો છો પર રહ્યું છે બરાબર શું પાર્સ. સદનસીબે, અમે ભર્યું પગલાંઓ તમારા માટે આ સમસ્યા સુધારવા માટે તમે CS50 મારફતે કાર્ય કરે છે. તમે ગ્રાફિકલ વાપરી રહ્યા નહિં હોય, તો ડીબગર, જે મારા સાથીદાર ડેન Armandarse તદ્દન બોલાય છે વિડિઓ વિશે થોડી કે અહીં પ્રયત્ન કરીશું હમણાં, તમે જરૂર પડી શકે આ આદેશ વાક્ય વાપરવા માટે સાધનો GDB સાથે કામ કરવા માટે. તમે CS50 માં કામ કરી રહ્યાં છો IDE, તમે આ કરવા માટે જરૂર નથી. પરંતુ તમે ન હો તો આ CS50 IDE કામ, કદાચ આવૃત્તિ વાપરી CS50 સાધન છે, અથવા અન્ય Linux ઓપરેટિંગ GDB સાથે સિસ્ટમ પર સ્થાપિત તમે ઉપયોગ કરવાની જરૂર પડી શકે આ આદેશ વાક્ય સાધનો. અને ત્યારથી તમે કદાચ તે છે, તે કરવા માટે હોય માત્ર કેવી રીતે સમજવા માટે ઉપયોગી GDB આદેશ વાક્યમાંથી કામ કરે છે. પરંતુ ફરીથી, તમે છો, તો આ CS50 IDE ઉપયોગ કરીને, તમે ગ્રાફિકવાળા ડીબગર ઉપયોગ કરી શકો છો કે IDE માં સમાયેલ છે. તેથી વસ્તુઓ સાથે જઈને વિચાર GDB, ડિબગીંગ શરૂ કરવા માટે ચોક્કસ પ્રક્રિયા કાર્યક્રમ, બધા તમે શું જરૂર GDB અનુસરવામાં પ્રકાર છે કાર્યક્રમ નામ દ્વારા. તેથી ઉદાહરણ તરીકે, તમારા કાર્યક્રમ છે, તો હેલો, તમે GDB હેલો લખો છો. તમે તે કરી, ત્યારે તમે જઈ રહ્યાં છો આ GDB પર્યાવરણ ખેંચી. સત્વરે બદલવા માટે, અને કરશે તેના બદલે હોવાની સામાન્ય રીતે તે શું તમે વસ્તુઓ લખો ત્યારે છે આદેશ વાક્ય LS પર, તમારી લાક્ષણિક તમામ cd-- Linux, તમારા પ્રોમ્પ્ટ આદેશો કદાચ કંઈક માટે બદલાશે કૌંસ જેવા GDB કૌંસ. કારણ કે તે, તમારા નવા GDB પ્રોમ્પ્ટ છે તમે GDB પર્યાવરણ અંદર છો. એકવાર પર્યાવરણ અંદર, બે મુખ્ય આદેશો છે તમે કદાચ ઉપયોગ કરશો નીચેના ક્રમમાં. પ્રથમ બી, જે વિરામ માટે ટૂંકા હોય છે. અને તમે બી, તમે સામાન્ય રીતે લખો પછી એક કાર્ય નું નામ લખો અથવા તમે જાણતા થાય તો શું લાઇન નંબર આસપાસ તમારા કાર્યક્રમ શરૂ થાય છે થોડો વિચિત્ર વર્તે, તમે એક લીટી લખી શકો છો નંબર તેમજ. શું બી, અથવા વિરામ કરે તે તમારા કાર્યક્રમ માટે પરવાનગી આપે છે અમુક ચોક્કસ બિંદુ સુધી ચલાવવા માટે, કાર્ય એટલે કે, નામ તમે ઉલ્લેખ કરો અથવા લીટી કે તમે સ્પષ્ટ છે કે સંખ્યા. અને તે સમયે, તે અમલ જામી જશે નહીં. આ કારણ કે, ખરેખર સારી બાબત છે અમલ સ્થિર થઈ જાય, તમે ખૂબ જ ધીમે ધીમે શરૂ કરી શકો છો તમારા કાર્યક્રમ દ્વારા પગલું. તમે આવી છે, તો ખાસ કરીને, ચાલી તમારા કાર્યક્રમો, તેઓ ખૂબ ટૂંકા છો. સામાન્ય રીતે, તમે કોઈ સ્લેશ લખો ગમે તમારા કાર્યક્રમ નામ દાખલ કરો, નહીં અને તમે આંખ મારવી કરી શકો છો તે પહેલાં, તમારી કાર્યક્રમ પહેલેથી જ સમાપ્ત થાય છે. તે ખરેખર પ્રયાસ કરવા માટે સમય ઘણો નથી અને ખોટું થઈ રહ્યું છે તે બહાર આકૃતિ. તે ખરેખર વસ્તુઓ ધીમી રજુ કરવાનો પ્રયત્ન જેથી નીચે બી સાથે વિરામ બિંદુ સુયોજિત કરીને, અને પછી આધાર. તમે તમારા વિરામ સેટ કર્યું પછી એક વખત બિંદુ, તમે કાર્યક્રમ ચલાવી શકો છો. અને તમે કોઇ હોય તો આદેશ વાક્ય દલીલો, તમે અહીં તેમને સ્પષ્ટ નથી ત્યારે તમે તમારા કાર્યક્રમ નામ GDB લખો. તમે બધા આદેશ વાક્ય સ્પષ્ટ આર, અથવા રન લઈને દલીલો, અને પછી ગમે આદેશ વાક્ય દલીલો તમે તમારા કાર્યક્રમ ની અંદર જરૂર છે. અન્ય એક નંબર ખરેખર છે મહત્વપૂર્ણ અને ઉપયોગી આદેશો જીડીપી પર્યાવરણ પર આધારિત છે. તેથી માત્ર ઝડપથી મને દો તેમને કેટલાક પર જાઓ. પ્રથમ, આગામી માટે ટૂંકા હોય છે, જે n એ, છે અને તમે આગામી બદલે n ના ટાઈપ કરી શકો છો બંને કામ કરશે. અને તે માત્ર લઘુલિપિ છે. અને તમે કદાચ પહેલાથી જ મેળવેલ છે તેમ વસ્તુઓ લખવા માટે સમર્થ હોવા માટે ઉપયોગ ટૂંકા સામાન્ય રીતે વધુ સારી છે. અને તે શું કરશે તે પડશે કોડ આગળ એક બ્લોક પગલું. તેથી તે આગળ ખસેડવા પડશે એક કાર્ય કૉલ સુધી. અને પછી બદલે તે કાર્ય માં ડાઇવિંગ અને તે તમામ કાર્યોને પસાર થઇ કોડ છે, તે માત્ર કાર્ય હશે. આ કાર્ય કહેવામાં આવશે. તે તેના કામ છે ગમે કરશે. તે કિંમત આપશે તે કહે છે કે કાર્ય. અને પછી તમે પર ખસેડો પડશે કે કૉલિંગ કાર્ય આગામી લાઇન. તમે પગલું કરવા માંગો છો આ કાર્ય ની અંદર, તેના બદલે માત્ર કર્યા તે ખાસ કરીને, ચલાવો તમે આ સમસ્યા લાગે છે કે જો કે કાર્ય ની અંદર આવેલા શકે છે, તમે, અલબત્ત, એક વિરામ સેટ કરી શકે છે અંદર કે કાર્ય છે નિર્દેશ કરે છે. જો તમે પહેલાથી જ ચલાવી રહ્યા છો, તો તમે કરી શકો છો કોડ આગળ એક વાક્ય પગલું ઓ ઉપયોગ કરે છે. તેથી આ પગલું કરશે અને કાર્યો માં ડાઇવ બદલે માત્ર ચલાવવા છે અને કાર્ય પર ચાલુ તમે ડિબગીંગ માટે કરી શકે છે. તમે ક્યારેય ખબર કરવા માંગો છો એક ચલ ની કિંમત, તમે પી, અથવા પ્રિન્ટ લખી શકો છો, અને પછી ચલ નામ. અને તે તમને છાપશે આ GDB પર્યાવરણ અંદર, ચલ નામ કે તમારી પાસે me-- ચલ ની કિંમત માફ તમે નામ આપવામાં આવ્યું કર્યું છે. તમે દરેક કિંમતો જાણવા માંગો છો જ્યાં સ્થાનિક ચલ સુલભ તમે હાલમાં તમારા કાર્યક્રમ, તમે માહિતી સ્થાનિકો લખી શકો છો. તે કરતાં ઘણો ઝડપી છે પછી પી લખીને અને ગમે, આ બધા બહાર યાદી તમે અસ્તિત્વમાં ખબર છે કે ચલો. તમે માહિતી સ્થાનિકો લખો, અને તે કરી શકો છો તમારા માટે બધું છાપશે. આગામી અપ છે, કે જે બીટી છે પાછા ટ્રેસ માટે નહીં. હવે, સામાન્ય રીતે, ખાસ કરીને વહેલી CS50 માં, તમે ખરેખર પ્રસંગે હોય નહીં બીટી, અથવા પાછા ટ્રેસ વાપરવા માટે, તમે કાર્યો કર્યા નથી કારણ કે કે અન્ય કાર્યો કૉલ કરો. તમે મુખ્ય કૉલ હોય શકે છે કાર્ય છે, પરંતુ તે કદાચ તે છે. તમે કે અન્ય કાર્ય નથી અન્ય કાર્ય, ફોન, જે અન્ય કાર્ય કહે છે, અને તેથી પર. પરંતુ તમારા કાર્યક્રમો વધુ વિચાર જટિલ, અને ખાસ કરીને તમે કામ શરૂ કરો ત્યારે રિકર્ઝન સાથે પાછા ટ્રેસ તમે દેવા માટે ખરેખર ઉપયોગી રસ્તો હોઈ શકે છે પ્રકારની છે માટે અમુક સંદર્ભમાં વિચાર હું મારા કાર્યક્રમ છું. તેથી જો તમે તમારી કોડ તેવા પરચૂરણ ખર્ચ કર્યો કહે છે, અને તમે મુખ્ય કાર્ય કહે છે કે ખબર એક કાર્ય કહે છે, જે એફ, એક કાર્ય એચ કહે છે કે જે ત. તેથી અમે વિવિધ સ્તરો છે માળો અહીં પર જઈ રહી છે. તમે અંદર છો, તો તમારા GDB પર્યાવરણ, અને તમે તમારા અંદર ખબર H, પરંતુ તમને ભૂલી તમે જ્યાં તમે મળી છે તે વિશે તમે બીટી, અથવા પાછા ટ્રેસ લખી શકો છો are--, અને તે, એચ, જી બહાર મુખ્ય એફ છાપશે કેટલાક અન્ય માહિતી, સાથે જે તમે એક ચાવી આપે છે કે, ઠીક મુખ્ય કહેવાય એફ કહેવાય છે, જી એફ, જી, એચ કહેવાય અને તે જ્યાં હું હાલમાં મારા કાર્યક્રમ છું. તેથી તે ખરેખર ઉપયોગી હોઈ શકે ખાસ કરીને GDB ની ભેદી નેસ તરીકે માટે, થોડી જબરજસ્ત બની જાય છે વસ્તુઓ છે બરાબર જ્યાં શોધવા. છેલ્લે, તમારી કાર્યક્રમ કરવામાં આવે છે ત્યારે, તમે પૂર્ણ કરી રહ્યાં છો અથવા જ્યારે તે ડિબગીંગ અને તમે દૂર પગલું કરવા માંગો છો આ GDB વાતાવરણ, તે તેને બહાર વિચાર કેવી રીતે ખબર મદદ કરે છે. જો તમે તેને ક્યૂ લખો, અથવા બહાર વિચાર, છોડો શકો છો. હવે, આજે વિડિઓ પહેલાં હું બગડેલ કાર્યક્રમ તૈયાર હું સંકલિત, જે કહેવાય buggy1, buggy1.c તરીકે ઓળખાય ફાઇલમાંથી. જો તમે આ આશા રાખી શકે છે કાર્યક્રમ હકીકત બગડેલ છે. કંઈક ખોટું થાય જ્યારે હું પ્રયત્ન કરો અને તે ચલાવો. હવે, કમનસીબે, હું અજાણતા મારા buggy1.c ફાઇલ કાઢી તેથી ક્રમમાં મને બહાર આકૃતિ માટે શું આ કાર્યક્રમ સાથે ખોટું થઈ રહ્યું છે હું ઉપયોગ કરવા હોય જાઉં છું GDB પ્રકારની અકારણ, પ્રયાસ આ કાર્યક્રમ મારફતે શોધખોળ કરવા માટે ખોટું થઈ રહ્યું છે બરાબર શું બહાર આકૃતિ. પરંતુ માત્ર સાધનોની મદદથી અમે પહેલાથી જ વિશે શીખી કર્યું અમે ખૂબ ખૂબ આકૃતિ કરી શકો છો તે છે બરાબર શું બહાર. તેથી આપણે પર વડા દો CS50 IDE અને એક નજર છે. ઠીક છે, તેથી અમે અહીં છો મારા CS50 IDE પર્યાવરણ, અને હું થોડી ઝૂમ પડશે જેથી તમે થોડી વધુ જોઈ શકે છે. મારા ટર્મિનલ વિન્ડોમાં, હું યાદી તો મારા વર્તમાન ડિરેક્ટર સમાવિષ્ટો LS સાથે, અમે કે હું જોશો સ્ત્રોત ફાઇલો એક દંપતિ છે અહીં, સહિત અગાઉ buggy1 ચર્ચા કરી છે. બરાબર શું જ્યારે પર જાય છે હું પ્રયત્ન કરો અને buggy1 ચલાવો. વેલ ચાલો શોધવા દો. હું કોઈ સ્લેશ લખો બગડેલ, અને હું Enter દબાવો. વિભાગીય ખામી. તે સારી નથી. તમે યાદ તો, એક સેગ્મેન્ટેશન ક્ષતિમાં સામાન્ય અમે મેમરી ઍક્સેસ ત્યારે થાય છે જ્યારે અમે સ્પર્શ કરવાની પરવાનગી નથી રહ્યાં છે. અમે અચાનક પહોંચી ગયા છો આ સીમાથી બહાર શું આ કાર્યક્રમ કમ્પાઇલર, અમને આપવામાં આવી છે. અને તેથી પહેલેથી જ એક ચાવી શોધો રાખવા અમે ડિબગીંગ પ્રક્રિયા શરૂ થાય છે. કંઈક અહીં થોડી ખોટું થયું છે. બધા હક છે, તેથી દો પ્રારંભ આ GDB પર્યાવરણ અમે બહાર આકૃતિ કરી શકો છો જો અને જુઓ બરાબર શું સમસ્યા છે. હું મારા સ્ક્રીન સાફ કરવા માટે જઇ રહ્યો છું અને હું GDB લખો જાઉં છું ફરીથી, આ GDB પર્યાવરણમાં દાખલ કરવા માટે, અને કાર્યક્રમ નામ હું buggy1 ડિબગ કરવા માંગો છો છે. અમે વાંચન, થોડી સંદેશ વિચાર buggy1 થી સંજ્ઞાઓ વાપરીને, થાય છે. અર્થ એ થાય કે બધા તે ખેંચાય છે એકસાથે કોડ તમામ, અને હવે તે લોડ કરવામાં આવી રહ્યું છે GDB, અને તે જવા માટે તૈયાર છે. હવે, હું શું કરવા માંગો છો? તમે શું યાદ કરો પ્રથમ પગલું સામાન્ય રીતે છે હું આ પર્યાવરણ અંદર છું પછી? આસ્થાપૂર્વક, તમે સેટ જણાવ્યું હતું વિરામ બિંદુ છે, કારણ કે હકીકત છે કે હું શું કરવા માંગો છો તે છે. હવે, હું નથી આ માટે સ્રોત કોડ મને સામે છે, જે કદાચ છે નથી લાક્ષણિક ઉપયોગ કેસ, માર્ગ દ્વારા. તમે કદાચ ચાલશે. તેથી તે સારી છે. પરંતુ એમ ધારી રહ્યા છીએ તમે નથી, શું કરવું તમે જાણો છો કે એક કાર્ય દરેક એક સી કાર્યક્રમ અસ્તિત્વમાં છે? કોઈ બાબત કેવી રીતે મોટા અથવા જટિલ કેવી રીતે તે છે, આ કાર્ય ચોક્કસપણે અસ્તિત્વમાં છે. મુખ્ય, અધિકાર? તેથી બીજું તમામ, અમે કરી શકો છો નિષ્ફળ મુખ્ય અંતે વિરામ બિંદુ સુયોજિત કરો. અને ફરી, હું માત્ર ટાઇપ કરી શકે છે તેના બદલે બી, મુખ્ય તૂટી જાય છે. અને તમે વિચિત્ર છો, તો તમે તો ક્યારેય લાંબા આદેશ લખો અને પછી તમે ખ્યાલ છે કે ખોટી વસ્તુ લખ્યો, અને તમે છૂટકારો મેળવવા માંગો છો બધા હું માત્ર હતી, તમે જે કરશે, નિયંત્રણ યુ લઇ શકે છે બધું કાઢી અને તમે પાછા લાવવા કર્સર રેખાઓ શરૂઆતમાં. માત્ર પકડી રાખો કરતાં ઘણો ઝડપી કાઢી નાખો, અથવા તે એક ટોળું વખત હિટ નહીં. તેથી અમે મુખ્ય અંતે વિરામ બિંદુ સુયોજિત પડશે. અને તમે જોઈ શકો છો, તે અમે કર્યું છે ફાઇલ Buggy1.c અંતે વિરામ બિંદુ સુયોજિત કરે છે, અને દેખીતી રીતે પ્રથમ વાક્ય મુખ્ય કોડ વાક્ય સાત છે. ફરીથી, અમે નથી અહીં સ્રોત ફાઈલ, પરંતુ હું તે છે કે ધારે પડશે મને સત્ય કહેવાની. અને પછી, હું ફક્ત પ્રયાસ કરી રહ્યો છું અને આર, કાર્યક્રમ ચલાવો. કાર્યક્રમ શરૂ થાય છે. બધા હક છે, તેથી આ સંદેશ થોડી છુપાયેલું છે. પરંતુ મૂળભૂત રીતે શું છે અહીં શું થઈ રહ્યું તે માત્ર છે હું મારા વિરામ હિટ થઈ છે મને કહેતાં બિંદુ વિરામ બિંદુ નંબર 1. અને પછી, કોડ કે વાક્ય છે, આવી કોઈ ફાઈલ અથવા ડિરેક્ટરી. આ જ કારણ છે કે હું જે તે સંદેશ જોઈ રહ્યો છું હું અજાણતા કારણ કે મારા buggy.c ફાઇલ કાઢી. મારા buggy1.c ફાઇલ અસ્તિત્વમાં હોય તો વર્તમાન ડિરેક્ટરીમાં, ત્યાં ખરેખર તે લીટી અધિકાર મને કહો શું કોડ વાક્ય શાબ્દિક વાંચે છે. કમનસીબે, હું તે કાઢી નાખ્યું છે. અમે પ્રકારની શોધખોળ કરવા માટે છે જવું કરી રહ્યાં છો વધુ અકારણ આ થોડી મારફતે. ઠીક છે, તેથી માતાનો જોવા દો, શું હું અહીં શું કરવા માંગો છો? ઠીક છે, હું સ્થાનિક શું ખબર કરવા માંગો છો ચલો કદાચ મને માટે ઉપલબ્ધ છે. હું મારા કાર્યક્રમ શરૂ કર્યું છે. માતાનો હોઈ શકે છે તે જોવા દો પહેલાથી જ આપણા માટે આરંભ. હું માહિતી સ્થાનિકો કોઈ સ્થાનિક લખો. બધા હક છે, કે નથી તેથી મને માહિતી એક ટન આપે છે. હું પ્રયત્ન કરો અને એક ચલ છાપી શકે છે, પરંતુ હું કોઇ પણ ચલ નામો ખબર નથી. હું પાછા ટ્રેસ પ્રયાસ કરી શકે છે, પરંતુ હું મુખ્ય અંદર છું, તેથી હું ન કરી હોય ખબર હમણાં બીજા કાર્ય કૉલ. મારી માત્ર વિકલ્પો હોય છે, જેમ તેથી લાગે છે n અથવા તેથી ઉપયોગ કરે છે અને ડાઇવ શરૂ કરવા માટે. હું એ નો ઉપયોગ કરવા જઇ રહ્યો છું. તેથી હું n લખો. ઓહ gosh, અહીં શું ચાલી રહ્યું છે. કાર્યક્રમ સંકેતો પ્રાપ્ત થાય છે, SIGSEGV સેગ્મેન્ટેશન ક્ષતિમાં, અને પછી સામગ્રી સંપૂર્ણ જથ્થો. હું પહેલેથી જ ભરાઈ ગયાં છું. વેલ, ત્યાં ખરેખર એક ઘણો અહીં શીખી શકાય. તેથી શું આ અમને જણાવો નથી? શું તે અમને કહે છે આ કાર્યક્રમ છે, વિશે છે, પરંતુ હજુ સુધી, seg દોષ. અને ખાસ કરીને, હું જાઉં છું પણ વધુ અહીં ઝૂમ કરવા માટે, તે વિશે seg ખામી વિશે છે કંઈક strcmp કહેવાય છે. હવે, આપણે ચર્ચા કરી શકે નહિં વ્યાપક આ કાર્ય કરે છે. અમે જઈ રહ્યાં છો કારણ કે, પરંતુ તે is-- દરેક કાર્ય વિશે વાત કરવા માટે કે C સ્ટાન્ડર્ડ અસ્તિત્વમાં પુસ્તકાલય પરંતુ તેઓ તમને બધા ઉપલબ્ધ છો તમે લેવા, ખાસ કરીને જો reference.cs50.net જુઓ. અને strcmp ખરેખર શક્તિશાળી છે અંદર અસ્તિત્વમાં છે કે કાર્ય આ string.h હેડર હેડર છે, જે ફાઇલ, કાર્યો માટે સમર્પિત છે કે ફાઈલ સાથે કામ કરે છે અને શબ્દમાળાઓ ચાલાકી. અને ખાસ કરીને, શું strcmp કરે છે તે બે શબ્દમાળાઓ કિંમતો સરખામણી કરે છે. તેથી હું દોષ વિભાગીય વિશે છું કૉલ પર તે લાગે છે strcmp છે. , હું એ દબાવો, અને હકીકતમાં હું મેસેજ મળે છે કાર્યક્રમ સંકેત SIGSEGV સાથે સમાપ્ત સેગ્મેન્ટેશન ક્ષતિમાં. તેથી હવે હું ખરેખર seg faulted છે, અને મારા કાર્યક્રમ ખૂબ છે ખૂબ અસરકારક રીતે આપવામાં આવે છે. આ કાર્યક્રમ ઓવરને છે. તે તૂટી પડી હતી, તે ક્રેશ થયું. તેથી ઘણો ન હતી, પરંતુ હું ખરેખર ખૂબ થોડી જાણવા હતી આ થોડો અનુભવ છે. હું શું શીખ્યા? ઠીક છે, મારા કાર્યક્રમ ક્રેશ તરત જ ખૂબ ખૂબ. મારા કાર્યક્રમ પર ક્રેશ એક strcmp માટે કૉલ, પરંતુ હું કોઈપણ સ્થાનિક ચલો નથી મારા તે ક્રેશ તે સમયે કાર્યક્રમ. તેથી શું શબ્દમાળા, અથવા શબ્દમાળાઓ, હું કદાચ સરખામણી હોઈ શકે છે. હું કોઇ પણ સ્થાનિક ન હોય તો ચલો, તમે કદાચ કદાચ હું ત્યાં અહી કે અટકળ સાચું હોઈ શકે કે જે વૈશ્વિક ચલ. પરંતુ સામાન્ય રીતે, તે લાગે છે જેમ હું સરખામણી છું અસ્તિત્વમાં નથી કે કંઈક. તેથી આપણે તપાસ કરીએ થોડી વધુ છે. તેથી હું મારા સ્ક્રીન સાફ કરવા માટે જઇ રહ્યો છું. હું બહાર નીકળી જાઉં છું એક બીજા માટે GDB એન્વાર્યમેન્ટ. અને હું બરાબર, વિચારી રહ્યો છું, તેથી ત્યાં છે મારા કાર્યક્રમ કોઈ સ્થાનિક ચલો. હું પસાર માનવામાં છું તો કદાચ હું આશ્ચર્ય આદેશ વાક્ય દલીલ તરીકે શબ્દમાળા છે. તેથી આપણે માત્ર આ ચકાસીએ. હું પહેલાં આ કર્યું નથી. હું આ કાર્યક્રમ ચલાવવા કદાચ જો માતાનો જોવા દો આદેશ વાક્ય દલીલ સાથે કામ કરે છે. ઓહ, ત્યાં કોઈ સેગ્મેન્ટેશન ક્ષતિમાં. તે માત્ર હું તેને બહાર figured છે કે મને કહ્યું હતું. તેથી કદાચ કે સુધારો અહીં છે. હું પાછા જાઓ અને જો ખરેખર જોવા buggy1.c માટે વાસ્તવિક સ્રોત કોડ, હું શું કરી રહ્યો છું છે છતાં તે લાગે છે હું વિના strcmp માટે કૉલ બનાવવા છું હકીકતમાં argv [1] અસ્તિત્વમાં છે કે કેમ ચકાસણી. આ વાસ્તવમાં છે buggy1.c માટે સ્ત્રોત કોડ. તેથી હું ખરેખર જરૂર શું મારા કાર્યક્રમને સરખો કરવા માટે અહીં નથી, ધારી રહ્યા છીએ કે હું હોય છે મને સામે દાખલ જસ્ટ ખાતરી કરો કે એક ચેક ઉમેરવા ખાતરી કરો કે argc 2 સમાન છે. તેથી આ ઉદાહરણ તરીકે, ફરીથી હું જણાવ્યું હતું કે, જેમ અધિકાર, થોડો contrived છે? તમે સામાન્ય રીતે નથી જઈ રહ્યાં છો આકસ્મિક તમારા સ્રોત કોડ કાઢી અને પછી પ્રયાસ હોય છે અને કાર્યક્રમ ડિબગ. પરંતુ આસ્થાપૂર્વક, તે આપ્યો તમે એક ઉદાહરણ વસ્તુઓ આ પ્રકારના કે તમારા વિશે વિચારી શકાય છે કારણ કે તમે તમારા કાર્યક્રમ ડિબગીંગ કરી રહ્યાં છો. અહીં બાબતોના રાજ્ય શું છે? શું ચલો હું શું મને સુલભ છે? બરાબર જ્યાં મારા કાર્યક્રમ છે શું વાક્ય પર, તૂટી, શું કાર્ય શું કૉલ પર? કડીઓ કેવા પ્રકારની છે કે જે મને આપે છે? અને તે બરાબર છે વિચાર કાઇન્ડ કે તમે તમે છો જ્યારે પ્રવેશ મેળવવામાં જોઇએ તમારા ડિબગીંગ કાર્યક્રમો વિશે વિચારવાનો. હું ડો લોયડ છું. આ CS50 છે.