От: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html
-fexceptions: включить обработку исключений. Создает дополнительный код, необходимый для распространения исключений. Для некоторых целей это означает, что GCC генерирует информацию о разворачивании кадров для всех функций,
-funwind-tablesАналогично-fexceptions, за исключением того, что он просто генерирует любые необходимые статические данные, но никак не влияет на сгенерированный код. Обычно вам не нужно включать эту опцию; вместо этого языковой процессор, который нуждается в этой обработке, включает его от вашего имени.
Может ли кто-нибудь объяснить из -funwind-tables, что это означает под "любыми необходимыми статическими данными". На какие данные они ссылаются. И почему данные должны быть сгенерированы? Что произойдет, если эти данные не генерируются? Где эти данные используются для?
И это также говорит "похоже на -fexception ". Так что я думаю, что он также генерирует информацию о раскручивании кадров. Что такое кадр для размотки информации? Кто использует информацию о кадре и как?
В некоторых сообщениях SO я читал, что программы должны компилироваться с этим флагом, чтобы _Unwind_Backtrace работал должным образом. Пожалуйста, объясните, как _Unwind_Backtrace использует информацию, генерируемую -funwind-tables.