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]

Re: -finstrument-functions and stack unwinding on C++ exceptions


Ian Lance Taylor wrote:
The -finstrument-functions options inserts calls to __cyg_profile_func_enter
and __cyg_profile_func_exit into functions and methods.

In particular __cyg_profile_func_exit is called just prior to the
function/method epilogue.

In C++ a method can also terminate due to an exception. This causes
the stack to unwind as the runtime searches for an exception handler.

As the intervening stack frames are unwound, are the related calls
to __cyg_profile_func_exit called, or will those stack frames
end up with an unmatched __cyg_profile_func_enter ?

Try it and see.


I would bet that you will see an unmatched __cyg_profile_func_enter.

I found this bug report:


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2200

and this patch:

http://gcc.gnu.org/ml/gcc-patches/2003-12/msg00959.html

The code appears to have been merged to gcc 4.X but the patch
requires the tree-ssa changes to be viable.

Earl


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