In article <CA+oOHRgTC_6bbFLib5c5d8rArQbHs=t1cmgbfaka497yhff...@mail.gmail.com> you wrote: > 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
I'm not sure how COBOL is working for you as it's an LE program the same as C, but perhaps you're not using standard LE DLL's for your COBOL programs. CEESTART is not a macro, it's a module/CSECT that gets linked from the LE bind library when you compile an LE program or DLL. It's always linked as the entry point as that's where the WSA is allocated and other housekeeping before the user code is called (either main() or the DLL function). LE doc is kind of spread all over the place, but for writing an assembler front-end as you're doing, I think the LE Vendor Interfaces book is something you should look at. https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.ceev100/abstract.htm -- Don Poitras - SAS Development - SAS Institute Inc. - SAS Campus Drive [email protected] (919) 531-5637 Cary, NC 27513 ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
