AW: Re: deduce program language

2019-10-02 Thread bernd.oppol...@t-online.de
i would Look if the c Program is Compiled with the Rent Option enabled. If 
so, simply calling at CEESTART will not Work.

Kind regards

Bernd



--- Original-Nachricht ---
Von: Brian Chapman
Betreff: Re: deduce program language
Datum: 02.10.2019, 16:27 Uhr
An: IBM-MAIN@listserv.ua.edu




@font-face { font-family: telegrotesk-medium_normal; src: 
url("file:///android_asset/fonts/telegrotesk_normal.ttf");}html,body { 
font-family: "telegrotesk-medium_normal"; font-size: medium; color: 
#4b4b4b; width: 100%;}

Don,

Thanks for the info. I'm familiar with the LE Vendor Interfaces, but I
guess I need to dig deeper.

With all of my test with COBOL and Assembler have been successful. However,
it always abends when I intercept a C program; usually with the CEE3550
message. Occasionally it is a 0C4 in the intended program.

Does LE have stricter requirements with CEESTART in C programs?


Thank you,

Brian Chapman


On Tue, Oct 1, 2019 at 1:23 PM Don Poitras  wrote:

> In article  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
> sas...@sas.com (919) 531-5637 Cary, NC 27513
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN





Gesendet mit der Telekom Mail App
<https://kommunikationsdienste.t-online.de/redirects/email_app_android_sendmail_footer>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: deduce program language

2019-10-02 Thread Charles Mills
> Does LE have stricter requirements with CEESTART in C programs?

It might. That's what you are seeing. Or it might just be something about your 
particular C program.

LE is a little bit of a thing of mystery. Despite the "vendor interfaces" book, 
it is not designed such that it is one big generally usable programming 
interface. LE works as a library and so forth for the supported languages, 
generally fairly well. Beyond that you are on your own.

BTW, be sure to test C++ as well. LE C++ is quite different "under the covers" 
from C.

Charles


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Brian Chapman
Sent: Wednesday, October 2, 2019 7:28 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: deduce program language

Don,

Thanks for the info. I'm familiar with the LE Vendor Interfaces, but I
guess I need to dig deeper.

With all of my test with COBOL and Assembler have been successful. However,
it always abends when I intercept a C program; usually with the CEE3550
message. Occasionally it is a 0C4 in the intended program.

Does LE have stricter requirements with CEESTART in C programs?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: deduce program language

2019-10-02 Thread Don Poitras
I've only written LE programs in C and assembler. I would have guessed that 
COBOL had the same requirements for DLLs having the CEESTART entry point,
but it's not something I've looked into. Sorry. Tom Ross can answer if
he sees this. 

In article  
you wrote:
> Don,
> Thanks for the info. I'm familiar with the LE Vendor Interfaces, but I
> guess I need to dig deeper.
> With all of my test with COBOL and Assembler have been successful. However,
> it always abends when I intercept a C program; usually with the CEE3550
> message. Occasionally it is a 0C4 in the intended program.
> Does LE have stricter requirements with CEESTART in C programs?
> Thank you,
> Brian Chapman

> On Tue, Oct 1, 2019 at 1:23 PM Don Poitras  wrote:
> > In article  > 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
sas...@sas.com   (919) 531-5637Cary, NC 27513

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: deduce program language

2019-10-02 Thread Brian Chapman
Don,

Thanks for the info. I'm familiar with the LE Vendor Interfaces, but I
guess I need to dig deeper.

With all of my test with COBOL and Assembler have been successful. However,
it always abends when I intercept a C program; usually with the CEE3550
message. Occasionally it is a 0C4 in the intended program.

Does LE have stricter requirements with CEESTART in C programs?


Thank you,

Brian Chapman


On Tue, Oct 1, 2019 at 1:23 PM Don Poitras  wrote:

> In article  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
> sas...@sas.com   (919) 531-5637Cary, NC 27513
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: deduce program language

2019-10-01 Thread Don Poitras
In article  
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
sas...@sas.com   (919) 531-5637Cary, NC 27513

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


deduce program language

2019-10-01 Thread Brian Chapman
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