CodeGym کمیونٹی میں سب کو ہیلو! آج آئیے ڈیبگنگ کے بارے میں بات کرتے ہیں — یہ کیا ہے اور IntelliJ IDEA میں کیسے ڈیبگ کرنا ہے۔ یہ مضمون ان لوگوں کے لیے ہے جو پہلے ہی جاوا کور کے بارے میں کم سے کم علم رکھتے ہیں۔ لائبریریوں کو شائع کرنے کے لیے کوئی فریم ورک یا پیچیدہ طریقہ کار نہیں ہوگا۔ آرام سے ٹہلنا۔ تو اپنے آپ کو آرام دہ بنائیں اور آئیے شروع کریں!
پروجیکٹ کو منتخب کریں اور اوکے کو دبائیں ۔ پھر آپ کو درج ذیل ونڈو نظر آئے گی: منتخب کردہ آپشنز کو چھوڑیں: بیرونی ذرائع سے پروجیکٹ درآمد کریں اور Maven ۔ ختم پر کلک کریں ۔ اب جب کہ ہم نے پروجیکٹ درآمد کر لیا ہے، ہم باقی عمل کو ایک زندہ مثال کے ساتھ بیان کر سکتے ہیں۔
ڈیبگ سیکشن میں آئیکن تلاش کریں۔ یہ تمام بریک پوائنٹس کو خاموش کر دے گا۔ یہ دیکھنے کے لیے کہ کون سے بریک پوائنٹس سیٹ کیے گئے ہیں، آپ یا تو نیچے بائیں کونے میں ڈیبگ سیکشن میں جا کر آئیکن تلاش کر سکتے ہیں
، یا Ctrl+Shift+F8 دبائیں :
بریک پوائنٹس کی فہرست میں منتقل ہونے سے، ہم درج ذیل دیکھیں گے:
دو بریک پوائنٹس ہیں۔ یہاں:
ظاہر ہونے والی ونڈو میں، اس استثناء کا نام لکھیں جسے آپ شامل کرنا چاہتے ہیں، فہرست سے منتخب کریں اور OK پر کلک کریں :
اس سے ہمارا پرائمر ختم ہوتا ہے کہ چیزوں کو کیسے ترتیب دیا جائے، لہذا اب ہم' کچھ مشق پر آگے بڑھیں گے۔
دستاویزی README فائل کے مطابق ، جو پروجیکٹ کی روٹ ڈائرکٹری میں پایا جا سکتا ہے، ان تمام پھولوں کا متوقع برتاؤ جن سے امرت اکٹھا کیا جاتا ہے، جمع شدہ شہد کی مقدار (جو ڈبل کی شکل اختیار کرتا ہے ) کے نصف کے برابر ہے۔ جمع امرت. پروجیکٹ میں درج ذیل کلاسز ہیں:
ہمیں تحقیق کرنے اور اس بات کا تعین کرنے کی ضرورت ہے کہ مسئلہ کیا ہے۔ نچلے دائیں کونے میں موجود ٹریس اسٹیک سے، ہم دیکھ سکتے ہیں کہ RuntimeException اس پر پھینکا گیا تھا
بس وہی ہے جس کے بارے میں ہم اوپر بات کر رہے تھے۔ آئیے
نتیجے کے طور پر، ہم استثناء کے پھینکے جانے سے پہلے ہی پروگرام کو روک دیں گے اور ہمیں یہ آئیکن نظر آئے گا: ![IntelliJ IDEA میں ڈیبگنگ: ایک ابتدائی رہنما - 17]()
تمام دستیاب معلومات حاصل کرنے کے لیے، ہمیں ڈیبگ سیکشن میں دیکھنے کی ضرورت ہے۔ اس میں ایک متغیر پین ہے جو ایپلیکیشن کے اس حصے میں دستیاب تمام متغیرات کو دکھاتا ہے:
ایپلیکیشن مکمل ہونے تک چلتی ہے اور درج ذیل جواب دیتی ہے۔
اب سب کچھ ٹھیک ہو جائے گا، لیکن یہ جواب غلط ہے... README فائل کے مطابق ، امرت کو 2 سے 1 کے تناسب سے شہد میں تبدیل کیا جاتا ہے:
ہم اس نکتے پر مزید تفصیل سے غور کریں گے۔ پروگرام نے لائن 28 پر عمل کرنے سے پہلے عمل کرنا بند کر دیا۔ نچلے حصے میں، ہم ڈیبگ سیکشن دیکھتے ہیں، جو چل رہی ایپلیکیشن کے بارے میں تمام دستیاب معلومات کو ظاہر کرتا ہے۔ جیسا کہ پہلے ہی ذکر کیا جا چکا ہے، ویری ایبل پین میں ایپلی کیشن کے اس حصے سے دستیاب تمام متغیرات اور اشیاء شامل ہیں۔ فریمز پین ان مراحل کو دکھاتا ہے جن سے ایپلیکیشن گزر رہی ہے — آپ پچھلے (فریمز) کے مراحل کو دیکھ سکتے ہیں اور تمام مقامی ڈیٹا دیکھ سکتے ہیں۔ پروگرام کو جاری رکھنے کے لیے، آپ F9 یا سبز آئیکن کو دبا سکتے ہیں، جیسا کہ ذیل میں دکھایا گیا ہے:
پروگرام کو روکنے کے لیے، سرخ مربع پر کلک کریں:
ڈیبگ موڈ میں ایپلیکیشن کو دوبارہ شروع کرنے کے لیے، تیر پر کلک کریں:
مزید، آپ آگے بڑھ سکتے ہیں۔ دو کلیدوں کا استعمال کرتے ہوئے مرحلہ وار درخواست:
استعمال کریں گے اور بیان کریں گے کہ اس میں کیا ہوتا ہے:
README فائل میں ایک خامی ہے اور اسے اپ ڈیٹ کرنے کی ضرورت ہے۔ آئیے README فائل کو اپ ڈیٹ کریں:
Stack Overflow CodeGym پر مضامین پڑھ سکتے ہیں :)

