Category
page 1Debugging

debugger
thumb |Winpdb debugging itself

Q845566
In engineering, debugging is the process of finding the root cause, workarounds, and possible fixes for bugs.
rubber duck debugging
debugging method, in which a programmer explains code, line-by-line, to an inanimate object ("rubber duck") or to another person, until the incongruity between what the code should do and actually does becomes apparent
disassembler
A disassembler is a computer program that translates machine language into assembly language—the inverse operation to that of an assembler. The output of disassembly is typically formatted for human-readability rather than for input to an assembler, making disassemblers primarily a reverse-engineering tool. Common uses include analyzing the output of high-level programming language compilers and their optimizations, recovering source code when the original is lost, performing malware analysis, modifying software (such as binary patching), and software cracking.
core dump
record of memory at the exact moment a computer program crashes, is terminated or explicitly requests a dump

breakpoint
thumb|The debugging interface of Eclipse (software)|Eclipse with a program suspended at a breakpoint. Panels with [[stack trace (upper left) and watched variables (upper right) can be seen.]]
assertion
in computer programming, statement that a predicate is always true at that point in code execution
magic number
sequence of bytes used to identify or indicate the format of a file
heisenbug
In computer programming jargon, a heisenbug is a software bug that seems to disappear or alter its behavior when one attempts to study it. The term is a pun on the name of Werner Heisenberg, the physicist who first introduced the uncertainty principle, and it is a reference to the observer effect, which states that the act of observing a system inevitably alters its state. In electronics, the traditional term is probe effect, where attaching a test probe to a device changes its behavior. The term has been criticized because it confuses Heisenberg's uncertainty principle (to which it owes the n
Android Debug Bridge
Tool for debugging Android-based devices
hex dump
hexadecimal view of computer data

hotfix
A hotfix is a software update that is released outside the normal update cycle or intended to be applied to a live system, often to fix a bug.
stack trace
report of the active stack frames at a certain point in time during the execution of a program
In-circuit emulator
debugging for embedded systems
validator
A validator is a computer program used to check the validity or syntactical correctness of a fragment of code or document. The term is commonly used in the context of validating HTML, CSS, and XML documents like RSS feeds, though it can be used for any defined format or language.
non-maskable interrupt
hardware interrupt that cannot be ignored by instructions of CPU
tracing
specialized use of logging to record information about a program's execution, which is typically used by programmers for debugging purposes
debug symbol
special kind of symbol that attaches additional information to the symbol table of an object file, such as a shared library or an executable, allowing a symbolic debugger to gain access to information from the source code of the binary
instrumentation
enabling of code tracing, debugging and profiling in computer programming
ptrace
ptrace is a system call found in Unix and several Unix-like operating systems. By using ptrace (an abbreviation of "process trace") one process can control another, enabling the controller to inspect and manipulate the internal state of its target. ptrace is used by debuggers and other code-analysis tools, mostly as aids to software development.
output verbosity
option in software to output more or less information about the software's operations as it performs them
Trace table
a technique to test algorithms
Sutton's law
"first consider the obvious"
Program slicing
set of software engineering methods