AIX

AIX

Connect with fellow AIX users and experts to gain knowledge, share insights, and solve problems.


#Power
 View Only

stack unwinding with exception handling

  • 1.  stack unwinding with exception handling

    Posted Tue June 06, 2006 11:11 AM

    Originally posted by: SystemAdmin


    Hi,

    we have a piece of code structured like this
    int func( void )
    {
    M *pMsg;
    try {
    try {
    pMsg = receiveMsg();
    ......
    }
    catch ( const A & ) {
    .....
    }
    catch ( const B & ) {
    ......
    }
    delete pMsg;
    }
    catch ( const time_out & ) {
    // handle timeout here
    }
    }

    Is it according to the standard correct behaviour that the stack
    doesn't get unwound correcty when a time_out exception is thrown in
    receiveMsg() ?

    this code works just fine on AIX 4.3.3 with VA5, windows with
    VisualStudio 2003 and Solaris 10 with Sun Studio 10.
    On AIX 5.2 with VisualAge 6 this gives us grief.

    If I move the inner try block to a sub-function everything is just fine.
    Catching and rethrowing the exceptions otoh still gives a stack overflow.

    Any takers for this problem ?

    Remko
    #AIX-Forum