هيلو هرڪو CodeGym ڪميونٽي ۾! اڄ اچو ته ڊيبگنگ بابت ڳالهايون - اهو ڇا آهي ۽ IntelliJ IDEA ۾ ڊيبگ ڪيئن ڪجي. هي آرٽيڪل انهن ماڻهن لاءِ آهي جن کي اڳ ۾ ئي جاوا ڪور جي گهٽ ۾ گهٽ ڄاڻ آهي. لائبريرين کي شايع ڪرڻ لاءِ ڪي به فريم ورڪ يا پيچيده طريقا نه هوندا. آرام سان گھمڻ. تنهن ڪري پنهنجو پاڻ کي آرام سان ٺاهيو ۽ اچو ته شروع ڪريون!
پروجيڪٽ چونڊيو ۽ دٻايو OK . پوء توھان ھيٺ ڏنل ونڊو ڏسندا: چونڊيل اختيارن کي ڇڏي ڏيو: خارجي ذريعن مان پروجيڪٽ درآمد ڪريو ۽ Maven . ڪلڪ ڪريو ختم ڪريو . هاڻي ته اسان پروجيڪٽ کي درآمد ڪيو آهي، اسان باقي عمل کي هڪ زنده مثال سان بيان ڪري سگهون ٿا.
ڊيبگ سيڪشن ۾ آئڪن کي ڳولھيو. هي سڀ بريڪ پوائنٽ کي خاموش ڪندو. ڏسڻ لاءِ ته ڪھڙا بريڪ پوائنٽس سيٽ ڪيا ويا آھن، توھان يا ته ھيٺئين کاٻي ڪنڊ ۾ ڊيبگ سيڪشن ڏانھن وڃو ۽ آئڪن کي ڳولي سگھو ٿا
، يا Ctrl+Shift+F8 کي دٻائي سگھو ٿا :
بريڪ پوائنٽس جي لسٽ ڏانھن ھلندي، اسان ھيٺيون ڏسنداسين:
اتي ٻه بريڪ پوائنٽس آھن. هتي:
جيڪا ونڊو ظاهر ٿئي ٿي، ان استثناءَ جو نالو لکو جيڪو توھان شامل ڪرڻ چاھيو ٿا، فهرست مان چونڊيو ۽ OK تي ڪلڪ ڪريو :
اھو اسان جي پرائمر کي ختم ڪري ٿو ته شين کي ڪيئن سيٽ اپ ڪجي، سو ھاڻي اسان ' ڪجھ مشق تي اڳتي وڌو.
دستاويزن مطابق README فائل، جيڪا پروجيڪٽ جي روٽ ڊاريڪٽري ۾ ڳولهي سگهجي ٿي، انهن سڀني گلن جو متوقع رويو ، جن مان امرت گڏ ڪئي ويندي آهي، گڏ ڪيل ماکي جي مقدار (جيڪو ڊبل جي صورت ۾ وٺندو آهي ) جي اڌ جي برابر هوندو. گڏ ڪيل امرت. پروجيڪٽ هيٺ ڏنل طبقن تي مشتمل آهي:
اسان کي تحقيق ڪرڻ گهرجي ۽ اهو طئي ڪرڻ گهرجي ته مسئلو ڇا آهي. ھيٺئين ساڄي ڪنڊ ۾ ٽريڪ اسٽيڪ مان، اسان ڏسي سگھون ٿا ته ھڪڙي RuntimeException ۾ اڇلائي وئي ھئي
اھو اھو آھي جيڪو اسان مٿي بابت ڳالهائي رھيا ھئاسين. اچو ته ڏسو هن RuntimeException لاءِ
نتيجي طور، اسان پروگرام کي فوري طور تي روڪي ڇڏينداسين، استثنا اڇلائڻ کان اڳ ۽ اسين هي آئڪن ڏسندا سين: ![IntelliJ IDEA ۾ ڊيبنگ: هڪ شروعاتي گائيڊ - 17]()
سڀ موجود معلومات حاصل ڪرڻ لاء، اسان کي ڏسڻ جي ضرورت آهي ڊيبگ سيڪشن. اهو هڪ متغير پين آهي جيڪو ڏيکاري ٿو سڀني متغيرن کي اپليڪيشن جي هن حصي ۾ موجود آهي:
ايپليڪيشن مڪمل ٿيڻ تي هلندو آهي ۽ هيٺ ڏنل جواب ڏئي ٿو:
ھاڻي سڀ ڪجھ ٺيڪ ھوندو، پر اھو جواب غلط آھي... دستاويزي README فائل جي مطابق ، امرت کي 2 کان 1 جي تناسب سان ماکي ۾ تبديل ڪيو ويندو آھي:
اسان هن نقطي تي وڌيڪ تفصيل سان غور ڪنداسين. لڪير 28 تي عمل ڪرڻ کان اڳ پروگرام تي عمل ٿيڻ بند ٿي ويو. ھيٺئين حصي ۾، اسان ڏسون ٿا ڊيبگ سيڪشن، جيڪو ھلندڙ ايپليڪيشن بابت سڀ موجود معلومات ڏيکاري ٿو. جيئن اڳ ۾ ئي ذڪر ڪيو ويو آهي، متغير پين ۾ ايپليڪيشن جي هن حصي مان موجود سڀئي متغير ۽ شيون شامل آهن. فريم پين ڏيکاري ٿو اهي مرحلا جيڪي ايپليڪيشن ذريعي وڃي رهيا آهن - توهان ڏسي سگهو ٿا پوئين (فريمز) قدمن ۽ سڀني مقامي ڊيٽا کي ڏسو. پروگرام کي جاري رکڻ لاءِ، توھان ھيٺ ڏنل ڏيکاريل آھي F9
يا سائي آئڪن کي دٻائي سگھو ٿا: پروگرام کي روڪڻ لاءِ، ڳاڙھو اسڪوائر تي ڪلڪ ڪريو:
ايپليڪيشن کي ڊيبگ موڊ ۾ ريسٽارٽ ڪرڻ لاءِ، تير تي ڪلڪ ڪريو:
اڳتي، توھان اڳتي وڌائي سگھوٿا. اپليڪيشن قدم قدم سان ٻه ڪنجيون استعمال ڪندي:
استعمال ڪنداسين ھن طريقي سان قدم کڻڻ لاءِ ۽ بيان ڪنداسين ته ان ۾ ڇا ٿئي ٿو:
دستاويز README فائل ۾ هڪ نقص آهي ۽ ان کي اپڊيٽ ڪرڻ جي ضرورت آهي. اچو ته README فائل کي اپڊيٽ ڪريون:
اسٽيڪ اوور فلو ڪوڊ گيم تي آرٽيڪل پڙهي سگهون ٿا :)

