CodeGym /జావా బ్లాగ్ /యాదృచ్ఛికంగా /IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్
John Squirrels
స్థాయి
San Francisco

IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్

సమూహంలో ప్రచురించబడింది
కోడ్‌జిమ్ సంఘంలోని ప్రతి ఒక్కరికీ హలో! ఈరోజు డీబగ్గింగ్ గురించి మాట్లాడుకుందాం — ఇది ఏమిటి మరియు IntelliJ IDEAలో ఎలా డీబగ్ చేయాలి. ఈ వ్యాసం జావా కోర్ గురించి ఇప్పటికే కనీస పరిజ్ఞానం ఉన్న వ్యక్తుల కోసం ఉద్దేశించబడింది. లైబ్రరీలను ప్రచురించడానికి ఎలాంటి ఫ్రేమ్‌వర్క్‌లు లేదా సంక్లిష్టమైన విధానాలు ఉండవు. తీరికగా షికారు. కాబట్టి మిమ్మల్ని మీరు సౌకర్యవంతంగా చేసుకోండి మరియు ప్రారంభించండి! IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 1

మీకు డీబగ్ మోడ్ ఎందుకు అవసరం

వెంటనే మన కోసం ఒక విషయాన్ని స్పష్టం చేద్దాం: బగ్‌లు లేకుండా కోడ్ లేదు... ఇది జీవితం ఎలా పనిచేస్తుంది. కాబట్టి, మనం ఊహించినట్లుగా మన కోడ్ పనిచేయకపోతే మనం ముక్కలుగా పడి వదులుకోకూడదు. అయితే మనం ఏమి చేయాలి? సరే, మేము ప్రతిచోటా స్టేట్‌మెంట్‌లను ఉంచవచ్చు System.out.printlnమరియు ఎర్రర్‌ను కనుగొనాలనే ఆశతో కన్సోల్ అవుట్‌పుట్ ద్వారా దువ్వవచ్చు. జాగ్రత్తగా లాగింగ్‌ని ఉపయోగించి మీరు (మరియు వ్యక్తులు చేయగలరు) డీబగ్ చేయవచ్చు. కానీ మీరు మీ కోడ్‌ని లోకల్ మెషీన్‌లో రన్ చేయగలిగితే, డీబగ్ మోడ్‌ని ఉపయోగించడం మంచిది . ఈ ఆర్టికల్‌లో IntelliJ IDEAని ఉపయోగించి ప్రాజెక్ట్‌ను డీబగ్ చేయడాన్ని పరిశీలిస్తామని నేను వెంటనే గమనించాలనుకుంటున్నాను.

డీబగ్ మోడ్ అంటే ఏమిటి?

డీబగ్ మోడ్ అనేది డీబగ్గింగ్ (చెకింగ్) రన్నింగ్ కోడ్ కోసం. ఇది నిర్దేశించిన ప్రదేశాలలో అమలును ఆపివేయడం మరియు విషయాలు ఎలా పురోగతిలో ఉన్నాయో చూడటం మీకు సాధ్యపడుతుంది. ఇది కోడ్‌లోని నిర్దిష్ట ప్రదేశంలో ప్రోగ్రామ్ యొక్క స్థితిని అర్థం చేసుకోవడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇది గడియారాన్ని ఆపి ప్రతిదీ వైపు నుండి చూడగలగడం వంటిది. కూల్, సరియైనదా? మా ప్రియమైన IntelliJ IDEA అభివృద్ధి వాతావరణాన్ని ఉపయోగించి అప్లికేషన్‌లను ఎలా డీబగ్ చేయాలో త్వరగా మరియు సులభంగా నేర్చుకోవడం మా లక్ష్యం.

మీరు డీబగ్గింగ్ ప్రారంభించాల్సిన అవసరం ఏమిటి

ఇక్కడ కొన్ని ఉచిత సలహాలు ఉన్నాయి: ఈ కథనాన్ని చదివేటప్పుడు, ఇక్కడ వివరించిన ప్రతిదాన్ని చేయండి — మీరు అనుసరించాల్సినవన్నీ మీకు ఉన్నాయి. నీకు కావాల్సింది ఏంటి:
  1. IntelliJ IDEA వెర్షన్ 2019.3.1 లేదా అంతకంటే ఎక్కువ. ఎవరైనా దీన్ని కలిగి ఉండకపోతే, మీరు దీన్ని డౌన్‌లోడ్ చేసుకునే లింక్ ఇక్కడ ఉంది . కమ్యూనిటీ ఎడిషన్‌ని డౌన్‌లోడ్ చేసుకోండి — నేను ఉపయోగించే వెర్షన్ అదే.
  2. ఈ GitHub ప్రాజెక్ట్‌ని క్లోన్ చేసి , IDEA ద్వారా దిగుమతి చేయండి.
