While there are many
types of debugging tools,
a simple example is a tool
that allows the
programmer to monitor
program code while
manipulating it to execute
various commands and
routines. One basic
approach is to simplify the
code as much as possible
at the suspected troubled
spot, while still replicating
the problem, narrowing
the focus to potential
problem lines. In reality,
debugging is a complex
process that requires
different approaches
based on factors such as
the complexity and length
of the software code
itself, and the language
its written with.
Debugging can be a
tiresome task, though
some languages are easier
to debug than others.
Java, for example, includes
routines that handle
exception errors. An
exception error occurs
when the program
encounters a situation
that must be addressed
before the program can
continue on properly. In
this case a built-in routine
initiates a search within
the various layers of
software code, looking for
an answer to the problem.
If a fix cannot be found, a
fatal exception error
occurs and the program
shuts down. The resultant
error message might
include a memory address
or some other cryptic data
that will not help the user
but could be valuable for
debugging. Well-written
programs should not have
fatal errors.
Older programming
languages like C or
assembly are not as
transparent and do not
handle errors so
efficiently. Debugging
programs written in these
languages can test the
skills and patience of the
debugger.
Thankfully for the end
user, commercially
available software has
already been debugged of
major flaws. Due to this
very reason, most
problems encountered by
the end user fall within
the purview of
troubleshooting and can
be fixed by means
previously mentioned. On
those occasions that an
end user does encounter
a bug, going through the
motions of
troubleshooting can reveal
a work-around until the
bug is fixed by the
developer.
When asking for help on a
Web forum or newsgroup,
be sure to do your
homework ahead of time.
Troubleshooting is time
consuming, and people
who volunteer their help
appreciate someone who
has made an effort to find
answers. Inquiring about a
problem that has been
asked and answered
repeatedly will not win
you friends and is
considered poor
netiquette.