Debugging is the process of finding and reducing the number of bugs in computer software and electronic hardware. When a program crashes, the debugger shows the position in the original code. A good debugger plays an essential role in software development.
Debugging can be more difficult when various subsystems are tightly coupled, as changes in one may cause bugs to appear in another.
This article examines three different types of debuggers: source-level debuggers, memory debuggers and bug tracking software.
A memory debugger is a programming tool for finding memory leaks and buffer overflows. These are due to bugs related to the allocation and deallocation of dynamic memory. Programs written in languages that have garbage collection, such as managed code, might also need memory debuggers.
Bug tracking software helps quality assurance and programmers keep track of reported software bugs in their work.
Here’s our recommendations. They are all free and open source goodness.
Let’s explore the 11 debugging tools at hand. For each title we have compiled its own portal page, a full description with an in-depth analysis of its features, together with links to relevant resources.
|React Native Debugger||Standalone app for debugging React Native apps|
|GDB||The GNU Debugger|
|LLDB||Next generation, high-performance debugger|
|Valgrind||A memory debugger and profiler|
|Delve||Source level debugger for the Go programming language|
|KDbg||Graphical user interface to GDB|
|Xdebug||Extension for PHP to aid debugging and development|
|bashdb||Source-code debugger for bash; follows the GDB command syntax|
|Nemiver||Standalone graphical debugger for GNOME|
|strace||Diagnostic, debugging and instructional userspace utility|
|Radare2||Portable reversing framework|
We’ve only included a few issue trackers in this compilation, as we have a dedicated article with our recommended issue trackers.
|Return to our complete collection of recommended free and open source software including our latest additions.|