gcc exception handle

王 刚伟 gwwang10@hotmail.com
Mon Jan 29 09:23:00 GMT 2007


Hi,

Here is My test function :
 
class A
{
public:
private:
 char string[SIZE];
};
 
void test1(void)
{
    A obj;
 
    try 
    {
       throw obj; 
    }
    catch (A &e)
    {
       printf("exception ! \n");
    }
}
 
when SIZE <= 68,"__cxa_allocate_exception" allocates space for the 
exception successfully,after "__cxa_throw" is called,"__cxa_begin_catch" is 
called,and the statement "printf..." in the catch block can be executed.
when SIZE > 68, ,"__cxa_allocate_exception" also allocates space for the 
exception successfully,but after "__cxz_throw" is called,"__cxa_end_catch" 
is called,and the program crashed.
 
Did the error occur in compilation period or link period?
How can I make the compiler support SIZE <= the size of Task Space?
 
Any suggestions?
 
thank you!

_________________________________________________________________
ÓëÁª»úµÄÅóÓѽøÐн»Á÷£¬ÇëʹÓà MSN Messenger:  http://messenger.msn.com/cn  



More information about the Gcc-help mailing list