Dictionary of Debugging

Software Diagnostics, Observability, and Debugging

PDF: https://www.dumpanalysis.org/files/Dictionary_of_Debugging_Version8.pdf

Memory dumps, traces, logs, metrics, and profiles provide different views of software behavior. Software diagnostics, observability, and debugging connect these views through a vocabulary of artifacts, structures, activities, and mechanisms. Before using a term to interpret evidence, we need to understand what it means in its particular context.

Dictionary of Debugging brings together 1,385 entries across 23 domains, supported by 883 primary references. Its coverage spans memory, execution, and concurrency; live and postmortem debugging; trace and log analysis; performance; reliability; distributed systems; cloud environments; testing; program analysis; and AI-assisted diagnostics. Pattern-oriented methods and software narratology connect individual terms to ways of investigating software and reconstructing its behavior.

Each entry provides a concise definition, a domain label, an expansion where appropriate, source references, and related terms. An ambiguity guide distinguishes different meanings of shared names. Alias and domain indexes provide additional routes through the vocabulary, while the standards and formats section connects relevant specifications with their diagnostic uses.

The dictionary grows out of the early Dictionary of Debugging blog entries begun in 2009. These initial attempts are developed into a broader reference that preserves the relationship between terminology and analysis. Throughout the book, we distinguish what an artifact shows, which pattern we recognize, and which mechanism still requires investigation. Recognizing a familiar pattern organizes the evidence and guides further work; it does not by itself establish a unique cause.

For developers, software diagnosticians, support and reliability engineers, performance analysts, and researchers, this dictionary supports both quick lookups and exploration of related concepts. The aim is to make the language of an investigation as explicit as the evidence it depends on.