ڇو توهان کي ڊيبگ موڊ جي ضرورت آهي
اچو ته فوري طور تي پاڻ لاءِ ڪجهه واضح ڪريون: ڪيچ کان سواءِ ڪو به ڪوڊ ناهي... اهو ئي آهي زندگي ڪيئن ڪم ڪري ٿي. تنهن ڪري، اسان کي ٽڪرا ٽڪرا نه ڪرڻ گهرجي ۽ ڇڏي ڏيو جيڪڏهن اسان جو ڪوڊ ڪم نه ڪندو آهي جيئن اسان توقع ڪئي هئي. پر اسان کي ڇا ڪرڻ گهرجي؟ يقينن، اسانSystem.out.println
هر جڳهه بيان ڪري سگهون ٿا ۽ پوء هڪ غلطي ڳولڻ جي اميدن ۾ ڪنسول آئوٽ ذريعي ڪم ڪري سگهون ٿا. اهو چيو ته، توهان ڪري سگهو ٿا (۽ ماڻهو ڪندا) محتاط لاگنگ استعمال ڪندي ڊيبگ. پر جيڪڏهن توهان پنهنجو ڪوڊ مقامي مشين تي هلائي سگهو ٿا، اهو بهتر آهي ته ڊيبگ موڊ استعمال ڪريو. مان فوري طور تي نوٽ ڪرڻ چاهيان ٿو ته هن آرٽيڪل ۾ اسان IntelliJ IDEA استعمال ڪندي هڪ منصوبي کي ڊيبگ ڪرڻ تي غور ڪنداسين.
ڊيبگ موڊ ڇا آهي؟
ڊيبگ موڊ ڊيبگنگ (چڪنگ) هلندڙ ڪوڊ لاءِ آهي. اهو توهان لاءِ ممڪن بڻائي ٿو ته توهان مقرر ڪيل هنڌن تي عملدرآمد کي روڪيو ۽ ڏسو ته شيون ڪيئن ترقي ڪري رهيون آهن. اهو توهان کي ڪوڊ ۾ هڪ خاص جڳهه تي پروگرام جي حالت کي سمجهڻ جي اجازت ڏئي ٿو. اهو بلڪل ائين آهي جيئن ڪلاڪ کي روڪڻ ۽ هر شيء کي پاسي کان ڏسڻ جي قابل آهي. ٿڌي، صحيح؟ اسان جو مقصد جلدي ۽ آساني سان سکڻ آهي ته اسان جي پياري IntelliJ IDEA ڊولپمينٽ ماحول کي استعمال ڪندي ايپليڪيشنن کي ڊيبگ ڪيئن ڪجي.توهان کي ڊيبنگ شروع ڪرڻ جي ڪهڙي ضرورت آهي
ھتي ڪجھ مفت مشوري آھي: ھن مضمون کي پڙھڻ دوران، اھو سڀ ڪجھ ڪريو جيڪو ھتي بيان ڪيو ويندو - توھان وٽ اھو آھي جيڪو توھان کي ڪرڻو آھي. توهان کي ڇا گهرجي:- IntelliJ IDEA نسخو 2019.3.1 يا وڌيڪ. صورت ۾ ڪنهن کي اهو نه آهي، هتي هڪ لنڪ آهي جتي توهان ان کي ڊائون لوڊ ڪري سگهو ٿا . ڊائون لوڊ ڪريو ڪميونٽي ايڊيشن - اھو اھو نسخو آھي جيڪو مان استعمال ڪندس.
- هن GitHub منصوبي کي ڪلون ڪريو ۽ ان کي IDEA ذريعي درآمد ڪريو.


