< CALLMON, UTILITIES, Procedure Call Monitor for OpenVMS Alpha  4 CallMon is a low-level debug utility for developers.  D With CallMon, an application can monitor all calls to a selected setD of procedures, taken from any shareable image (including the various OpenVMS run-time libraries).  D The calls are intercepted whether they are come from the applicationD or  from  the  OpenVMS  run-time libraries. For instance, if CallMonD intercepts all calls to LIB$GET_VM, the application will be notifiedD each  time  LIB$GET_VM  is called either from the some module of theD application, from an OpenVMS library routine in some shareable image+ or even from another routine in LIBRTL.EXE.   D CallMon  is  especially useful to implement higher level tools whichD need  to  monitor  the  activity of some library routines. A typicalD usage  of  CallMon  may  be  the  monitoring  of  the virtual memoryD allocation  (intercepting  calls  to  routines  like  LIB$GET_VM and
 LIB$FREE_VM).   5 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   D Later,  whenever  the  intercepted  routine is called, the following steps are taken:  8     - the user-written pre-processing routine is called,1     - the original intercepted routine is called, 9     - the user-written post-processing routine is called.   D The  user-written  procedures  have  access to the original argumentD list and returned value. The interception can be activated, modifiedD and  deactivated  at any time. All hooks into the code are performed9 "on the fly" in the virtual address space of the process.   D Interface definition files are provided for the C and Ada languages.5 However, CallMon can be used from any other language.   D Note that CallMon is designed for OpenVMS Alpha only. CallMon uses aD lot  of features which are specific to the Alpha architecture and toD the  structure  of OpenVMS on Alpha platforms. There is currently no% version of CallMon for VAX platforms.   D This  OpenVMS  Freeware  CD contains the version 1.0 of CallMon. You9 will find the following items in the [CALLMON] directory:   ;     - CALLMON.PS : CallMon documentation in PostScript form *     - CALLMON.OLB : CallMon object library8     - CALLMON.H and CALLMONMSG.H : Interface files for C@     - CALLMON_.ADA and CALLMONMSG_.ADA : Interface files for AdaB     - [.SRC]*.* : CallMon source files (written in C and Macro-64)B     - CALLMON$RESIDENT.COM : Utility procedure (see documentation)  D Several  example  programs  written in C and Ada are provided. TheirD 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:     C         As the owner/developer of this software, I release it to be J         included on the OpenVMS Freeware CD-ROM.  I expect no renumerancesJ         or payments for the use of this software from Digital or Digital's         customers.  ?                                         _______________________ 8                                         Thierry Lelegard