ClassicGuard
ClassicGuard is the first implementation of relative
debugger. It has been implemented in most Unix machines, and is
command line driven. It has a client server architecture, and
uses GDB as the portable debug server implementation.
ClassicGuard uses a client/server model in order
to ensure that the processes being debugged can be distributed
onto multiple platforms and can be controlled independently. In
this architecture, each of the debug servers is responsible for
managing a single process that is being debugged. The following
picture shows the architecture of ClassicGuard

The above diagram shows a scenario where the user
is debugging a serial process S1 on host A and a parallel program
compromising two processes P1 and P2 on hosts A and B respectively.
The client/server architecture places no distinction on the host
running the debugger client, so in this case it is located on
a third machine, host C.
Both the client and server that make up the debugger
are designed to be as modular as possible. To achieve this, a
three-layer model has been adopted for both the client and the
server. The following diagram shows the components that make up
the debugger