آپ کو ڈیبگ موڈ کی ضرورت کیوں ہے۔
آئیے فوری طور پر اپنے لیے کچھ واضح کریں: کیڑے کے بغیر کوئی کوڈ نہیں ہے... زندگی اسی طرح کام کرتی ہے۔ لہذا، اگر ہمارا کوڈ ہماری توقع کے مطابق کام نہیں کرتا ہے تو ہمیں ٹکڑے ٹکڑے نہیں ہونا چاہئے اور ہمت نہیں ہارنی چاہئے۔ لیکن ہمیں کیا کرنا چاہیے؟ ٹھیک ہے، ہم ہر جگہ بیانات ڈال سکتے ہیںSystem.out.println
اور پھر غلطی تلاش کرنے کی امید میں کنسول آؤٹ پٹ کے ذریعے کنگھی کر سکتے ہیں۔ اس نے کہا، آپ محتاط لاگنگ کا استعمال کرتے ہوئے (اور لوگ کرتے ہیں) ڈیبگ کر سکتے ہیں۔ لیکن اگر آپ اپنا کوڈ مقامی مشین پر چلا سکتے ہیں تو ڈیبگ موڈ استعمال کرنا بہتر ہے۔ میں ابھی نوٹ کرنا چاہتا ہوں کہ اس مضمون میں ہم IntelliJ IDEA کا استعمال کرتے ہوئے ایک پروجیکٹ کو ڈیبگ کرنے پر غور کریں گے۔
ڈیبگ موڈ کیا ہے؟
ڈیبگ موڈ ڈیبگنگ (چیکنگ) چلانے والے کوڈ کے لیے ہے۔ یہ آپ کے لیے نامزد جگہوں پر عمل درآمد کو روکنا اور یہ دیکھنا ممکن بناتا ہے کہ چیزیں کیسے آگے بڑھ رہی ہیں۔ یہ آپ کو کوڈ میں کسی خاص جگہ پر پروگرام کی حالت کو سمجھنے دیتا ہے۔ یہ بالکل ایسے ہی ہے جیسے گھڑی کو روک کر ہر چیز کو پہلو سے دیکھنے کے قابل ہو۔ ٹھنڈا، ٹھیک ہے؟ ہمارا مقصد اپنے پیارے IntelliJ IDEA ترقیاتی ماحول کا استعمال کرتے ہوئے ایپلیکیشنز کو ڈیبگ کرنے کا طریقہ جلدی اور آسانی سے سیکھنا ہے۔آپ کو ڈیبگنگ شروع کرنے کی ضرورت ہے۔
یہاں کچھ مفت مشورہ ہے: اس مضمون کو پڑھتے ہوئے، وہ سب کچھ کریں جو یہاں بیان کیا جائے گا — آپ کے پاس وہ سب کچھ ہے جس کی آپ کو پیروی کرنے کی ضرورت ہے۔ تمہیں کیا چاہیے:- IntelliJ IDEA ورژن 2019.3.1 یا اس سے زیادہ۔ اگر کسی کے پاس یہ نہیں ہے تو، یہاں ایک لنک ہے جہاں سے آپ اسے ڈاؤن لوڈ کر سکتے ہیں ۔ کمیونٹی ایڈیشن ڈاؤن لوڈ کریں — یہی وہ ورژن ہے جسے میں استعمال کروں گا۔
- اس GitHub پروجیکٹ کو کلون کریں اور اسے IDEA کے ذریعے درآمد کریں۔


