XMON - An interactive X protocol monitor

ABOUT XMON
==========

Xmon interactively monitors the byte-stream connections between an X
server and a number of X clients.  Xmon recognises all requests,
events, errors and replies sent between the clients and the server
which are part of the core X protocol.  The contents of these messages
are displayed on standard output at a user settable degree of detail
from none to every bit and byte.  Xmon also allows the user to select
a number of requests or events to be monitored at a different degree
of detail.  Xmon will also block the transmission of selected requests
from the clients to the server and selected events from the server to
the clients.  Xmon also keeps statistics of the number of requests,
events, and errors received.

Xmon is made up of two separate processes.  The core of xmon is xmond
which monitors the X protocol streams and displays the protocol
messages on standard output.  The interactive interface is handled by
xmonui.  These two processes communicate via a pipe from the standard
output of xmonui to the standard input of xmond.

The following diagram shows the relationships between xmonui and
xmond, and the clients and the server.

                          ----------
                          | xmonui |
                          ----------
                              |
                              v
     ------------         ----------
     | client 1 |<------->|        |
     ------------         |        |       ----------
          :               | xmond  |<----->| server |
          :               |        |       ----------
     ------------         |        |
     | client n |<------->|        |
     ------------         ----------
                              |
                              v
                    monitor output to stdout

In the diagram the vertical connections are pipes and the horizontal
connections are normal X socket connections.

Xmond sits transparently between the X clients and an X server.  To
the clients it behaves just like an X server and to the server it
behaves just like a number of X clients.

If you want to read more about xmon, look at the manual page in
xmon.man.


WHERE CAN I GET IT?
==================

Xmon is available for ftp from:
  ftp://ftp.x.org/contrib/devel_tools/


HOW TO BUILD XMON
=================

To make xmon first make the Makefile. If you have xmkmf, then
use it to create the Makefile.

If you don't have xmkmf, then use imake to make a Makefile.

If you don't have imake, then rename the file Makefile.std to
Makefile and see if that works.  If not, you may need to modify
the Makefile.  Read the comments at the top for help and let me
know if you need to make changes so I can add them in for others.

When you have finished the Makefile, type
    make
to make the two programs xmond and xmonui.

Run xmon with the command
    ./xmonui | ./xmond

See the manual page for the available options.

Please send any reports to
    gregm@iname.com