IDEAని తెరవండి: డీబగ్-ప్రెజెంటేషన్IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 2 ప్రాజెక్ట్‌ని ఎంచుకుని , సరే నొక్కండి . అప్పుడు మీరు క్రింది విండోను చూస్తారు: ఎంచుకున్న ఎంపికలను వదిలివేయండి: బాహ్య మూలాల నుండి ప్రాజెక్ట్ను దిగుమతి చేయండి మరియు మావెన్ . ముగించు క్లిక్ చేయండి . ఇప్పుడు మేము ప్రాజెక్ట్‌ను దిగుమతి చేసుకున్నాము, మిగిలిన ప్రక్రియను సజీవ ఉదాహరణతో వివరించవచ్చు. IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 3

కొంచెం సిద్ధాంతం... నేను హామీ ఇస్తున్నాను :D

కొంచెం డీబగ్గింగ్ ప్రారంభించడానికి, మీరు బ్రేక్ పాయింట్ అంటే ఏమిటో అర్థం చేసుకోవాలి మరియు కొన్ని హాట్ కీలను తెలుసుకోవాలి. బ్రేక్‌పాయింట్ అనేది ఒక ప్రత్యేక మార్కర్, ఇది మీరు అప్లికేషన్ యొక్క అమలును ఎక్కడ ఆపాలనుకుంటున్నారో సూచిస్తుంది, బహుశా అప్లికేషన్ స్థితి ఆధారంగా. మీరు ఎడమ వైపు ప్యానెల్‌పై ఎడమ-క్లిక్ చేయడం ద్వారా లేదా కోడ్ లొకేషన్‌పై క్లిక్ చేసి Ctrl+F8 నొక్కడం ద్వారా బ్రేక్‌పాయింట్‌ను సెట్ చేయవచ్చు . మూడు రకాల బ్రేక్‌పాయింట్‌లను చూద్దాం: లైన్ బ్రేక్‌పాయింట్‌లు, ఫీల్డ్ వాచ్‌పాయింట్‌లు మరియు మరియు మెథడ్ బ్రేక్‌పాయింట్‌లు. ఇది ఇలా కనిపిస్తుంది:
  • ఒక లైన్‌లో:

    IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 4

    ఒక స్టేట్‌మెంట్ లాంబ్డా ఎక్స్‌ప్రెషన్‌ని కలిగి ఉంటే, మొత్తం స్టేట్‌మెంట్‌పై బ్రేక్‌పాయింట్‌ని ఉంచాలా లేదా ప్రత్యేకంగా లాంబ్డా ఎక్స్‌ప్రెషన్‌పై ఉంచాలా అని ఎంచుకోమని IDEA మిమ్మల్ని అడుగుతుంది:

    IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 5
  • ఒక పద్ధతిలో:

    IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 6
  • ఒక తరగతిలో:

    IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 7
బ్రేక్‌పాయింట్‌లను జోడించడానికి ఉపయోగించిన అదే దశలను అనుసరించడం ద్వారా వాటిని తీసివేయవచ్చు. మీరు వాటిని నిష్క్రియం (మ్యూట్) చేయాలనుకున్న సందర్భాలు ఉన్నాయి. దీన్ని చేయడానికి, IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 8డీబగ్ విభాగంలో చిహ్నాన్ని కనుగొనండి. ఇది అన్ని బ్రేక్‌పాయింట్‌లను మ్యూట్ చేస్తుంది. ఏ బ్రేక్‌పాయింట్‌లు సెట్ చేయబడిందో చూడటానికి, మీరు దిగువ ఎడమ మూలలో ఉన్న డీబగ్ విభాగానికి వెళ్లి చిహ్నాన్ని కనుగొనవచ్చు IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 9లేదా Ctrl+Shift+F8 నొక్కండి : IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 10బ్రేక్‌పాయింట్‌ల జాబితాకు వెళ్లినప్పుడు, మేము ఈ క్రింది వాటిని చూస్తాము: IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 11రెండు బ్రేక్‌పాయింట్‌లు ఉన్నాయి ఇక్కడ:
  • Bee.java:24 — లైన్ 24లో బీ క్లాస్‌లో
  • Main.java:14 — లైన్ 14లోని ప్రధాన తరగతిలో