ٿورو نظريو... مان واعدو ڪريان ٿو: ڊي
ٿورڙي به ڊيبگنگ شروع ڪرڻ لاءِ، توهان کي سمجهڻ جي ضرورت آهي ته بريڪ پوائنٽ ڇا آهي ۽ ڪجهه گرم چاٻين سان واقف ٿي وڃو. هڪ بريڪ پوائنٽ هڪ خاص مارڪر آهي جيڪو ظاهر ڪري ٿو ته توهان ڪٿي چاهيو ٿا ته ايپليڪيشن جي عمل کي روڪڻ لاءِ، ممڪن طور تي ايپليڪيشن اسٽيٽ جي بنياد تي. توهان بريڪ پوائنٽ سيٽ ڪري سگهو ٿا يا ته کاٻي پاسي واري پينل تي کاٻي پاسي ڪلڪ ڪري، يا ڪوڊ جي جڳھ تي ڪلڪ ڪري ۽ Ctrl+F8 کي دٻائيندي . اچو ته ڏسو ٽن قسمن جي بريڪ پوائنٽس: لائين بريڪ پوائنٽس، فيلڊ واچ پوائنٽس، ۽ ميٿڊ بريڪ پوائنٽس. اهو ڪيئن ڏسڻ ۾ اچي ٿو:-
هڪ خط تي:
جيڪڏهن هڪ بيان ۾ ليمبڊا اظهار آهي، ته پوءِ IDEA توهان کي اهو چونڊڻ لاءِ چيو ته ڇا بريڪ پوائنٽ کي پوري بيان تي رکڻو آهي يا خاص طور تي ليمبڊا اظهار تي:
-
طريقي سان:
-
ڪلاس تي:




- Bee.java:24 — بي ڪلاس ۾ 24 لائن تي
- Main.java:14 — مين ڪلاس ۾ لائن 14 تي


اچو ته اهو ڪم ڪريون جنهن کي ڊيبگنگ سڏيو ويندو آهي!
مان خانداني ماکيءَ پالڻ وارن جي هڪ ڊگهي قطار مان آيو آهيان، تنهن ڪري جيڪو پروجيڪٽ مون ٺاهيو آهي ڊيبگنگ کي واضع ڪرڻ لاءِ ماڊلز کي بيان ڪري ٿو ماکيءَ جي ماکيءَ کي گڏ ڪرڻ، ماکيءَ کي ماکيءَ ۾ پروسيس ڪرڻ، ۽ پوءِ ماکيءَ جي ڇت مان ماکيءَ حاصل ڪرڻ.- مک - هڪ عام ڪم ڪندڙ مک
- BeeQueen- راڻي مکي
- BeeHive- ماکيءَ جو ٻج
- هوني پلانٽ - هڪ ماکيءَ جو ٻوٽو (امرت جو ماخذ) جنهن مان نيڪار گڏ ڪيو ويندو آهي
- مکيه - هي آهي جتي اسان ڳوليندا آهيون
public static void main()
، اهو طريقو جتي عمل شروع ٿئي ٿو.
main()
طريقو هلون ٿا ته پوءِ اسان کي معلوم ٿئي ٿو ته اسان جو پروگرام نه رڳو ماکي جي مقدار جو اندازو لڳائي ٿو، پر اهو پڻ هڪ استثنا ڏئي ٿو ... 
HoneyPlant.java:20
: 
main()
ڊيبگ موڊ ۾ طريقي کي هلائڻ سان. هن کي ڪرڻ لاءِ، طريقي جي اڳيان IntelliJ IDEA ۾ سائي ٽڪنڊي تير تي ڪلڪ ڪريو main()
. 


- امرت = 1.0؛
- nectarCapacity = -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 مليا آهن. باقي ٻه يونٽ ڪيڏانهن ويا؟ اچو ته معلوم ڪريون! هن کي ڪرڻ لاءِ، لائن 28 تي طريقي ۾ هڪ بريڪ پوائنٽ مقرر ڪريو Main.main()
، جتي beeHive.populateHoney()
سڏيو ويندو آهي ۽ main()
طريقو ڊيبگ موڊ ۾ هلايو: 



- F8 - طريقن ۾ قدم کڻڻ کان سواء ڪوڊ ذريعي قدم؛
- F7 - ڪوڊ ذريعي قدم ۽ طريقن ۾ قدم.
beeHive.populateHoney()
طريقي سان قدم کڻڻ لاء. ان ۾ قدم کڻندي، اسان حاصل ڪريون ٿا: ھاڻي اسان F8
- لڪير 25 — اسٽريم 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