Why GCC compiled C program needs .eh_frame section?
First of all, the original reason for this was largely political – the people who added DWARF-based unwinding (.eh_frame) wanted it to be a feature that’s always there so it could be used for implementing all kinds of stuff other than just C++ exceptions, including: backtrace() __attribute__((__cleanup__(f))) __builtin_return_address(n), for n>0 pthread_cleanup_push, implemented in terms of … Read more