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

Earl Chew earl_chew@agilent.com
Tue Nov 13 18:41:00 GMT 2007


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



More information about the Gcc-help mailing list