Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge in another.
Origin
There is some controversy over who first used the term "debug" (see the Computer bug article for a full discussion). Some claim that the term "debugging" was first used by Glenford J Myers in his 1976 book Software Reliability: Principles and Practices where he defined it as "diagnosing the precise nature of a known error and then correcting the error", while others claim it was associated with Admiral Grace Hopper in the 1940s.
The story goes that when one of the early computers that Hopper was working with malfunctioned, it was discovered that a moth had gotten into a relay (they were used for the logic of computers at that time), changing the logic of the program. This was the origin of the term bug in reference to problems with computer programs running correctly. Some believe that the staff then started using the term debugging to describe the process of removing errors from computer programs.
Identity Management Made Easy with OpenSSO Fri, 22 Aug 2008 21:27:00 -0000 Sun's open-source identity services initiative aims to provide an extensible foundation for an identity services infrastructure in the public domain, facilitating single sign-on (SSO) and cross-domain single sign-on (CDSSO) for web applications, federation capabilities, and secure Web services. Find out how it measures up. Book Excerpt: Murach's Java Servlets and JSP (Second Edition) Fri, 11 Jul 2008 22:28:00 -0000 The JSTL provides tags for common tasks that need to be performed in JSPs. Coupled with Expression Language, this allows you to remove much of the Java scripting from your applications, making your pages easier for web designers to work with and easier for you to maintain. Access Your Stored Java Objects with the Iterator Design Pattern Fri, 27 Jun 2008 21:23:00 -0000 Clean up clumsy and wasteful code with the iterator design pattern.
Cicerone - A tool for Java developers who are curious about what really goes on inside the JRE (Java Runtime Environment). It provides a user-friendly view of such runtime activity such as system properties and thread activity. [Freeware]
CQ JSP Debugger - Allows remote debugging inside a number servlet-engine. Zero installation. JSP linemapping. [Freeware]
IBM AlphaWorks' JInsight - Analyzes program execution and generates a trace and a visualizer. Supports JDK 1.1 and higher. For debugging, understanding, diagnosing. [Non-timeout eval copy]
Meta Description: [ A tool for visualizing and analyzing the execution of Java programs. ]
InforMatrix LogGui - A grafical user interface for the java.util.logging package. [Shareware]
Meta Description: [ LogGui is a graphical user interface for the java.util.logging package ]
JDebugTool - By debugtools.com is Java debugger, built on top of the standard JPDA (Java Platform Debugger Architecture). It features an intuitive and graphical Java Swing GUI. [Shareware]
Meta Description: [ JDebugTool is a standalone, graphical Java debugger built on top of the standard JPDA (Java Platform Debugger Architecture). ]
JMyra - A Java monitoring platform. It attaches to Java application, using its own lightweight web server to let view log messages, threads, properties, and runtime statistics. It comes with its own logging API, plus it supports the log4j API and the Java Logging API. [Commercial]
JOI (Java Object Inspector) - A debugging tool similar to the Inspector in Smalltalk environments. [Freeware]
ObjectDumper - Recursively dumps all fields of an object, using reflection. [Freeware, source included]
Omniscient Debugging - An experimental debugging tool written in Java which allows rewinding and seeing what the values of variables were in the past. Works by modifying bytecode. [Freeware]
500RetroVue - Visual debugger with recall of operation history. [Commercial]
SpyJ - Assists in developing and debugging of Java GUI applications and applets. It shows a list of GUI components, allows viewing fields, execute methods, trace events, function calls and field accesses at run time. [Commercial]
WMI information--from basic to advanced Plan for errors, and test and debug your scripts Build your own "resource kit" of ...