Charles,
  Sorry about that. Almost all the work I do in IBM C is in 64-bit.


In article <04b301d03699$53ae6a60$fb0b3f20$@mcn.org> you wrote:
> Grumble, grumble. __le_traceback() is AMODE 64 only. (Noticed that after
> spending about an hour trying to get the example to compile.)

> Charles

> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Don Poitras
> Sent: Thursday, January 22, 2015 11:09 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: In C++ any way to get traceback info in a catch()?

> The CIB is described in __le_api.h. There's a useful function for producing
> tracebacks, __le_traceback. The doc has sample code calling it in C.

> https://www-304.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r
> 1.bpxbd00/letraceback.htm?lang=en


> In article <03d401d03674$10b50770$321f1650$@mcn.org> you wrote:
> > Bernd -

> > Thanks much!

> > Really. :-)

> > Yes, I did not mention it, but when I catch conditions (in a generic 
> > sense of the word) in a signal handler then CEE3DMP shows the real error
> location.
> > You can return from a signal handler so the stack is preserved. It 
> > appears the stack is unwound on a catch() -- from which there is no 
> > return (to the point of failure).

> > That is encouraging news on the CIB -- implies that a CIB may be 
> > created on a C++ exception that leads to a catch().

> > Is the CIB documented anywhere? All I have found are the leawi.h 
> > header and a couple of fields documented in the LE P/G.

> > What fields do you find useful? Is there anything close to the line 
> > number and function or module name for the error?

> > Charles

> > -----Original Message-----
> > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] 
> > On Behalf Of Bernd Oppolzer
> > Sent: Thursday, January 22, 2015 10:28 AM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Re: In C++ any way to get traceback info in a catch()?

> > Am 22.01.2015 um 18:13 schrieb Charles Mills:
> > > I am catching a bad_alloc exception in a catch() block. I call 
> > > CEE3DMP but the stack has been unwound

> > Really?

> > If I have a similar situation for example with PL/1, where an 
> > exception is caught by a PL/1 ON ERROR UNIT, I get a traceback which looks
> like that:

> > CEEDUMP  called by
> > ON ERROR unit  called by
> > some LE error handling stuff  called by the routine getting the 
> > exception (with the CIB)  called by
> > PL/1 main (for example)  called by
> > LE initialization stuff.

> > that is, the stack at the time of the ON ERROR unit still contains the 
> > routine with the exception. So I have no problem seeing the routine 
> > that caused the error.
> > I guess: signal handling in C will do the same.

> > Is the try/catch logic in C++ that different?

-- 
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

Reply via email to