Debug code
ڈیبگ کوڈ ایک کمپیوٹر کوڈ ہے جو کمپیوٹر پروگرام میں غلطیوں کی جانچ کرنے یا غلطی کی وجہ کا تعین کرنے میں مدد کے لیے متعارف کرایا جاتا ہے۔ کسی پروگرام کے مخصوص نکات پر متغیر کی قدر کو پرنٹ کرنا ایکو کمانڈ کی طرح آسان ہو سکتا ہے۔ جدید مربوط ترقیاتی ماحول بعض اوقات پروگرام میں مخصوص مقامات پر اسٹاپ پوائنٹس کی جگہ کی اجازت دے کر، اور پروگرام آؤٹ پٹ کے بجائے آئی ڈی ای کے ذریعے متغیرات کی قدر کو دیکھنے کی صلاحیت فراہم کر کے اسے غیر ضروری بنا دیتا ہے۔ ڈیبگ کوڈ کے استعمال ڈیبگ کوڈ کا بنیادی کام ڈیبگ کوڈ میں مدد کرنا ہے۔ یہ کئی طریقوں سے کیا جا سکتا ہے، جیسے کہ پرنٹ سٹیٹمنٹ کا استعمال کرنا، ایسٹرس کمانڈز اور یونٹ ٹیسٹنگ۔ کوڈنگ میں استعمال چھوٹے بیانات کو کوڈ میں شامل کیا جا سکتا ہے تاکہ کسی پروگرام کے اندر کیڑے کی موجودگی اور مقام کو تلاش کیا جا سکے۔ اس کا استعمال ممکنہ استعمال کے معاملات کی تقلید کے لیے ٹیسٹ ان پٹ فراہم کرنے کے لیے بھی کیا جا سکتا ہے جنہیں کسی پروگرام کو قبول کرنے کی ضرورت پڑ سکتی ہے۔ اسے کوڈ کے لیے پلیس ہولڈر کے طور پر بھی استعمال کیا جا سکتا ہے جو اب بھی ترقی میں ہے۔ ویڈیو گیمز میں استعمال کریں بہت سے ویڈیو گیمنگ موڈ، دھوکہ دہی کے کوڈ، جیسے سطح کا دھوکہ دہی کا کوڈ، ناقابل تسخیر وغیرہ۔ اصل میں ڈیبگ کوڈ کے طور پر متعارف کرایا گیا تھا تاکہ پروگرامرز اور/یا ٹیسٹرز کو رکاوٹوں کو چھوڑنے کی اجازت دی جا سکے جو انہیں کھیل کے ان حصوں تک تیزی سے پہنچنے سے روکتے ہیں جن کی جانچ کرنے کی ضرورت ہوتی ہے۔ اور ان صورتوں میں دھوکہ دہی کے طریقوں کو اکثر ڈیبگنگ موڈ کہا جاتا ہے۔ یہ ایک بہترین عمل کے طور پر تجویز کیا جاتا ہے کہ ڈیبگنگ کوڈ کو ایپلی کیشنز کے پروڈکشن ورژن سے ہٹا دیا جائے، کیونکہ یہ ان کی رفتار کو کم کر سکتا ہے۔ تاہم کچھ کھیل ان کمانڈوں اور دھوکہ دہی کو کھلاڑیوں کے لیے اپنے کھیل کے تجربے کو بڑھانے کے لیے استعمال کرنے کے لیے دستیاب کرتے ہیں۔ مثال کے طور پر، دی ایلڈر سکرول وی: اسکائیریم کا پی سی ورژن کھلاڑی کو کمانڈ کنسول تک رسائی کی اجازت دیتا ہے، جس سے وہ اپنے کھیل کے کچھ پہلوؤں میں ترمیم کرنے کی صلاحیت حاصل کرتے ہیں کیونکہ یہ چل رہا ہے۔ ان کمانڈوں میں کھلاڑی کو ناقابل تسخیر، ٹیلی پورٹیشن اور لامحدود سونا دینا شامل ہے۔ ڈیبگ کوڈ پرنٹ ڈیبگنگ کی مثالیں پرنٹ ڈیبگنگ کسی پروگرام میں کیڑے کو تلاش کرنے اور الگ کرنے کے لیے پرنٹ بیانات کا استعمال کرنا ہے۔ اسے کوڈ کے کسی ٹکڑے کے ڈیٹا ویلیوز کے بہاؤ کو ٹریک کرنے کے لیے استعمال کیا جا سکتا ہے۔ اس قسم کے ڈیبگ کوڈ کے کچھ الگ الگ نقصانات ہیں۔ یہ عارضی ہے اور عام طور پر بگ کے حل ہونے پر اسے ہٹا دیا جاتا ہے۔ بہت سے پرنٹ بیانات کا استعمال کسی پروگرام کی اصل پیداوار کو متاثر کر سکتا ہے اور رن ٹائم کو سست کر سکتا ہے، اس پر منحصر ہے کہ پرنٹ بیانات کو کتنی بار کال کیا جاتا ہے۔ بعض صورتوں میں پرنٹ بیانات مسئلے کو تلاش کرنے میں مدد نہیں کرتے، مثال کے طور پر C + + stdout میں بفرڈ آؤٹ پٹ ہوتا ہے، اور بعض اوقات بفر کے مندرجات ضائع ہو جاتے ہیں جس کی وجہ سے غلط ڈیبگنگ کی معلومات ہوتی ہیں۔ C + + مثال کالعدم ٹیسٹ فنکشن (انٹی ٹائمز ٹو رن) {cout <<"الگورتھم کو چلانا چاہیے" <<ٹائمز ٹو رن <<"ٹائمز" <<std:: एन्डل ؛ (انٹی i = 0 ؛ i <= ٹائمز ٹو رن ؛ i + +) {// رن الگورتھم الگورتھم () ؛// ڈیبگ پرنٹ سٹیٹمنٹ cout <<"الگورتھم رن" <<i + + <<"ٹائمز" کے لیے۔ <<std::endl;}} مندرجہ بالا کوڈ میں ایک بگ ہے۔ 5 کے ان پٹ پر پروگرام کو مندرجہ ذیل کو کنسول پر پرنٹ کرنا چاہیے۔ الگورتھم کو 5 بار چلانا چاہیے الگورتھم 1 بار چلائیں۔ الگورتھم 2 بار چلتا ہے۔ الگورتھم 3 بار چلتا ہے۔ الگورتھم 4 بار چلتا ہے۔ الگورتھم 5 بار چلتا ہے۔ اصل آؤٹ پٹ درج ذیل ہے، جو غلط ہے۔ الگورتھم کو 5 بار چلانا چاہیے الگورتھم 1 بار چلائیں۔ الگورتھم 2 بار چلتا ہے۔ الگورتھم 3 بار چلتا ہے۔ الگورتھم 4 بار چلتا ہے۔ الگورتھم 5 بار چلتا ہے۔ الگورتھم 6 بار چلتا ہے۔ ہمارا فنکشن الگورتھم کے ذریعے ایک اضافی وقت چل رہا ہے، اور قریب سے معائنہ کرنے پر یہ واضح ہوتا ہے کہ ہمارا لوپ غلط کوڈ کیا گیا ہے۔ بیانات پر زور دیں عام طور پر بگ کو ٹھیک کرنے کا بہترین وقت پروگرام چلانے سے پہلے ہوتا ہے۔ یہ کوڈ میں دعوے ڈال کر کیا جا سکتا ہے۔ سی میں یہ دعوی () کمانڈ کا استعمال کرتے ہوئے کیا جا سکتا ہے۔ ایک ایسٹرس کمانڈ یہ دیکھنے کے لیے چیک کر سکتی ہے کہ آیا پروگرام میں اس مقام پر پروگرام صحیح شرائط پر چل رہا ہے یا نہیں۔ C مثال int i، a [10] ؛ کے لیے (i = 0 ؛ i <10 ؛ + + i) {a [i] = 10-i ؛} کے لیے (i = 0 ؛ i <10 ؛ + + i) {a [a [i]] = a [i] ؛} مندرجہ بالا کوڈ کی وجہ سے ایک حد سے باہر کی غلطی ہوگی جو کچھ غیر متوقع نتائج کا باعث بن سکتی ہے۔ کوڈ کو دعووں کا استعمال کرتے ہوئے محفوظ طریقے سے لکھا جا سکتا ہے، جیسا کہ ذیل میں دکھایا گیا ہے۔ #include <assert.h> int i، a [10] ؛ کے لیے (i = 0 ؛ i <10 ؛ + + i) {assert (0 <= i & & i <10) ؛ a [i] = 10-i ؛} کے لیے (i = 0 ؛ i <10 ؛ + + i) {assert (0 <= i & & i <10) ؛ assert (0 <= a [i] & & & a [i] <10) ؛ a [a [i] = a [i] = a [i] ؛} JUnit JUnit ایک سادہ فریم ورک ہے جو جاوا کے لیے دستیاب تکراری ٹیسٹ لکھنے کے لیے استعمال ہوتا ہے، اور پروگرامرز کو اپنا یونٹ ٹیسٹ بنانے کی اجازت دیتا ہے۔ یونٹ ٹیسٹ وہ کوڈ ہے جو ٹیسٹ کیے جانے والے کوڈ میں کسی مخصوص فنکشن کو انجام دینے کے لیے لکھا جاتا ہے اور عام طور پر کوڈ کی ایک چھوٹی سی اکائی، اس طرح کے ایک واحد طریقہ یا کلاس کو نشانہ بناتا ہے۔ دعوی بیانات اور دیگر ٹیسٹ بیانات کے امتزاج کا استعمال کرتے ہوئے، پروگرامر ٹیسٹ کیسوں کے سوئٹ بنا سکتے ہیں تاکہ یہ بتایا جا سکے کہ آیا کسی طریقہ یا فنکشن کو مناسب طریقے سے انجام دیا جا رہا ہے۔ حوالہ جات سافٹ ویئر کی دیکھ بھال