تھوڑا سا نظریہ... میں وعدہ کرتا ہوں : ڈی
تھوڑا سا ڈیبگ کرنا شروع کرنے کے لیے، آپ کو یہ سمجھنا ہوگا کہ بریک پوائنٹ کیا ہے اور چند ہاٹ کیز سے واقف ہونا ضروری ہے۔ بریک پوائنٹ ایک خاص مارکر ہوتا ہے جو اس بات کی نشاندہی کرتا ہے کہ آپ ایپلیکیشن کا عمل کہاں رکنا چاہتے ہیں، ممکنہ طور پر درخواست کی حالت کی بنیاد پر۔ آپ یا تو بائیں جانب والے پینل پر بائیں طرف کلک کرکے، یا کوڈ کے مقام پر کلک کرکے اور Ctrl+F8 دباکر بریک پوائنٹ سیٹ کرسکتے ہیں ۔ آئیے بریک پوائنٹس کی تین اقسام دیکھیں: لائن بریک پوائنٹس، فیلڈ واچ پوائنٹس، اور طریقہ بریک پوائنٹس۔ یہ اس طرح نظر آتا ہے:-
ایک لائن پر:
اگر کسی بیان میں لیمبڈا اظہار ہے، تو IDEA آپ کو یہ انتخاب کرنے کا اشارہ کرتا ہے کہ آیا بریک پوائنٹ کو پورے بیان پر رکھنا ہے یا خاص طور پر لیمبڈا اظہار پر:
-
ایک طریقہ پر:
-
کلاس پر:




- Bee.java:24 — لائن 24 پر Bee کلاس میں
- Main.java:14 — لائن 14 پر مین کلاس میں


آئیے ڈیبگنگ نامی اس چیز کو کرتے ہیں!
میں خاندانی شہد کی مکھیاں پالنے والوں کی ایک لمبی قطار سے آتا ہوں، اس لیے میں نے ڈیبگنگ کی مثال دینے کے لیے جو پروجیکٹ بنایا ہے اس میں شہد کی مکھیوں کے امرت کو جمع کرنے، امرت کو شہد میں پروسیس کرنے، اور پھر شہد کے چھتے سے شہد حاصل کرنے کے ماڈل کو بیان کیا گیا ہے۔- مکھی - ایک عام ورکر مکھی
- BeeQueen - ملکہ مکھی
- شہد کی مکھیوں کے چھتے
- ہنی پلانٹ - ایک شہد کا پودا (امرت کا ذریعہ) جس سے امرت اکٹھا کیا جاتا ہے۔
- مین - یہ وہ جگہ ہے جہاں ہم تلاش کرتے ہیں
public static void main()
، وہ طریقہ جہاں سے عملدرآمد شروع ہوتا ہے۔
main()
طریقہ کو چلاتے ہیں، تو ہمیں معلوم ہوتا ہے کہ ہمارا پروگرام نہ صرف شہد کی مقدار کا حساب نہیں لگاتا، بلکہ یہ ایک استثناء بھی کرتا ہے... 
HoneyPlant.java:20
: 
main()
ڈیبگ موڈ میں طریقہ کو چلا کر اس RuntimeException کو دیکھتے ہیں۔ main()
ایسا کرنے کے لیے، طریقہ کے آگے IntelliJ IDEA میں سبز مثلث کے تیر پر کلک کریں ۔ 


