-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