Guide to ldb sources

This is a quick sketch of what's in the ldb sources and where. I discuss things in the order in which they're built. This guide might help you if something goes wrong in the build process. It will definitely help you get started if you want to read, understand, or modify parts of ldb.

First, to build the debugger:

Righteous quake code to support ldb. Includes all sorts of templates for C, Icon, and more.
A library of Modula-3 code used in ldb but not ``debugger-related.''
Preprocessor for implementing PostScript operators. This take a compact description of a PostScript operator and generates Modula-3 code to implement that operator. It's an Icon program.
Library for ldb's embedded PostScript interpreter. Also useful standalone or in other applications.
Support for machine-code manipulation. This is a very early version of the New Jersey Machine-Code Toolkit. It's also an Icon program.
The debugger, which is divided into pieces. The top-level source directory contains main routines and some path stuff that isn't quite right yet. The mdep subdirectory contains all the machine-dependent code. All the common stuff is in cdb.
The auxiliary PostScript code that ldb uses dynamically.
A difference tool used to build the expression server.
Expression server used for expression evaluation.
To build the debug nub you need
The same quake code is used to build both debugger and nub.
Ldb's special linker---a nasty shell script.
The Debug nub itself---both machine-dependent and machine-independent parts. It's written in C and assembly language, and the C parts must be compiled with lcc.