Есть ли недостаток в построении с -g -O и в полосе против построения только с -O - PullRequest
8 голосов
/ 06 июня 2011

У меня есть исполняемый файл кода C для Linux.

Для выпуска у меня может быть два варианта:

Один из них - это сборка с -g -O3, удаление отладки (strip -g) и отправка вывода как релиза. Второй - сборка релиза напрямую с -O3.

Преимущество первого варианта, если я правильно понимаю, заключается в том, что я могу использовать exe-файл перед удалением для отладки или анализа дампов ядра.

Вопрос в том, есть ли недостатки в этом подходе, т. Е. Есть ли накладные расходы на производительность при сборке с -g и последующем удалении

спасибо.

1 Ответ

8 голосов
/ 06 июня 2011

При использовании -g производительность не снижается.Отладочная информация находится в отдельном разделе исполняемого файла, который даже не будет загружен, если вы запустите файл.

Но вы можете разделить отладочную информацию и исполняемые файлы, если хотите (что все равно не повлияет на производительность)).Мой Gentoo Linux обрабатывает это таким образом, причина в том, чтобы просто минимизировать используемое дисковое пространство, что позволяет мне иметь все двоичные файлы на маленьком быстром диске, сохраняя при этом отладочную информацию, которая почти никогда не используется, в отдельном разделе.*

Теперь у вас есть исполняемый файл foo и файл foo.debug, содержащий символы отладки.

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