Shotgun Debugging

What Does Shotgun Debugging Mean?

Shotgun debugging is the process of introducing undirected changes into any software to be tested in the hope of perturbing bugs out of existence. This is a good example of a trial-and-error case and it works well with small programs. If it is not handled effectively, shotgun debugging may introduce additional bugs.


Techopedia Explains Shotgun Debugging

Shotgun debugging is considered a software equivalent to Easter egging, which is the act of replacing unrelated components in the hope that a malfunction disappears. It is the debugging of a hardware or system problem after trying several possible solutions at the same time where any one alternative may work well. Although this may be successful in some cases, it may also incur the risk of introducing new bugs.Shotgun debugging works with multithreaded applications. Any attempt to debug a race condition by adding debugging code changes the speed of one thread in relation to another. Such a relative move can often cause the problem to disappear. However, any other changes that affect the thread’s behavior could cause the same problem to resurface.


Related Terms

Margaret Rouse
Technology Expert

Margaret is an award-winning technical writer and teacher known for her ability to explain complex technical subjects to a non-technical business audience. Over the past twenty years, her IT definitions have been published by Que in an encyclopedia of technology terms and cited in articles by the New York Times, Time Magazine, USA Today, ZDNet, PC Magazine, and Discovery Magazine. She joined Techopedia in 2011. Margaret's idea of a fun day is helping IT and business professionals learn to speak each other’s highly specialized languages.