Как можно включить символы отладки GDB «разбить пакеты»? - PullRequest
1 голос
/ 28 октября 2009

Когда я собираю пакеты на Gentoo. Я получаю это предупреждение, что флаг '-ggdb3' может 'разорвать пакеты.

Мне еще предстоит найти случай, когда это правда. Хотя однажды я нашел некоторый код, который ломался при разных настройках оптимизации, это отличается от включения символов отладки.

Могут ли некоторые предоставить пример кода, который будет компилироваться без отладочных символов и не компилироваться (или работать неправильно во время выполнения) с ними?

Ответы [ 3 ]

1 голос
/ 22 марта 2010

В «старые времена» я собрал всю систему Linux с нуля, оставляя отладку для каждого двоичного файла. Конечно, установка была значительно больше, использование памяти было не идеальным, но у меня никогда не возникало проблем ни с компиляцией, ни с последующим выполнением.

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

Я думаю, что флаг, который вы получаете, является стандартным предупреждением, которое пакет выдаст в Gentoo, если вы установите флаги USE, с которыми он не тестировался или с которыми он на самом деле не предназначен для установки. Пока вы знаете, что такое флаг - и в этом случае вы, кажется, - и вы не помещаете его в какие-либо «критически важные» настройки (т. Е. Вас обвинят, если что-то пойдет не так), кажется безопасным игнорировать эти предупреждения.

1 голос
/ 28 октября 2009

У меня никогда не было ни одного теста (или, тем более, разрыва пакета) из-за включенных символов отладки. Меня только укусили ошибки оптимизации при работе с PPC .

Однако вы должны рассмотреть, что вы строите. Если исполняемый файл будет скопирован во что-то вроде initrd, вы, как правило, хотите, чтобы он был извлечен (или скомпилирован без отладочных символов), особенно при статической компоновке.

0 голосов
/ 28 октября 2009

Иногда, когда вы включаете символы отладки, он фактически изменяет код, сгенерированный компилятором, и в этом случае всегда есть возможность перехода от «правильного кода» к «неправильному коду».

Я не знаю, какие конкретные изменения позволяет включить -ggdb3, но, возможно, это то, о чем вас предупреждают.

...