Т.Л., д-р: Чтобы ответить на конкретный вопрос, -g3
«включает в себя дополнительную информацию, такую как макроопределений Некоторые отладчики поддерживают макрораскрытие при использовании -g3
.», В то время как -g
нет.
Более общий ответ: gcc поддерживает четыре уровня отладочной информации: от -g0
(отладочная информация отключена) через -g3
(максимальная информация об отладке).
Заказание -g
равнозначно -g2
. Любопытно, что gcc docs мало говорят о том, какая информация -g
/-g2
включает или исключает.
Запросить информацию об отладке, а также использовать уровень, чтобы указать, сколько информации. Уровень по умолчанию - 2. Уровень 0 не генерирует отладочную информацию. Таким образом, -g0 отрицает -g.
Уровень 1 дает минимальную информацию, достаточную для создания обратных трасс в тех частях программы, которые вы не планируете отлаживать. Сюда входят описания функций и внешних переменных, а также таблицы номеров строк, но нет информации о локальных переменных.
Уровень 3 включает дополнительную информацию, такую как все макроопределения, присутствующие в программе. Некоторые отладчики поддерживают расширение макросов при использовании -g3.
Что вы хотите знать, что не распространяется на документацию? –
Я пришел сюда, потому что я использую чужой make-файл, а документация - это зверь, с которого можно начать. Хороший вопрос на StackOverflow, чтобы найти легкий ответ от google. – GreenAsJade