- امرت = 1.0؛
- امرت کی صلاحیت = -1.0۔
if (nectar == 0) {
return 0;
}
لیکن مصیبت یہ ہے کہ ہم غلط متغیر کی جانچ کر رہے ہیں۔ یہ کوڈ میں ایک غلطی ہے۔ پھول میں دستیاب امرت کی مقدار کو چیک کرنے کے بجائے (جو نیکٹر کیپیسیٹی متغیر میں محفوظ ہے)، پروگرام طریقہ کے امرت پیرامیٹر کی قدر کو چیک کرتا ہے، جو کہ امرت کی مقدار ہے جو ہم پھول سے لینا چاہتے ہیں۔ یہ رہا! ہمارا پہلا بگ! اسے ٹھیک کرنے کے بعد، ہمیں درج ذیل کوڈ ملتا ہے:
if (nectarCapacity == 0) {
return 0;
}
اب main()
طریقہ کو نارمل طریقے سے چلائیں (Run 'Main.main()')
۔ اس میں کوئی رعایت نہیں ہے، اور پروگرام کام کرتا ہے: 
"33.0 honey was produced by 7 bees from 2 honey plants"
## Documentation
Presentation based on honey production.
**Note**: 2 units of nectar = 1 unit of honey
مرکزی طریقہ میں واضح طور پر دو شہد کے پودے ہیں جن میں بالترتیب 30 اور 40 یونٹ امرت ہیں۔ لہذا ہمیں بالآخر شہد کی 35 یونٹس کے ساتھ ختم کرنا چاہئے۔ لیکن پروگرام ہمیں بتا رہا ہے کہ ہمیں 33 ملے۔ باقی دو یونٹ کہاں گئے؟ آئیے معلوم کرتے ہیں! ایسا کرنے کے لیے، Main.main()
لائن 28 پر طریقہ کار میں ایک بریک پوائنٹ سیٹ کریں، جہاں beeHive.populateHoney()
کہا جاتا ہے اور main()
طریقہ کو ڈیبگ موڈ میں چلائیں: 



- F8 - طریقوں میں قدم رکھے بغیر کوڈ کے ذریعے قدم اٹھائیں؛
- F7 - کوڈ کے ذریعے قدم رکھیں اور طریقوں میں قدم رکھیں۔
beeHive.populateHoney()
ہمارے معاملے میں، ہمیں طریقہ میں قدم رکھنے کے لیے F7 دبانے کی ضرورت ہے ۔ اس میں قدم رکھتے ہوئے، ہم حاصل کرتے ہیں: اب ہم اس طریقہ کار سے گزرنے کے لیے F8
- لائن 25 — Stream API کا استعمال تمام شہد کی مکھیوں سے امرت اکٹھا کرنے کے لیے کیا جاتا ہے۔
- لائن 26 — نئے بنائے گئے شہد کو موجودہ شہد میں شامل کیا جاتا ہے۔
- لائن 27 - ملکہ کے لیے شہد کے 2 یونٹ مختص کیے گئے ہیں۔
- لائن 28 - یہ دونوں اکائیاں شہد کی کل مقدار سے ہٹا دی جاتی ہیں۔
- لائن 29 - ملکہ یہ شہد کھاتی ہے۔
## Documentation
Presentation based on honey production.
**Note**:
* 2 units of nectar = 1 unit of honey
* The queen bee eats 2 units of honey every time when beehive is replenished with honey.
ہم کر چکے ہیں۔ ہم نے پائے جانے والے تمام کیڑے ٹھیک کر دیے ہیں۔ ہم سکون کے ساتھ اسمگ نظر کے ساتھ آگے بڑھ سکتے ہیں، کافی کے گھونٹ پی سکتے ہیں، اور آئیے خلاصہ کرتے ہیں۔
اس مضمون میں، ہم نے سیکھا:- ہر ایک کے کام میں غلطیاں ہوتی ہیں اور ڈیبگنگ ان کو ٹھیک کرنے کا ایک بہترین طریقہ ہے۔
- بریک پوائنٹ کیا ہے اور کس قسم کے بریک پوائنٹس ہیں۔
- استثنیٰ بریک پوائنٹ کیسے ترتیب دیا جائے۔
- ڈیبگ موڈ میں کوڈ کے ذریعے جانے کا طریقہ
GO TO FULL VERSION