[1] The name is a medieval fantasy complement to "ELF" that had no official meaning, although the name "Debugging With Arbitrary Record Formats" has since been proposed as a backronym.
[1] The first version of DWARF proved to use excessive amounts of storage, and an incompatible successor, DWARF-2, superseded it and added various encoding schemes to reduce data size.
DWARF did not immediately gain universal acceptance; for instance, when Sun Microsystems adopted ELF as part of their move to Solaris, they opted to continue using stabs, in an embedding known as "stabs-in-elf".
DWARF uses a data structure called a Debugging Information Entry (DIE) to represent each variable, type, procedure, etc.
To save space, two large tables needed by symbolic debuggers are represented as byte-coded instructions for simple, special-purpose finite-state machines.