Thanks. Six years of writing C++ and I was not aware of that.

Just to clarify, set_terminate() is an additional separate mechanism
unrelated to and somewhat parallel to throw and catch?

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On
Behalf Of David Crayford
Sent: Friday, June 17, 2016 5:40 AM
To: [email protected]
Subject: Re: What causes a Signal 3?

On 17/06/2016 1:23 PM, David Crayford wrote:
>
>
> On 17/06/2016 1:12 PM, Jack J. Woehr wrote:
>> Charles Mills wrote:
>>> But there are no explicit calls to either abort() or
>>> terminate() anywhere in the source code.
>> abort() is called on an unhandled exception.
>>
>> http://www.cplusplus.com/reference/exception/set_terminate/
>>
>
> That's the most likely cause, most probably thrown by the standard 
> library. It's not a bad idea to setup your own set_terminate handler 
> with a ctrace() to generate a stack trace to see where that's 
> happening.
>

That's not good advice. abort() will dump and give you a better result. 
My theory was that the handler would catch the thrower and create a stack
trace. It doesn't!

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to