TOC

This article is currently in the process of being translated into Afar (~50% done).

Debugging:

Advanced breakpoints

Advanced breakpoints మునుపటి chapter లో, మేము మొదటి breakpoint ని set చేసాము మరియు అది బాగుంది. అయితే, కనీసం మీరు Visual Studio ని ఉపయోగిస్తుంటే, దాని కంటే ఎక్కువ breakpoints అవసరం. దురదృష్టవశాత్తు, Microsoft వారి Express versions లో ఈ అదనపు debugging సౌకర్యాలను నిలిపివేసినట్లు అనిపిస్తోంది, కానీ చింతించకండి: అవి ఖచ్చితంగా కలిగి ఉండటం చాలా బాగుంది, కాని అవి లేకున్నా మీరు పొందవచ్చు. అయితే, Visual Studio తో access ఉన్నవారికి, ఇక్కడ అత్యంత ఆసక్తికరమైన breakpoint కి సంబందించిన features ఉన్నాయి. మీరు breakpoint ని set చేసి, mouse తో right-click చేసి, ఆపై కావలసిన function ని ఎంచుకోవడం ద్వారా వాటి access ని పొందుతారు. Condition Break point ని తాకడానికి అవసరమయ్యే నిజం ఇచ్చే condition ని set చేయడం లేదా మార్చే పరిస్థితిని చెప్పే ఈ option మీకు అవకాశమిస్తుంది. మరింత అధునాతన code తో వ్యవహరించేటప్పుడు ఇది నిజంగా ఉపయోగపడుతుంది, ఇక్కడ కొన్ని పరిస్థితులలో మాత్రమే execution ని ఆపాలని మీరు కోరుకుంటారు. ఉదాహరణకు, సంబంధిత code ని చేరుకోవడానికి ముందే మీకు కొంత సమయం యిచ్చే loop ఉండవచ్చు - అలాంటి పరిస్థితిలో, మీరు breakpoint ని ఉంచి, ఆపై తగిన పరిస్థితిని configure చేయవచ్చు. ఇక్కడ ఉన్నది చాలా boring example, ఇది ఎలా పనిచేస్తుందో మీకు చూపుతుంది: static void Main(string[] args) { for(int i = 0; i < 10; i++) Console.WriteLine("i is " + i); } మీరు console కి output ని ఇచ్చే line లో breakpoint ని set చేయండి. ఇప్పుడు application ని run చేయండి – loop తిరిగి ప్రారంభమయ్యే ప్రతిసారీ breakpoint నొక్క బడుతుంది. కానీ బహుశా అది మనకు కావలసినది కాదు. i = 4 (5 వ పునరావృతం) అయితే మాత్రమే breakpoint ని తాకాలని మనము కోరుకుంటున్నాము. ఇలాంటి సాధారణ పరిస్థితిని క్రింది విదంగా define చేసి చేయండి: i == 4 Break point ఇప్పుడు కొద్దిగా పొందుతుంది, మీరు application ని run చేసినప్పుడు దాని లోపల కొద్దిగా, తెలుపు ని పొందుతుంది, i variable కి 4 సమానం అయినప్పుడు మాత్రమే అది break అవుతుంది. పై statement యొక్క result ని మార్చినప్పుడు మాత్రమే Debug execution ని ఆపమని సూచించడానికి మీరు "has changed" option ని ఉపయోగించవచ్చు, ఉదాహరణకు false ని true చేయడం. Hit count ఈ dialog తో, breakpoint ఎన్నిసార్లు కొట్టబడిందనే దాని ఆధారంగా మీరు ప్రత్యామ్నాయ condition ని define చేయవచ్చు. ఉదాహరణకు, మీ breakpoint ని కొన్ని సార్లు కొట్టే వరకు execution ని ఆపకూడదని మీరు నిర్ణయించుకోవచ్చు. దీన్ని నియంత్రించడానికి వివిధ options ఉన్నాయి, మీకు అవసరమైనదాన్ని బట్టి మరియు debug సమయంలో, breakpoint ఇప్పటివరకు ఎన్నిసార్లు కొట్టబడిందో చూడటానికి మీరు ఈ డైలాగ్‌ను check చేయవచ్చు. When hit... ఈ dialog ఉపయోగించి, మీ breakpoint ని కొట్టినప్పుడు ప్రత్యామ్నాయ ప్రవర్తనను మీరు define చేయవచ్చు. ఇది చాలా సందర్భాల్లో ఉపయోగపడుతుంది, ఇక్కడ మీరు execution ఆగిపోవాలనుకోవడం లేదు, కానీ status సందేశాన్ని ముద్రించడం లేదా macro ని activate చేయాలంటున్నారు. ఇది custom message ని define చేయటానికి మిమ్మల్ని అనుమతిస్తుంది, అది ముద్రించబడుతుంది, ఇక్కడ మీరు execution ని గురించి అన్ని రకాల సమాచారాన్ని చేర్చవచ్చు. Advanced users కోసం, breakpoint ని కొట్టినప్పుడు నిర్దిష్ట macro ని అమలు చేసే option కూడా ఉపయోగపడుతుంది.

Condition

This option allows you to specify a condition that has to be true or changed, for the breakpoint to be hit. This can be really useful when dealing with more advanced code, where you want the execution to stop only under certain circumstances. For instance, you might have a loop that iterates a bunch of time before the relevant code is reached - in a situation like that, you could simply place a breakpoint and then configure an appropriate condition. Here is a rather boring example, which will show you how it works:

static void Main(string[] args)
{
    for(int i = 0; i < 10; i++)
        Console.WriteLine("i is " + i);
}

Set a breakpoint on the line where we do output to the console. Now run the application - the breakpoint is triggered each time the loop iterates. But perhaps that's not what we want. Maybe we only want it to be hit when i equals 4 (the 5th iteration). Do that by defining a simple condition like this:

i == 4

The breakpoint will now get a little, white plus inside it and when you run the application, it will only break when the i variable equals 4. You can also use the "has changed" option to instruct the debugger to only halt the execution if the result of the above statement has changed, for instance from false to true.

Hit count

With this dialog, you can define an alternative condition, based on the amount of times the breakpoint has been hit. For instance, you can decide that your breakpoint should not halt the execution until it has been hit a certain amount of times. There are various options to control this, depending on what you need, and during debug time, you can check this dialog to see how many times the breakpoint has been hit so far.

When hit...

Using this dialog, you can define alternative behaviour for when your breakpoint is hit. This can come in handy in lots of situations, where you don't want the execution to stop, but simply get a status message printed or a macro activated. It allows you to define a custom message which will be printed, where you can include all kinds of information about the execution. For advanced users, the option to get a specific macro executed when a breakpoint is hit will also be useful.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!