Я работаю над проектом, в котором мы поддерживаем наш собственный сканер стека (по разным причинам).Нам нужно иметь возможность сканировать стек с определенной степенью надежности.В настоящий момент мы сталкиваемся с проблемой, когда хвост функции вызывает интересующую нас функцию, и наша трассировка стека пропускает кадр, который будет присутствовать в отладочной сборке (/ Od).Мы уже отключили оптимизацию и вставку указателя кадра (/ Oy- и / Ob0), чтобы мы могли получать более качественные трассировки стека, но мы все же хотим иметь возможность включить некоторые оптимизации (/ O1), чтобы сделать код быстрее.Однако хвостовые вызовы все еще мешают нашим трассировкам стека.
Есть ли какой-либо флаг или параметр, который отключит эту оптимизацию в MSVC?gcc имеет -f (no-) optimize-sibling-Calls, который охватывает это.