This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gcc exception handle


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]