Am 22.01.2015 um 20:22 schrieb Charles Mills:
Thanks! Do you have any idea whether __le_traceback will produce meaningful
results in a situation in which CEE3DMP does not output a useful traceback?
The C++ stack has apparently already been unwound when C++ enters a catch()
block. The catch() block appears to have been called from the point at which
the try block was entered.
See my previous post, too.
If __le_traceback starts from the current stack frame, then of course it
will
not show you the information of the stack frames below the catch-Block,
which have already been unwound.
On the other hand: if our assumptions so far regarding the contents of the
CIB are correct, then the CIB should contain the register information at
the
time of the exception, that is: for example the register 13 at the time
of the
error. I believe (!!) that the stack frames below the catch block still
exist
and if there is a way to call __le_traceback with a parameter (the starting
stack_frame), you should be able to get that starting point from the CIB
and start it from there.
We had at our site a function called ccback () which did exactly that.
And, of course, we called it before there was some unwinding of stack
frames.
I would as a first step try to print the contents of the EPIE inside the
CIB and
see if it fits well with the stack frame of the function containing the
exception
(see register 13 and compare it to the address of the DSA).
Kind regards
Bernd
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
----------------------------------------------------------------------
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