Do not miss our Interview Question video series 30 Important C# Interview Questions : ua-cam.com/video/BKynEBPqiIM/v-deo.html 25 Important ASP.NET Interview Questions : ua-cam.com/video/pXmMdmJUC0g/v-deo.html 25 Angular Interview Questions : ua-cam.com/video/-jeoyDJDsSM/v-deo.html 5 MSBI Interview Questions : ua-cam.com/video/5E815aXAwYQ/v-deo.html
Debug mode is: For debugging, which takes more resources and time to execute because more information should be generated for the programmer like the stack trace information. In Release mode: It is made for production(used somewhere by someone), the code is optimized and runs faster #if DEBUG //code #endif //This will tell the preprocessor to run this code only if it is in debug mode, if it is in release the code will not be included in the program.
DEBUG symbols aid developer to gather data about his or her code. It is the meta data available through the development IDE or toolset to aid to quickly spot the states of variables. it also includes traps that allows halts so that the programmer can watch the execution closely. Once the code is developed it has to go through QA before being pushed to the PROD, Once you have met all the requirements to run the code in PROD, you simply have no use for the DEBUG information, so you get rid of them
You misunderstood my statement. In fact in *most* IDEs there are different optimization levels between the standard DEBUG and RELEASE builds. For embedded applications (which I am most familiar with) there is typically no optimization (-O0) for debug builds...whereas the standard for release builds is to optimize for size (-Os). So the two build configurations (debug/release) in fact DO differ in optimization levels, by default in most of the IDEs I have used--like Atmel Studio (avr-gcc).
Nice video, thanks... I'd love to learn more about the different optimization levels between debug and release versions as well, if you have anything more on that. Thanks again for posting this.
How can we put debug ON in Prod some sometime to gather logs in terms to identifying the root cause in Production? Obviously we cannot replace the executable files on the server for this...!
in the real sense debug code has very little to do with "optimization" it simply has additional information plugged in for the developer to do faster development and testing. The second "difference" is more close to the difference between debug and release. Most of the video I see here is very primitive explanation of the author's understanding of C#
That's a bit too much talking for this specific subject. There are 2 differences in total you have described in the video. Too much of repeating yourself. 1. Skipping DEBUG symbols while in Release mode. 2. You won't get stacktrace while in Release mode and application runs quicker than in Debug mode. I've entered and watched the video to see what's the 7 minutes about...
DEBUG has nothing to do with CODE optimization, DEBUG aid in unit testing and development. It is a BURDEN in production, because there is no use for the DEBUG information once the code is certified to be meeting all USE CASES with out a flaw. You should loook at code optimization techniques which is not related to DEBUG or RELEASE as stated in the video.
Do not miss our Interview Question video series
30 Important C# Interview Questions : ua-cam.com/video/BKynEBPqiIM/v-deo.html
25 Important ASP.NET Interview Questions : ua-cam.com/video/pXmMdmJUC0g/v-deo.html
25 Angular Interview Questions : ua-cam.com/video/-jeoyDJDsSM/v-deo.html
5 MSBI Interview Questions : ua-cam.com/video/5E815aXAwYQ/v-deo.html
Debug mode is:
For debugging, which takes more resources and time to execute because more information should be generated for the programmer like the stack trace information.
In Release mode:
It is made for production(used somewhere by someone), the code is optimized and runs faster
#if DEBUG
//code
#endif
//This will tell the preprocessor to run this code only if it is in debug mode, if it is in release the code will not be included in the program.
DEBUG symbols aid developer to gather data about his or her code. It is the meta data available through the development IDE or toolset to aid to quickly spot the states of variables. it also includes traps that allows halts so that the programmer can watch the execution closely. Once the code is developed it has to go through QA before being pushed to the PROD, Once you have met all the requirements to run the code in PROD, you simply have no use for the DEBUG information, so you get rid of them
Explain perfect way... and show how to use...thank you
Thanks, you simply imparted that what is exactly meant by debug and release mode.
very good teacher .. thank you
im not learning c# but this still was very helpful for me
Excellent video with a simple and understandable example !!!
Thanks for sharing your knowledge...
As always, great and helpful explanation!
Thank you very much.. I really like the way you explained the detail of Debug and Release
Thousands of Like from my side...
A stack trace allows to track the sequence of (nested) functions called up to the point where the stack trace is generated.
This will help me a lot, and thanks a lot
You misunderstood my statement. In fact in *most* IDEs there are different optimization levels between the standard DEBUG and RELEASE builds. For embedded applications (which I am most familiar with) there is typically no optimization (-O0) for debug builds...whereas the standard for release builds is to optimize for size (-Os). So the two build configurations (debug/release) in fact DO differ in optimization levels, by default in most of the IDEs I have used--like Atmel Studio (avr-gcc).
Nice video, thanks... I'd love to learn more about the different optimization levels between debug and release versions as well, if you have anything more on that. Thanks again for posting this.
Thanks Sir, It is really helpful for me
what if we have no debug symbols in our code. does it give the same performance in DEBUG and RELEASE mode.
Why has error came first and then m3 upto m1 and main came afterwards .I didn't understand it.
Can we perform remote debugging on release binaries ??
You can try tracing
many thanks, this is really awesome
R application performance
D- to check application debuuging for error
R - when complile all debug symbol are removed
How can we put debug ON in Prod some sometime to gather logs in terms to identifying the root cause in Production? Obviously we cannot replace the executable files on the server for this...!
You can save a log file
Very good explanation!
in the same way web developers can use this feature to transform the configuration information of web.config file.
Big fan of u Shiv
Thx so much this is very helpful
Thanks
Some virus scanners flag .exes compiled with debug
Still useful
cool!
in the real sense debug code has very little to do with "optimization" it simply has additional information plugged in for the developer to do faster development and testing. The second "difference" is more close to the difference between debug and release. Most of the video I see here is very primitive explanation of the author's understanding of C#
That's a bit too much talking for this specific subject. There are 2 differences in total you have described in the video. Too much of repeating yourself.
1. Skipping DEBUG symbols while in Release mode.
2. You won't get stacktrace while in Release mode and application runs quicker than in Debug mode.
I've entered and watched the video to see what's the 7 minutes about...
DEBUG has nothing to do with CODE optimization, DEBUG aid in unit testing and development. It is a BURDEN in production, because there is no use for the DEBUG information once the code is certified to be meeting all USE CASES with out a flaw. You should loook at code optimization techniques which is not related to DEBUG or RELEASE as stated in the video.