Использование параметров -g и -O2 в gcc - PullRequest
12 голосов
/ 14 января 2011

Кто-нибудь испытывает смешивание -g (символы отладки) и -O2 (лучшая безопасная оптимизация) с компилятором gcc?
Я должен отладить сбои программы выпуска, распространяемой среди конечных пользователей, которая может отправить мне обратно файл ядра.
Я всегда звонил:

gdb << myprogram >> << основной файл >>

и посмотри, где проблема. Теперь я вижу только трассировку вызовов, но не имея отладочных символов, у меня проблемы.

Есть идеи?

Ответы [ 2 ]

11 голосов
/ 14 января 2011

Работает нормально.

Или, из-за оптимизации, иногда источник, через который вы переходите с помощью отладчика, не совпадает точно с источником, но IMHO, несмотря на то, что наличие символов отладки делает отладку намного проще.

7 голосов
/ 28 декабря 2011

Мы используем оба вместе в производственной среде, что значительно упрощает отладку, если клиент видел сбой только один раз. Это дает вам довольно хорошее представление о том, в чем проблема (не в случае повреждения памяти).

Теоретически добавление -g не должно сильно влиять на производительность, хотя исполняемый файл становится большим. Во встроенной среде это большой компромисс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...