ڈوگ لایڈ: ٹھیک GDB. یہ بالکل کیا ہے؟ کھڑا ہے جس تو GDB، GNU ٹھیک کرنے والا کھولتا کے لئے، واقعی ایک خوفناک آلے ہے کہ ہم کر سکتے ہیں ہے ہمارے پروگرام ڈیبگ ہماری مدد کرنے کے لئے استعمال، یا چیزوں کو کہاں ہیں باہر تلاش ہمارے پروگراموں میں غلط ہو رہا. GDB، حیرت انگیز طاقتور ہے لیکن اس کے ساتھ پیداوار اور بات چیت تھوڑا سا خفیہ ہو سکتا ہے. یہ عام طور پر ایک کمانڈ لائن کے آلے کے ہے، اور یہ تم پر پیغامات کی ایک بہت پھینک کر سکتے ہیں. اور اس قسم کے سخت کر سکتے ہیں چل رہا ہے بالکل وہی جو کا تجزیہ. خوش قسمتی سے، ہم لے لیا ہے اقدامات آپ کے لئے اس مسئلہ کو حل کرنے آپ CS50 کے ذریعے کام کے طور پر. آپ گرافیکل استعمال نہیں کر رہے ٹھیک کرنے والا کھولتا، جو اپنے ساتھی ڈین Armandarse بہت بات کی ہے ایک ویڈیو میں تھوڑا سا اس یہاں ہونا چاہئے اب، آپ کو ضرورت ہو سکتی ہے ان کمانڈ لائن استعمال کرنے کے لئے اوزار GDB کے ساتھ کام کرنے کے لئے. آپ CS50 میں کام کر رہے ہیں IDE، آپ کو ایسا کرنے کی ضرورت نہیں ہے. لیکن تم نہیں ہو تو CS50 IDE میں کام کرنے والے، شاید ایک ورژن استعمال کر رہے ہیں CS50 آلات کی، یا کسی اور لینکس آپریٹنگ GDB کے ساتھ نظام، اس پر نصب آپ کو استعمال کرنے کی ضرورت ہو سکتی ان کمانڈ لائن ٹولز. اور اس کے بعد آپ کو ہو سکتا ہے یہ ہے، کہ کیا کرنا ہے صرف کس طرح سمجھنے کے لئے مفید GDB کمانڈ لائن سے کام کرتا ہے. لیکن ایک بار پھر، آپ ہیں تو CS50 IDE کا استعمال کرتے ہوئے، آپ گرافیکل ٹھیک کرنے والا کھولتا استعمال کر سکتے ہیں کہ IDE میں بنایا گیا ہے. تو چیزوں کے ساتھ جا رہا حاصل کرنے کے لئے GDB، کرنا شروع کرنا کسی خاص کے عمل پروگرام، تمام تمہیں کیا ضرورت ہے GDB کے بعد کی قسم ہے پروگرام کے نام سے. لہذا مثال کے طور، آپ کے پروگرام ہے تو ہیلو، آپ GDB ہیلو ٹائپ کریں گے. اگر آپ ایسا کرتے ہیں، آپ جا رہے ہیں GDB ماحول ھیںچو. آپ فوری طور پر تبدیل کریں گے، اور بجائے عام طور پر کیا یہ آپ چیزوں کو ٹائپ جب کمانڈ line-- LS میں، اپنے مخصوص کے تمام cd-- لینکس، آپ فوری طور پر حکم ، شاید، کچھ بدل جائے گی قوسین کی طرح GDB قوسین. کیونکہ، اپنے نئے GDB فوری ہے آپ GDB ماحول کے اندر ہو. ایک بار جب کہ ماحول کے اندر، دو اہم حکم ہے آپ کو شاید استعمال کریں گے کہ مندرجہ ذیل ترتیب میں. پہلا B، ہے جو وقفے کے لئے مختصر ہے. اور آپ ب، آپ عام طور پر ٹائپ کے بعد ایک تقریب کا نام ٹائپ کریں، یا آپ کو معلوم ہو تو کیا لائن تعداد کے ارد گرد آپ کے پروگرام شروع کر رہا ہے ایک چھوٹا سا عجیب برتاؤ کرنا، آپ کو ایک لائن ٹائپ کر سکتے ہیں تعداد کے ساتھ ساتھ وہاں. کیا B، یا وقفے، کرتا ہے یہ آپ کے پروگرام کی اجازت دیتا ہے ایک خاص نقطہ تک چلانے کے لئے، تقریب کی یعنی، نام آپ کی وضاحت یا لائن ہے آپ کی وضاحت اس نمبر. اور اس نقطہ پر، یہ پھانسی منجمد گا. اس کی وجہ سے، ایک بہت اچھی بات ہے پھانسی منجمد کر دیا گیا ہے ایک بار، آپ کو بہت آہستہ آہستہ شروع کر سکتے ہیں آپ کے پروگرام کے ذریعے قدم. آپ کیا گیا ہے تو عام طور پر، چلانے آپ کے پروگراموں، وہ بہت مختصر ہیں. عام طور پر، آپ ڈاٹ سلیش ٹائپ جو کچھ بھی آپ کے پروگرام کا نام،، درج کریں مارا ہے اور آپ کو پلکیں جھپکاتی پہلے، آپ پروگرام پہلے ہی ختم ہو گیا ہے. یہ واقعی میں کوشش کرنے کے لئے وقت کی ایک بہت نہیں ہے اور غلط ہو رہا ہے کیا پتہ. یہ واقعی چیزوں کو سست کرنے کے قابل ہو جائے کرنے کے لئے تو نیچے بی کے ساتھ ایک بریک پوائنٹ قائم کرنے کی طرف، اور پھر میں نکلنے. آپ کو آپ کے وقفے قائم ہے ایک بار پھر نقطہ، آپ اس پروگرام کو چلا سکتے ہیں. اور آپ کو کوئی چیز ہے تو کمانڈ لائن کے دلائل، آپ، یہاں ان کی وضاحت نہیں ہے جب آپ کو آپ کے پروگرام کا نام GDB ٹائپ. تم سب کو کمانڈ لائن کی وضاحت R، یا رن لینے کی طرف سے دلائل، اور اس کے بعد جو کچھ بھی کمانڈ لائن کے دلائل آپ کو آپ کے پروگرام کے اندر کی ضرورت ہے. دیگر کی ایک بڑی تعداد واقعی ہیں اہم اور مفید حکم دیتا ہے جی ڈی پی کے ماحول کے اندر. تو فوری طور پر مجھے دو ان میں سے کچھ سے زیادہ جانا. سب سے پہلے، اگلے کے لئے مختصر ہے جو ن ہے، اور آپ کو اگلے کی بجائے (ن) کے ٹائپ کر سکتے ہیں دونوں کام کریں گے. اور یہ صرف آشلپی ہے. اور آپ کو شاید پہلے سے ہی ہو گیا ہے کے طور پر چیزیں ٹائپ کرنے کے قابل ہونے کی وجہ سے، کے لئے استعمال کیا چھوٹا عام طور پر بہتر ہے. اور کیا یہ کروں گا یہ کروں گا ہے کوڈ کے مستقبل کے حوالے سے ایک بلاک قدم. تو یہ آگے بڑھنے گے ایک تقریب کو فون تک. اور پھر بجائے اس تقریب میں ڈائیونگ اور اس کے افعال میں سے سب کے ذریعے جا رہا کوڈ، یہ صرف تقریب پڑے گا. تقریب میں بلایا جائے گا. یہ اس کا کام ہے جو کروں گا. یہ ایک قیمت پر واپس آ جائیں گے یہ کہا جاتا ہے کہ تقریب. اور پھر آپ پر منتقل کریں گے بلا کہ تقریب کی اگلی لائن. آپ کو قدم کے لئے چاہتے ہیں تقریب کے اندر، کی بجائے صرف ہونے کے یہ خاص طور پر، پھانسی آپ کا مسئلہ لگتا ہے کہ اس تقریب کے اندر جھوٹ سکتا ہے، آپ، کورس کے، ایک وقفے قائم کر سکتے ہیں اندر اس تقریب کی طرف اشارہ. آپ نے پہلے ہی چلا رہے ہیں یا، آپ کر سکتے ہیں کوڈ کے مستقبل کے حوالے سے ایک لائن کے قدم کے لئے ایس کا استعمال کریں. تو اس میں قدم اور افعال میں کودو، کی بجائے صرف پھانسی ہے اور تقریب میں جاری آپ ٹھیک کرنا کے لئے میں ہیں. کیا تم نے کبھی جاننا چاہتے ہیں تو ایک متغیر کی قدر، آپ P، یا پرنٹ ٹائپ کر سکتے ہیں، اور پھر متغیر کے نام. اور یہ کہ، آپ کو باہر پرنٹ گا GDB ماحول کے اندر، متغیر کے نام، کہ you-- me-- متغیر کی قدر معاف آپ کا نام کیا ہے کہ. آپ کو ہر کی اقدار جاننا چاہتے ہیں تو جہاں سے مقامی متغیر رسائی آپ فی الحال میں ہیں آپ پروگرام آپ کو معلومات مقامی لوگوں کے ٹائپ کر سکتے ہیں. اس سے ایک بہت تیز ہے پھر P ٹائپ اور جو، کے تمام باہر کی لسٹنگ آپ موجود جانتے ہیں کہ متغیر. آپ کی معلومات مقامی لوگوں ٹائپ کریں، اور یہ کر سکتے ہیں آپ کے لئے سب کچھ باہر پرنٹ گا. اگلا، دوسرا اپ ہے جس میں، BT ہے واپس ٹریس کے لئے مختصر. اب، عام طور پر، خاص طور پر ابتدائی CS50 میں، تم واقعی میں اس موقع نہیں پڑے گا BT، یا واپس ٹریس استعمال کرنے کے لئے، آپ کے افعال ہونے نہیں کر رہے ہیں کیونکہ دیگر افعال ہے کہ کہتے ہیں. آپ اہم کال ایک ہو سکتا ہے تقریب، لیکن جو شاید یہ ہے. آپ کو اس دوسری تقریب نہیں ہے ایک اور تقریب، بلا جس ایک اور تقریب بلاتا ہے، اور اسی طرح کی. لیکن اپنے پروگراموں زیادہ ملے پیچیدہ، اور خاص طور پر آپ کام شروع تکرار کے ساتھ، واپس ٹریس آپ کو مطلع کرنے کے لئے ایک بہت مفید طریقہ ہو سکتا ہے قسم کی جہاں کے لئے کچھ سیاق و سباق حاصل میں نے اپنے پروگرام میں ہوں. تو آپ اپنے کوڈ لکھا ہے کہتے ہیں، اور آپ اہم مطالبہ ایک تقریب جانتے ہیں کہ ایک تقریب بلاتا ہے جس میں F، ایک تقریب H بلاتا ہے جس میں جی،. تو ہم نے کئی تہوں nesting کے یہاں کیا ہو رہا. آپ کے اندر ہیں تو آپ GDB ماحول، اور آپ کو آپ کے اندر جانتے ہیں H کی، لیکن آپ کو بھول جاتے آپ جہاں آپ کو مل گیا ہے کے بارے میں آپ BT، یا واپس ٹریس ٹائپ کر سکتے ہیں are--، اور یہ،، H، G باہر اہم F پرنٹ گا کچھ دوسری معلومات، کے ساتھ جو آپ کو ایک اشارہ دیتا ہے، ٹھیک ہے اہم کہا جاتا F، بلایا G F، G، H بلایا اور وہ کہاں ہے میں فی الحال اپنے پروگرام میں ہوں. تو یہ واقعی مفید ہو سکتا ہے خاص طور پر GDB کے خفیہ پن کے طور پر کرنے کے لئے، ایک چھوٹا سا زبردست بن چیزیں ہیں کہاں باہر تلاش. آخر میں، آپ کے پروگرام کیا جاتا ہے جب، تم نے کیا کر رہے ہیں جب یا یہ ٹھیک اور آپ کو قدم کرنا چاہتے ہیں GDB ماحول سے، یہ اس سے باہر حاصل کرنے کے لئے کس طرح پتہ کرنے میں مدد ملتی ہے. آپ Q ٹائپ، یا باہر حاصل کرنے کے لئے، چھوڑ کر سکتے ہیں. اب، آج کی ویڈیو سے پہلے میں ایک چھوٹی گاڑی پروگرام تیار میں مرتب جس بلایا چلانے buggy1، buggy1.c کے طور پر جانا جاتا ہے ایک فائل سے. آپ کو اس توقع کر سکتے ہیں پروگرام اصل چھوٹی گاڑی میں ہے. کچھ غلط ہو جاتا جب میں کوشش کرتے ہیں اور اسے چلاتے ہیں. اب بدقسمتی سے، میں نے نادانستہ طور ، میرے buggy1.c کے فائل کو خارج کر تاکہ حکم میں مجھے پتہ کرنے کے لئے کیا، اس پروگرام کے ساتھ غلط ہو رہا ہے میں استعمال کرنے کے لئے جا رہا ہوں GDB قسم کی آنکھ بند کر کے، کی کوشش کر رہے اس پروگرام کے ذریعے تشریف لے کرنے کے لئے غلط ہو رہا ہے بالکل وہی جو پتہ. لیکن صرف ٹولز کا استعمال کرتے ہم نے پہلے ہی کے بارے میں سیکھا ہے ہم نے بہت اعداد و شمار کر سکتے ہیں یہ بالکل وہی جو باہر. تو کرنے کے لئے اوپر سے سر دو CS50 IDE، اور ایک نظر ہے. ٹھیک ہے، تو ہم یہاں ہیں میرے CS50 IDE ماحول، اور میں نے تھوڑا سا میں زوم کریں گے لہذا آپ کو ایک چھوٹا سا زیادہ دیکھ سکتے ہیں. میرے ٹرمنل ونڈو میں، میں نے فہرست تو اپنے موجودہ ڈائریکٹر کے مندرجات LS کے ساتھ، ہم اس میں دیکھتا ہوں منبع فائلوں کے ایک جوڑے کی ہے یہاں، سمیت پہلے چلانے buggy1 پر تبادلہ خیال کیا. کیا بالکل جب پر جاتا ہے میں کوشش کریں اور چلانے buggy1 چلانے. ویسے چلو باہر تلاش. میں، ڈاٹ سلیش ٹائپ چھوٹی گاڑی، اور میں درج کریں مارا. انقطاع گناہ. یہ اچھا نہیں ہے. آپ کو یاد ہے تو، ایک انقطاع غلطی عام طور پر ہم میموری رسائی وقت ہوتی ہے جب ہم چھو کرنے کی اجازت نہیں کر رہے ہیں. ہم کسی نہ کسی طرح پہنچ گئے حد سے باہر کس پروگرام، سنکلک، ہمیں دیا ہے. اور اس طرح پہلے سے ہی اس ایک اشارہ آلات میں رکھنے کے لئے ہم ٹھیک عمل شروع کے طور پر. کچھ یہاں ایک چھوٹا سا غلط چلا گیا ہے. ٹھیک ہے، تو چلو شروع GDB ماحول ہم پتہ کر سکتے ہیں اور دیکھو بالکل وہی مسئلہ ہے. میرے سکرین صاف کرنے کے لئے جا رہا ہوں اور میں GDB ٹائپ کرنے جا رہا ہوں ایک بار پھر، GDB ماحول میں داخل ہونے، اور پروگرام کے نام میں، چلانے buggy1 ڈیبگ کرنا چاہتے ہیں. ہم پڑھ، ایک چھوٹا سا پیغام ملتا ہے چلانے buggy1 کی علامات، کیا. مطلب یہ ہے کہ یہ سب نکالا جاتا ہے ایک ساتھ مل کر تمام کوڈ، اور اب اس میں بھری ہوئی کیا گیا ہے GDB، اور اسے جانے کے لئے تیار ہے. اب، مجھے کیا کرنا چاہتے ہیں؟ آپ کو کیا یاد کریں پہلا قدم عام طور پر ہے میں اس ماحول کے اندر ہوں کے بعد؟ امید ہے، آپ کو مقرر کیا ایک وقفے کے نقطہ، کیونکہ حقیقت میں ہے کہ میں کیا کرنا چاہتے ہے. اب، میں نہیں ہے اس کے لئے ماخذ کوڈ میرے سامنے، جو شاید ہے نہیں عام استعمال کے کیس، راہ کی طرف سے. تم شاید. تو یہ اچھی بات ہے. لیکن سنبھالنے تم نہیں، کیا کرتے آپ جانتے ہیں کہ ایک تقریب ہر C پروگرام میں موجود ہے؟ کوئی بات نہیں کتنا بڑا یا پیچیدہ یہ ہے، اس تقریب کو یقینی طور پر موجود ہے. اہم، ٹھیک ہے؟ چنانچہ اس کے علاوہ، ہم کر سکتے ہیں میں ناکامی اہم میں ایک بریک پوائنٹ قائم. اور پھر، میں صرف ٹائپ کر سکتے ہیں بجائے بی کے، اہم توڑنے. اور تم جاننا چاہتے ہیں تو اگر کبھی ایک طویل کمانڈ ٹائپ اور پھر آپ کو احساس ہوتا ہے کہ غلط چیز ٹائپ، اور آپ سے چھٹکارا حاصل کرنا چاہتے ہیں کے تمام میں صرف کے طور پر کیا، آپ جس میں، کنٹرول یو لے سکتے ہیں سب کچھ کو خارج اور آپ کو واپس لانے کے کرسر لائنوں کے شروع کرنے کے لئے. صرف نیچے کی پکڑ سے تیزی سے ایک بہت حذف، یا یہ ایک گروپ بار مارنے زیادہ. تو ہم اہم میں ایک بریک پوائنٹ قائم کریں گے. اور آپ دیکھ سکتے ہیں، یہ ہم نے کا کہنا ہے کہ فائل buggy1.c کے میں ایک بریک پوائنٹ قائم، اور بظاہر پہلی لائن اہم کوڈ کے مطابق سات ہے. ایک بار پھر، ہمارے پاس نہیں ہے یہاں ذریعہ فائل، لیکن میں یہ ہے کہ فرض کریں گے مجھے سچ کہہ رہا. اور پھر، میں صرف کوشش کر رہا ہوں اور R، پروگرام کو چلانے کے. پروگرام شروع. ٹھیک ہے، تو یہ پیغام ایک چھوٹا سا خفیہ ہے. لیکن بنیادی طور پر کیا ہے یہاں کیا ہو رہا ہے یہ صرف ہے میں اپنے وقفے مارا ہے مجھ سے کہہ رہی نقطہ، بریک پوائنٹ نمبر 1. اور پھر، کوڈ کے اس لائن، ایسی کوئی فائل یا ڈائریکٹری. صرف وجہ یہ ہے کہ میں اس پیغام دیکھ رہا ہوں میں نے نادانستہ طور پر کی وجہ سے میرے buggy.c فائل کو خارج کر. میرے buggy1.c کے فائل موجود موجودہ ڈائریکٹری میں، وہاں اصل میں کریں گے کہ لائن حق مجھے بتاو کیا کوڈ کی لائن لفظی پڑھتا. بدقسمتی سے، میں اسے حذف. ہم اس قسم کی تشریف لے کرنے کے لئے جا رہے ہیں زیادہ آنکھ بند کر کے یہ تھوڑا ذریعے. ٹھیک ہے، تو چلو دیکھتے ہیں، کیا میں یہاں کیا کرنا چاہتے ہیں؟ ٹھیک ہے، میں مقامی کیا جاننا چاہتے ہیں متغیر ہو سکتا ہے مجھ سے دستیاب ہیں. میں نے اپنے پروگرام شروع کر دیا ہے. کی ہو سکتا ہے کیا دیکھتے ہیں پہلے سے ہی ہمارے لئے initialized ہے. میں معلومات مقامی لوگوں کے، کوئی مقامی ٹائپ. ٹھیک ہے، نہیں ہے تو مجھے معلومات کے ایک ٹن دے. میں کوشش کریں اور ایک متغیر باہر پرنٹ کر سکتے ہیں، لیکن میں کسی بھی متغیر کے نام نہیں جانتے. میں واپس ٹریس کوشش کر سکتے ہیں، لیکن میں اہم کے اندر ہوں، تو میں نے نہیں بنایا ہے جانتے ہیں اب ایک اور تقریب کال. میری صرف اختیارات ہیں کی طرح لگ رہا ہے تو ن یا تو استعمال کرتے ہیں اور میں گوتا لگا کرنے کے لئے شروع کرنے کے لئے. میں (ن) استعمال کرنے کے لئے جا رہا ہوں. تو میں (ن) ٹائپ کریں. گوش اوہ میرے، یہاں کیا چل رہا ہے. پروگرام سگنل موصول، SIGSEGV انقطاع غلطی، اور پھر چیزیں کی ایک پوری چڑھانے. میں نے پہلے ہی ابیبھوت ہوں. ویسے، اصل میں وہاں ایک بہت کچھ یہاں سیکھا جائے. تو کیا یہ ہمارے بتاتا ہے؟ کیا یہ ہمیں بتاتا ہے اس پروگرام ہے، ہے کے بارے میں ہے، لیکن ابھی تک نہیں، SEG غلطی. اور خاص طور پر، میں جا رہا ہوں مزید بھی یہاں میں زوم کرنے کے، اس کے بارے میں seg غلطی کرنے کے بارے میں ہے کچھ strcmp بلایا. اب، ہم نے بات چیت نہیں کر سکتے ہیں بڑے پیمانے پر اس تقریب. ہم جا نہیں کر رہے ہیں کیونکہ یہ is-- ہر تقریب کے بارے میں بات کرنے کے لئے اس C معیاری میں موجود لائبریری لیکن وہ آپ کے لئے تمام دستیاب ہیں آپ کو ایک لے خاص طور پر اگر reference.cs50.net دیکھو. اور strcmp ایک بہت طاقتور ہے کے اندر موجود اس تقریب string.h کے ہیڈر کے ایک ہیڈر ہے جو فائل، افعال کے لئے وقف کیا جاتا ہے کہ فائل کے ساتھ کام اور ڈور جوڑتوڑ. اور خاص طور پر، کیا strcmp کرتا ہے یہ دو ڈور کی اقدار کا موازنہ. تو میں انقطاع غلطی کے بارے میں ہوں ایک کال پر ایسا لگتا ہے strcmp سے. ، میں (ن) کو نشانہ بنانے، اور میں حقیقت میں پیغام ملتا ہے پروگرام سگنل SIGSEGV ساتھ ختم انقطاع غلطی. تو اب میں واقعی میں مؤرد الزام ٹھہرایا SEG ہے، اور اپنے پروگرام خوبصورت ہے زیادہ مؤثر طریقے سے چھوڑ دیا. اس پروگرام کے اختتام ہے. یہ ٹوٹ گیا، اس اجلاس. تو ایک بہت کچھ نہیں تھا، لیکن میں اصل میں بہت تھوڑا سا سیکھا اس چھوٹے تجربے سے. میں کیا سیکھا ہے؟ ویسے، میرا پروگرام کریش فوری طور پر بہت زیادہ. میرا پروگرام پر کریش ایک strcmp کو پکارے، لیکن میں میں کسی بھی مقامی متغیر نہیں ہے میری یہ کریش اس وقت پروگرام. تو کیا سٹرنگ، یا ڈور، میں ممکنہ طور پر ہو سکتا ہے کا موازنہ. میں کسی بھی مقامی نہیں ہے تو متغیر پرممکن ہے کہ آپ شاید ایک ہے میں وہاں have-- کہ شبہ سچ ہو سکتا ہے جو عالمی متغیر،. لیکن عام طور پر، ایسا لگتا ہے جیسے میں موازنہ کر رہا ہوں موجود نہیں ہے کہ کچھ کے لئے. تو تحقیقات دو ایک چھوٹی سی نے مزید کہا کہ. تو میں نے اپنے سکرین صاف کرنے کے لئے جا رہا ہوں. میں باہر چھوڑ کر جا رہا ہوں ایک سیکنڈ کے لئے GDB ماحول. اور میں ٹھیک ہے، میں سوچ رہا ہوں، تو وہاں ہے اپنے پروگرام میں کوئی مقامی متغیر. میں منتقل کرنے کی توقع کر رہا ہوں ہو سکتا ہے تو مجھے حیرت ہے ایک کمانڈ لائن کی دلیل کے طور پر ایک تار میں. تو صرف اس سے باہر کی جانچ کرنے دیں. میں نے پہلے یہ نہیں کیا. میں اس پروگرام چلاتے شاید تو چلو دیکھتے ہیں اگر ایک کمانڈ لائن کی دلیل کے ساتھ یہ کام کرتا ہے. ہہ، وہاں کوئی انقطاع غلطی. یہ صرف میں نے اسے باہر سوچا کہ مجھ سے کہا. تو شاید اس کو ٹھیک یہاں ہے. میں واپس جانا اور اگر اور یقینا، دیکھو buggy1.c کے لئے اصل منبع کوڈ، میں کیا کر رہا ہوں ایسا لگتا ہے جیسے میں بغیر strcmp کو کال کر رہا ہوں حقیقت میں ہے argv [1] موجود ہے چاہے جانچ پڑتال. یہ اصل میں ہے buggy1.c کے لئے ماخذ کوڈ. تو میں واقعی کرنے کی ضرورت ہے اپنے پروگرام کو حل کرنے کے لئے یہاں ہے، سنبھالنے میں ہے ، ہے میرے سامنے دائر صرف بنانے کے لئے ایک چیک شامل کرنے کے لئے اس بات کا یقین ہے اس argc 2 کے برابر ہے. تو اس مثال، پھر میں،، نے کہا صحیح، تھوڑا سا کر contrived ہے؟ آپ عام طور پر نہیں کر رہے ہیں اتفاقی طور پر آپ کے منبع کوڈ کو خارج کر دیں اور اس کے بعد کی کوشش کی ہے اور پروگرام ڈیبگ. لیکن امید ہے کہ، اسے دیا آپ کو ایک مثال چیزوں کی قسم کے آپ کے بارے میں سوچ کیا جا سکتا ہے کے طور پر آپ کو اپنے پروگرام ٹھیک کر رہے ہیں. یہاں معاملات کی حالت کیا ہے؟ کیا متغیر مجھے کیا کرنا ہے مجھ سے قابل رسائی ہے؟ کہاں بالکل میری پروگرام ہے کیا لائن پر، اجلاس ہونے کے تناظر، کیا تقریب میں کیا کہتے ہیں؟ سراگ کی کس قسم کی ہے کہ مجھے دیتا ہے؟ اور یہ کہ بالکل وہی جو ہے ذہنیت کی قسم ہے کہ آپ کو تم جب میں ہو رہی ہے کیا جانا چاہئے آپ کے پروگراموں ٹھیک کے بارے میں سوچ. میں ڈوگ لایڈ ہوں. یہ CS50 ہے.