Я задавался вопросом, могу ли я получить список gcc опции, которая может заставить gdb вести себя странный.
Конечно, все мы знаем, что использование опций оптимизации (-O3, например) вызывает странное поведение в gdb, но каковы другие опции, которые могут оказать такое влияние?
(Я в настоящее время пытаюсь выполнить mpeg2 декодер в gdb, и я становлюсь странным поведение даже после удаления флагов оптимизации...),
Я думаю, трудно сказать, какие флаги не следует использовать при вызове gcc для отладки.
В gcc docs отмечается, что флагами отладки по умолчанию являются -g
и -O2
, а использование -g -O0 -fno-inline
отключает любую оптимизацию и инлайнинг функций.
На мой взгляд, если вы действительно хотите гарантировать, что ничто не испортит ваш процесс отладки, вам просто нужно компилировать с флагами -g -O0 -fno-inline
.