CALLMON, UTILITIES, Procedure Call Monitor for OpenVMS Alpha

CallMon is a low-level debug utility for developers.

With CallMon, an application can monitor all calls to a selected set
of procedures, taken from any shareable image (including the various
OpenVMS run-time libraries).

The calls are intercepted whether they are come from the application
or  from  the  OpenVMS  run-time libraries. For instance, if CallMon
intercepts all calls to LIB$GET_VM, the application will be notified
each  time  LIB$GET_VM  is called either from the some module of the
application, from an OpenVMS library routine in some shareable image
or even from another routine in LIBRTL.EXE.

CallMon  is  especially useful to implement higher level tools which
need  to  monitor  the  activity of some library routines. A typical
usage  of  CallMon  may  be  the  monitoring  of  the virtual memory
allocation  (intercepting  calls  to  routines  like  LIB$GET_VM and
LIB$FREE_VM).

To intercept a routine, the application must provide:

    - the name of the routine to intercept (a character string)
    - the address of a user-written pre-processing routine
    - the address of a user-written post-processing routine

Later,  whenever  the  intercepted  routine is called, the following
steps are taken:

    - the user-written pre-processing routine is called,
    - the original intercepted routine is called,
    - the user-written post-processing routine is called.

The  user-written  procedures  have  access to the original argument
list and returned value. The interception can be activated, modified
and  deactivated  at any time. All hooks into the code are performed
"on the fly" in the virtual address space of the process.

Interface definition files are provided for the C and Ada languages.
However, CallMon can be used from any other language.

Note that CallMon is designed for OpenVMS Alpha only. CallMon uses a
lot  of features which are specific to the Alpha architecture and to
the  structure  of OpenVMS on Alpha platforms. There is currently no
version of CallMon for VAX platforms.

This  OpenVMS  Freeware  CD contains the version 1.0 of CallMon. You
will find the following items in the [CALLMON] directory:

    - CALLMON.PS : CallMon documentation in PostScript form
    - CALLMON.OLB : CallMon object library
    - CALLMON.H and CALLMONMSG.H : Interface files for C
    - CALLMON_.ADA and CALLMONMSG_.ADA : Interface files for Ada
    - [.SRC]*.* : CallMon source files (written in C and Macro-64)
    - CALLMON$RESIDENT.COM : Utility procedure (see documentation)

Several  example  programs  written in C and Ada are provided. Their
source  files are located in the subdirectory [.SRC]. The correspon-
ding executable images are provided in the main directory.


                        RELEASE FORM
                        ------------

OpenVMS Freeware CD
--------------------

DEVELOPER RELEASE FORM:


        As the owner/developer of this software, I release it to be
        included on the OpenVMS Freeware CD-ROM.  I expect no renumerances
        or payments for the use of this software from Digital or Digital's
        customers.

                                        _______________________
                                        Thierry Lelegard
