I created a trace facility to intercept external interface calls (MQ, DB2, IMS, etc) and dynamic calls.
For dynamic calls, I intercept the load request and replace the entry point address with an entry point address of my own program. I then save the original entry point address to later branch to the intended program. The interception works for assembler and COBOL programs, but it fails for C programs. When intercepting a C program, the process abends with a 4038 (CEE3550S The DLL cannot be loaded because it does not contain a CEESTART CSECT). Is there a write-up on how the program load point is mapped and how to deduce the loaded program's language? I hoped to clone my assembler intercept program and create a second copy that includes the CEESTART macro to resolve this issue. However, I read that the CEESTART, CEEMAIN, and CEEFMAIN should not be used within an assembler program because it will produce unpredictable behavior. Must I write a C program? Thank you, Brian Chapman ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN