473,324 Members | 2,535 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes and contribute your articles to a community of 473,324 developers and data experts.

A Simple Debugging Guide

kenobewan
4,871 Expert 4TB
Congratulations! You are one of the few who realise that over 80% of errors are simple and easy to fix. It is important to realise this as it can save a lot of time. Time that could be wasted making unnecessary changes, that in turn can cause further problems.

Programming is a humbling experience. An experience that causes one to reflect on human error. One major cause of these errors is syntax, syntax, syntax. We tend not to notice when we have made a typo. It is too easy to spend an hour trying to fix a problem that was caused by a typo. Accepting human error, that you made a mistake, is a reasonable first assumption.

Another important assumption to fixing problems is Occam's razor - the simpliest explanation is more often than not the best. When we initially expect a simple error we don't try to over complicate things and we are more likely to use basic techniques to trap the error; we use simple debugging procedures.

Sometimes just writing a message is enough to see what is going on. One easy technique is to trap the error in a try catch block and write the error message. Its surprizing how often this simple technique is not used.

In asp.net there is a custom errors mode remoteonly. What this does is display the exception only on the local server, but anywhere else. Other users of your application may be directed to a customized error page, while you figure out what's going on.

A very important step to avoiding errors in your application is testing. This is best done on a separate machine to the development and production servers. Even if you don't have access to a test environment this is no reason not to test. We developers are not the best testers. Get someone else or preferably a group to test, believe me you'll save time and probably money.

One of the most common errors is the 'object reference not set to an instance of an object'. Null reference errors are common too. Something, a reference or a parameter for example, is missing. So check the page references and parameters. Look in that error line to see what may be missing or null. Write any values that may be null.

A simple thing that you can do is continue to practice. Programming in an unfamiliar language is slow to start with, but experience is cumulative. As you get more practice, things like error handling become easier. It doesn't become easier if you just copy & paste all the time, there is no substitute for understanding what's going on.

There are many debugging techniques, but that is not the point of this article. Its not until I started to appreciate the number of my errors and the simplicity of fixing them, that I really started to make progress. At times I am still guilty of skipping the diagnosis and heading straight for the medicine cupboard. This has almost always been a mistake.

I hope that you avoid some of the frustrations that I have had over the years by not ignoring human error and accepting how simple steps can resolve most problems.

Happy programming!
Oct 3 '08 #1
6 28846
itsraghz
127 100+
Well, thats a beautiful write up!

You are certainly right in almost all the places. Human errors are trivial and the impacts created are more.

A fact not to forget is, "We learn by mistakes" :). But we should ensure that "mistakes are NOT repeated" -- thats when we call it as an experience!

Cheers,
Raghavan alias Saravanan M.
Nov 13 '08 #2
Thanks for the nice article. Good encouragement for beginners like me who are afraid of bugs.
there is no substitute for understanding what's going on.
This is my most favourite line of the article.
Thank you,
Rajesh V.
Dec 25 '08 #3
What I have found is keeping a note of what all steps you took , what all did you observe also help a lot to debug difficult bugs.
Feb 23 '09 #4
Killer42
8,435 Expert 8TB
Hi.

I'd just like to point out what (ironically) looks like a typo in the article. To quote...

In asp.net there is a custom errors mode remoteonly. What this does is display the exception only on the local server, but anywhere else.
At a guess, there's a "not" missing there.
Feb 26 '09 #5
thats so kind of you to make newbie's like me comfortable in programming.
sumtimes the problem is gruesome but at the most its due to simple things only
Apr 17 '09 #6
Bassem
344 100+
I was stopped for nearly three or four days in a program to count objects with specific color in an image, I did the whole code without change in approximately two hours but didn't work, after three days of just looking for what I have done wrong was a property that returns a different field's value (simply int).

It wasn't believable to me in first that I can fix a problem, It disappeared with some try and encourage thoughts like this.

Thanks, It was a nice article encourages much.
Jun 3 '09 #7

Sign in to post your reply or Sign up for a free account.

Similar topics

1
by: broebel | last post by:
I'm just wondering, people tell me that helping to debug someone elses program is a really good way to learn to understand the language it's programmed in. My question is: from wich point of...
4
by: Richard Shea | last post by:
Hi - I'm trying to use ZODB but I'm having trouble getting started. Can anyone point me at a very simple example ? I've had a look at 'ZODB/ZEO Programming Guide'...
0
by: Jim Douglas | last post by:
I had to re-image my system today and spent too much time trying to get de-bugging working again. The system Windows XP PRO SP2, VisualStudio 2003, C#, etc, etc, clean install of everything. ...
1
by: Saurabh garg | last post by:
I am getting following Problem while Debugging Asp.net application "Unable to Start Debugging Access is denied" Could anyone guide me to a useful Solution apart of the Group Membership in...
0
by: matsla | last post by:
I have followed all guide lines to set up remote debugging but is it possible to do cross-domain remote debugging? I use same account/password on both computers (XP => 2003), added users to debug...
6
by: Tina | last post by:
I'm a 1.1 developer learning 2.0. I have a book on 2.0 (Murachs upgraders guide)... It tells how to use the development server to test my asp.net apps ie. hit F5 just like we did in 1.1 using...
6
by: Maitre Bart | last post by:
One said: "The more time you'll spend on designing your app, the less you'll spend time debugging it." I agree with that, but chances are, you'll still need to debug it anyway! And the larger the...
1
by: abhijeet28 | last post by:
Hi friends , I am facing run time error "out of memory" in my project developed on vb.net . to find error line (code) i want to use JIT debugging . I don't know how to use it in windows...
0
by: kwatch | last post by:
Hi all, I have released pyKook 0.0.1. http://pypi.python.org/pypi/Kook/0.0.1 http://www.kuwata-lab.com/kook/ http://www.kuwata-lab.com/kook/pykook-users-guide.html pyKook is a simple build...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.