మీరు ప్రాజెక్ట్‌ను క్లోన్ చేసినట్లయితే, ఈ బ్రేక్‌పాయింట్‌లు స్వయంచాలకంగా సెట్ చేయబడవని దయచేసి గమనించండి: మీరు వాటిని మీరే సెట్ చేసుకోవాలి! జావా మినహాయింపు బ్రేక్‌పాయింట్‌ల విభాగం కూడా ఉంది . ఇది చాలా ఉపయోగకరంగా ఉంది. ఇక్కడ మీరు ఒక అవ్యక్త బ్రేక్‌పాయింట్‌ను జోడించవచ్చు, తద్వారా ఏదైనా మినహాయింపు లేదా నిర్దిష్ట మినహాయింపును విసిరే ముందు ప్రోగ్రామ్ ఆగిపోతుంది. RuntimeException కోసం మేము అవ్యక్తమైన బ్రేక్‌పాయింట్‌ని జోడిస్తాము. ఇది చేయడం సులభం. ఎగువ ఎడమ మూలలో "+" చిహ్నాన్ని కనుగొనండి. దానిపై క్లిక్ చేసి, జావా మినహాయింపు బ్రేక్‌పాయింట్‌లను ఎంచుకోండి : IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 12కనిపించే విండోలో, మీరు జోడించదలిచిన మినహాయింపు పేరును వ్రాసి, జాబితా నుండి ఎంచుకుని, సరే క్లిక్ చేయండి : IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 13ఇది విషయాలను ఎలా సెటప్ చేయాలో మా ప్రైమర్‌ను ముగించింది, కాబట్టి ఇప్పుడు మేము' కొంత అభ్యాసం కొనసాగిస్తాను.

డీబగ్గింగ్ అనే ఈ పనిని చేద్దాం!

నేను తేనెటీగల పెంపకందారుల యొక్క సుదీర్ఘ శ్రేణి నుండి వచ్చాను, కాబట్టి డీబగ్గింగ్‌ని వివరించడానికి నేను సృష్టించిన ప్రాజెక్ట్ తేనెటీగలు తేనెను సేకరించడం, తేనెను తేనెగా ప్రాసెస్ చేయడం మరియు తేనెటీగ నుండి తేనెను పొందడం వంటి నమూనాలను వివరిస్తుంది. ప్రాజెక్ట్ యొక్క రూట్ డైరెక్టరీలో కనుగొనబడే డాక్యుమెంటేషన్ README ఫైల్ ప్రకారం , తేనెను సేకరించిన అన్ని పువ్వుల యొక్క అంచనా ప్రవర్తన తేనె మొత్తం (ఇది రెట్టింపు రూపంలో ఉంటుంది ) సగానికి సమానంగా ఉంటుంది. సేకరించిన అమృతం. ప్రాజెక్ట్ క్రింది తరగతులను కలిగి ఉంది:
  • తేనెటీగ - ఒక సాధారణ కార్మికుడు తేనెటీగ
  • బీక్వీన్ - రాణి తేనెటీగ
  • బీహైవ్ - తేనెటీగ
  • హనీప్లాంట్ - తేనెను సేకరించే తేనె మొక్క (మకరంద మూలం).
  • ప్రధాన — ఇక్కడే మనం కనుగొంటాము public static void main(), అమలు ప్రారంభమయ్యే పద్ధతి.
