Hi everyone,
I am trying to find out how g++ implements error handling.
My environment is CPU AMD Athlon(tm) XP 2000+, Debian GNU/Linux
3.1, GCC 3.4.3-6, and Glibc 2.3.2.ds1-20. After researching
assembling codes generated by g++, I have known the beginning
and ending part. That is, we will call __cxa_allocate_exception
when writing 'throw expression', then the constructor of the
exception class, and then __cxa_throw. __cxa_throw calls
_Unwind_RaiseException. But this function is so complex for
me that I cannot get the outline of the real process. However,
I found uw_install_context (which is a macro) will be called
if _Unwind_RaiseException succeeds, and the body of
uw_install_context contains calling of longjmp. So setjmp will
be somewhere, but I did no find it. Could somebody tell me the
outline of the unwinding process?
Thanks in advance.
Regard,
Guanpeng Xu
_________________________________________________________________
免费下载 MSN Explorer: http://explorer.msn.com/lccn
- Re: How does g++ implement error handling? Euler Herbert
- Re: How does g++ implement error handling? Jonathan Wakely
- Re: How does g++ implement error handling? Aaron W. LaFramboise