


- Debugging functions and capabilities in system software software#
- Debugging functions and capabilities in system software code#
Debugging functions and capabilities in system software software#
Let me begin by saying that this section is in no way intended to be an exhaustive list of techniques and tools that a software developer can use when debugging programs. To better understand how software developers go about the work of understanding the source of a bug, let’s examine a few common techniques. Often, working towards understanding the source of a software bug will represent the greatest amount of work or effort involved in the debugging process. Sometimes though, a software developer can’t begin solving a problem before they can understand the cause of the problem. For me, I find the process of debugging software to be an exercise in applied problem solving, and one I find to be quite enjoyable (most of the time). When a software developer is debugging a program, they are aiming to remove something that is impeding a program or system from behaving in its intended manner. Upon removing the moth from the component, Hopper said that they were “debugging” the system! Isn’t it amusing to learn the origin of the term was actually quite literal?Ĭertainly, the act of removing literal bugs doesn’t apply to software and systems today, but the principle does indeed remain the same. The story goes that while Hopper was working on a computer system, a moth was found in one of the electrical components of the system and was preventing it from operating as intended. While the origin of the term “bug” is somewhat debatable and may go as far back as Thomas Edison, the term “debugging” is often attributed to admiral Grace Hopper (sometime in the 1940’s), a computer scientist and rear admiral in the U.S. The Wikipedia page for debugging gives us this definition:ĭebugging is the process of finding and resolving defects or problems within a computer program that prevent correct operation of computer software or a system. So, for today’s post, we’ll broadly examine the topic of debugging through its history and some common debugging techniques.
Debugging functions and capabilities in system software code#
So, how do software developers go about checking their code for bugs, identifying existing bugs and fixing those bugs? The general term for this activity is called “debugging,” and while the term itself may have some negative connotation, it’s an essential part of developing and maintaining reliable software. Problems in programs or applications are often referred to as “bugs,” a term with which you might be familiar. As a software developer, one of my constant goals when writing code is to ensure that I’m not introducing problems into a program or application.