మేము పద్ధతిని అమలు చేస్తే main(), మా ప్రోగ్రామ్ తేనె మొత్తాన్ని లెక్కించకపోవడమే కాకుండా, మినహాయింపును కూడా విసురుతుంది అని మేము కనుగొన్నాము... IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 14సమస్య ఏమిటో మనం పరిశోధించి, గుర్తించాలి. దిగువ కుడి మూలలో ఉన్న ట్రేస్ స్టాక్ నుండి, రన్‌టైమ్ ఎక్సెప్షన్‌లో విసిరివేయబడిందని మనం చూడవచ్చు HoneyPlant.java:20: IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 15మనం పైన మాట్లాడుతున్నది అదే. main()డీబగ్ మోడ్‌లో పద్ధతిని అమలు చేయడం ద్వారా ఈ RuntimeException కోసం చూద్దాం . దీన్ని చేయడానికి, IntelliJ IDEAలో main()పద్ధతి పక్కన ఉన్న ఆకుపచ్చ త్రిభుజం బాణంపై క్లిక్ చేయండి. IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 16తత్ఫలితంగా, మినహాయింపు ఇవ్వడానికి ముందు మేము ప్రోగ్రామ్ ఆపివేయబడతాము మరియు మేము ఈ చిహ్నాన్ని చూస్తాము: IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 17IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 18అందుబాటులో ఉన్న మొత్తం సమాచారాన్ని పొందడానికి, మేము డీబగ్ విభాగంలో చూడాలి. దీనికి వేరియబుల్స్ ఉన్నాయిఅప్లికేషన్ యొక్క ఈ భాగంలో అందుబాటులో ఉన్న అన్ని వేరియబుల్స్ చూపే పేన్:
  • అమృతం = 1.0;
  • nectarCapacity = -1.0.
మినహాయింపును విసరడం అర్ధమే, ఎందుకంటే తేనె మొక్కలో నెగిటివ్ మొత్తంలో తేనె ఉండదు. అయితే ఇలా ఎందుకు జరుగుతోంది? అన్నింటికంటే, 15-17 పంక్తులలో, మేము తేనె సరఫరా అయిపోయిందో లేదో తనిఖీ చేస్తాము మరియు అది ఉంటే సున్నాని తిరిగి ఇస్తాము:

	if (nectar == 0) {
   	     return 0;
}
కానీ ఇబ్బంది ఏమిటంటే మేము తప్పు వేరియబుల్‌ని తనిఖీ చేస్తున్నాము. ఇది కోడ్‌లో లోపం. పువ్వులో లభించే తేనె మొత్తాన్ని తనిఖీ చేయడానికి బదులుగా (ఇది నెక్టార్ కెపాసిటీ వేరియబుల్‌లో నిల్వ చేయబడుతుంది), ప్రోగ్రామ్ పద్ధతి యొక్క మకరంద పరామితి యొక్క విలువను తనిఖీ చేస్తుంది, ఇది మనం పువ్వు నుండి తీసుకోవాలనుకుంటున్న మకరందం. ఇది ఇక్కడ ఉంది! మా మొదటి బగ్! దీన్ని పరిష్కరించిన తర్వాత, మేము ఈ క్రింది కోడ్‌ను పొందుతాము:

	if (nectarCapacity == 0) {
   	     return 0;
}
ఇప్పుడు main()పద్ధతిని సాధారణ పద్ధతిలో అమలు చేయండి (Run 'Main.main()'). ఎటువంటి మినహాయింపు లేదు, మరియు ప్రోగ్రామ్ పనిచేస్తుంది: IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 19అప్లికేషన్ పూర్తయ్యే వరకు నడుస్తుంది మరియు క్రింది సమాధానాన్ని ఇస్తుంది:

"33.0 honey was produced by 7 bees from 2 honey plants"
ఇప్పుడు అంతా బాగానే ఉంటుంది, కానీ ఈ సమాధానం తప్పు... డాక్యుమెంటేషన్ README ఫైల్ ప్రకారం , తేనె 2 నుండి 1 నిష్పత్తిలో తేనెగా మార్చబడుతుంది:

