Annotation of coherent/b/bin/db/Read_me, revision 1.1

1.1     ! root        1: db/Read_me 4/2/93
        !             2: steve's notes on db source
        !             3: 
        !             4: A brief history:
        !             5: db was originally written ca. 1982 (?) by Johann George for PDP-11 COHERENT.
        !             6: It was subsequently ported to i8086, z8001, m68000, etc.
        !             7: The source still shows the influence of these versions,
        !             8: in particularly the segmentation for PDP-11 and segmented z8001 models.
        !             9: It is also complicated considerably by understanding both COFF and l.out.
        !            10: 
        !            11: The initial i386 version was by a German associate of Frank Pfeifer,
        !            12: Bernard Waldt, Waldt Software Consulting, Germany,
        !            13: starting from existing i8086 sources.
        !            14: He was not an MWC employee, and apparently it never worked.
        !            15: hal hacked on the i386 sources somewhat in 1993, cleaning up the
        !            16: ptrace() call in the COH386 system and making db sort of work.
        !            17: 
        !            18: By the time steve got the i386 sources, both machine-independent and
        !            19: machine-independent sources lived in the same directory.
        !            20: steve restored the subdirectory structure for the benefit of future ports
        !            21: and rewrote and reorganized the source considerably; see the Changes
        !            22: file for more details.
        !            23: 
        !            24: In the PDP-11 machine model, the same address could reference i-space (code)
        !            25: or d-space (data).  Vestiges of this architecture are still very evident in
        !            26: db source (as well as in the ptrace() interface), and make the source
        !            27: confusing or wrongheaded for a flat address space machine architecture,
        !            28: although much of this code is still necessary to support l.out.
        !            29: In particular, a symbol has an associated segment (DSEG or ISEG,
        !            30: or USEG for registers), but the mapping of an arbitrary address
        !            31: to a segment can be many-one.  This could be clearer in the source.
        !            32: 
        !            33: Substantial amounts of other source cleanup remain to be done.
        !            34: The code often assumes that the host machine object sizes are the same
        !            35: as the target machine sizes (4 byte ints); it should instead define its
        !            36: own target machine types, like ival_t in the compiler;
        !            37: with a little fine-tuning of exec() and ptrace() interface,
        !            38: this would allow remote (cross-machine) debugging.
        !            39: The machine-independent code used to pass machine addresses in longs,
        !            40: now it uses ADDR_T (defined in machine-dependent mdb.h).
        !            41: 
        !            42: Future coding improvements/ideas:
        !            43:        type handling using char_t/short_t/int_t/long_t for target sizes
        !            44:        symbol lookup by value: add ordered list field to SYM?

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.