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

Reply via email to