## 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()డీబగ్ మోడ్‌లో పద్ధతిని అమలు చేయండి: IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 20మేము ఈ అంశాన్ని మరింత వివరంగా పరిశీలిస్తాము. లైన్ 28ని అమలు చేయడానికి ముందు ప్రోగ్రామ్ అమలు చేయడం ఆగిపోయింది. దిగువ భాగంలో, మేము డీబగ్ విభాగాన్ని చూస్తాము, ఇది నడుస్తున్న అప్లికేషన్ గురించి అందుబాటులో ఉన్న మొత్తం సమాచారాన్ని చూపుతుంది. ఇప్పటికే చెప్పినట్లుగా, వేరియబుల్స్ పేన్ అప్లికేషన్ యొక్క ఈ భాగం నుండి అందుబాటులో ఉన్న అన్ని వేరియబుల్స్ మరియు ఆబ్జెక్ట్‌లను కలిగి ఉంటుంది. ఫ్రేమ్‌ల పేన్ అప్లికేషన్ జరుగుతున్న దశలను చూపుతుంది - మీరు మునుపటి (ఫ్రేమ్‌లు) దశలను చూడవచ్చు మరియు మొత్తం స్థానిక డేటాను చూడవచ్చు. ప్రోగ్రామ్‌ను అమలు చేయడం కొనసాగించడానికి, మీరు దిగువ చూపిన విధంగా F9 లేదా ఆకుపచ్చ చిహ్నాన్ని నొక్కవచ్చు : IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 21ప్రోగ్రామ్‌ను ఆపడానికి, ఎరుపు రంగు స్క్వేర్‌పై క్లిక్ చేయండి: IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 22డీబగ్ మోడ్‌లో అప్లికేషన్‌ను పునఃప్రారంభించడానికి, బాణంపై క్లిక్ చేయండి: IntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 23ఇంకా, మీరు దీని ద్వారా కొనసాగవచ్చు రెండు కీలను ఉపయోగించి దశల వారీగా అప్లికేషన్:
  • F8 — పద్ధతుల్లోకి అడుగు పెట్టకుండా కోడ్ ద్వారా అడుగు;
  • F7 — కోడ్ ద్వారా దశ మరియు పద్ధతుల్లోకి అడుగు పెట్టండి.
మా విషయంలో, మేము పద్ధతిలోకి అడుగు పెట్టడానికి F7 నొక్కాలి beeHive.populateHoney(). దానిలోకి అడుగు పెడితే, మనం పొందుతాము: ఇప్పుడు మేము ఈ పద్ధతి ద్వారా అడుగు పెట్టడానికి మరియు దానిలో ఏమి జరుగుతుందో వివరించడానికి F8నిIntelliJ IDEAలో డీబగ్గింగ్: ఒక బిగినర్స్ గైడ్ - 24 ఉపయోగిస్తాము :
  • పంక్తి 25 — అన్ని తేనెటీగల నుండి తేనెను సేకరించేందుకు Stream API ఉపయోగించబడుతుంది
  • లైన్ 26 - కొత్తగా సృష్టించబడిన తేనె ఇప్పటికే ఉన్న తేనెకు జోడించబడుతుంది;
  • లైన్ 27 - రాణి కోసం 2 యూనిట్ల తేనె కేటాయించబడింది
  • లైన్ 28 - ఈ రెండు యూనిట్లు తేనె మొత్తం నుండి తీసివేయబడతాయి
  • లైన్ 29 - రాణి ఈ తేనెను తింటుంది.
అలా తప్పిపోయిన రెండు యూనిట్లు ఎక్కడికి వెళ్లాయి! హుర్రే! వ్యాపార విశ్లేషకుడితో మాట్లాడిన తర్వాత, డాక్యుమెంటేషన్ README ఫైల్ లోపాన్ని కలిగి ఉందని మరియు నవీకరించబడాలని మేము నిర్ధారించాము . README ఫైల్‌ని అప్‌డేట్ చేద్దాం:

## 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.
చేసారు, చెయ్యబడినది. మేము కనుగొన్న అన్ని బగ్‌లను పరిష్కరించాము. మేము ప్రశాంతంగా స్మగ్ లుక్‌తో కొనసాగవచ్చు, కొంచెం కాఫీ తాగవచ్చు మరియు స్టాక్ ఓవర్‌ఫ్లో కోడ్‌జిమ్‌పై కథనాలను చదవవచ్చు :)

సారాంశం చేద్దాం

ఈ వ్యాసంలో, మేము నేర్చుకున్నాము:
  • ప్రతి ఒక్కరి పనిలో లోపాలు ఉన్నాయి మరియు వాటిని పరిష్కరించడానికి డీబగ్గింగ్ ఒక గొప్ప మార్గం
  • బ్రేక్‌పాయింట్ అంటే ఏమిటి మరియు ఎలాంటి బ్రేక్‌పాయింట్‌లు ఉన్నాయి
  • మినహాయింపు బ్రేక్‌పాయింట్‌ను ఎలా సెట్ చేయాలి
  • డీబగ్ మోడ్‌లో కోడ్ ద్వారా ఎలా అడుగు పెట్టాలి

చదవాల్సిన వ్యాసం

వ్యాఖ్యలు
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION