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 ?