>> По стековым фреймам в *nix см. red zone, кадры не всегда организуются даже когда нужны.
> И что? Стековый фрейм начинается адресом возврата, и продолжается до следующего адреса
> возврата.Обычно под кадром понимают аргументы (если они сохранены на стэке) и локальные переменные функции. Адрес возврата это адрес возврата - его рисуют на картинках в книжках для пущего понимания и целостности картины. Эти данные не относятся к исключениям.
> То что ты называешь "организацией кадра" -- это лишь специальные
> телодвижения сводящиеся к тому, чтобы положить в известное и доступное место
> адрес этого самого стекового фрейма.
Организация кадра выполняется модификацией регистра процессора "указатель стека" (иногда используется регистр "базы стека"). Действительно, упомянутый регистр - известное место.
>> Стандарт С++ определяет семантику исключений и приходится соответствовать. То есть перевод разговора на уровень имплементации рантайма трактуются лишь в ключе "я (не) знаю как".
> Ах, так ты о C++ говоришь?
Ну да. Выше кто-то заявил, что в С++ с этим нет проблем.
> И чё, бектрейсы в C++ пишут
> и про заинлайненные функции? Вот если я напишу C++ программу, скомпилирую
> её с -O2, стрипну всю дебаг-инфу из файла, то я смогу
> получить полный список вложенных вызовов в бектрейсе?
Уверен, сможешь. Возможно, не с первой попытки, но сможешь. Ты специалист весьма грамотный и упорный, другое дело, что больше интересуешься высоким уровнем, а не всякими rop-гаджетами.
Тут надо понимать, что дебажная инфа не относится к исключениям. Для них генерируются отдельные таблицы адресов try-блоков. То есть эти вещи ортогональны. Дебажная инфа по большому счёту нужна для сопоставления адресов машинных команд строчкам с исходниках. Ну и при построении графа вызовов не всегда получается гарантировано однозначно раскрутить стек, если не используется регистр базы стека.
>> Скажу прямо: это не моя забота знать, как там в Rust и почему inline стало проблемой, когда в С++ таковой не является.
> Ты сам с собой разговариваешь? Где тут ты видишь проблему?
Я просто поверил тебе, как специалисту по Rust. Ты же сам сообщил, что из-за инлайна не будет стекового фрейма и потому в итоге вываливается паника, а иначе сделать нельзя.