[PATCH] Naming dwarves

Mark Kettenis
2003-05-17T12:53:34Z

Andrew already made a side-remark in an earlier message: how are we
going to name our files and functions related to DWARF?

There are basically two generations of the DWARF Debugging Information
Format. The first generation is usually referred to as DWARF Version
1. There is a 1.1.0 revision of the DWARF standard, but this revision
is supposed to be fully binary compatible with the origional DWARF
definition. The second generation is referred to as DWARF Version 2,
or simply DWARF-2. Although the basic structure of Version 2 format
is the very similar to Version 1, the encoding is different.
Therefore these two formats are not binary compatible, which is why we
have seperate DWARF and DWARF-2 symbol readers in GDB. There are also
many new features in DWARF-2.

There is also a public draft for DWARF Version 3, which should be
largely binary compatible with Version 2. Standardization of Version
3 seems to have stopped, but some of the proposed extensions are
already in use. I believe our DWARF-2 reader supports these. Since
the Version 3 format is largely binary compatible with Version 2, I
don't think we'll ever have a seperate DWARF-3 reader in GDB. The
number of new features in the proposed standard is rather limited.

Currently we have the following files dealing with DWARF:

DWARF Version 1:
dwarfread.c

DWARF Version 2:
dwarf2read.c
dwarf2expr.c dwarf2expr.h
dwarf2loc.c dwarf2loc.h
dwarf2cfi.c dwarf2cfi.h (consider these deprecated)
dwarf-frame.c dwarf-frame.h (on the i386newframe branch)

The dwarfread.c module exports only one function:
dwarf_build_psymtabs(). The dwarf2*.c modules export several
functions, some with the dwarf2_ prefix, some with the dwarf_ prefix,
and some with no prefix at all. I think Andrew would like to see that
we use dwarf2 in the names of files implementing DWARF-2 things, and
the dwarf2_ prefix for public function names. Is that right? If
people agree, I'll rename my DWARF CFI bits before I move things over
to mainline.

Mark