Э. Сивер, С. Спейнауэр, С. Фиггинс, Дж. П. Хекман - Linux cправочник - 3-е издание (1114666), страница 27
Текст из файла (страница 27)
Команды Linuxgcc-traditionalПоведение, максимально близкое к поведению традиционного компилятора С.-traditional-cppПоведение препроцессора, соответствующее традиционному языку С.-trigraphsВключить поддержку триграфов.-u symbolПредписание редактору связей искать имя symbol в библиотеках и связывать с библиотекой программу, еслирезультат поиска положительный.-undefОпределить только константы, требуемые стандартомязыка, а не системно-зависимые константы вроде unix.-v Режим подробной диагностики. Команды отображаютсяпо мере выполнения. Также отображается номер версииgcc и номер версии препроцессора.-w Подавить вывод предупреждений.-х languageСчитать, что исходные файлы содержат текст на языкеlanguage.
Аргумент может быть равен с, objective-c, c-header, с++, cpp-output, assembler или assembler-withcpp. Значение none является предписанием для автоматического распознавания.-Aquestion(answer)Препроцессор, встретив условную директиву question,например #if question, добавляет в ответ указание answer. Отключение стандартных указаний производитсяпараметром —А—.-BpathУказать каталог path, в котором расположены файлыкомпилятора.-С Указание препроцессору сохранять комментарии.
Имеет смысл использовать только с параметром —Е.-T)name[=def]Определить имя пате как имеющее значение def (поаналогии с директивой #define). Если значение (=def)опущено, пате получает значение 1. —D имеет меньшийприоритет, чем -U.Алфавитный перечень команд175—Е Обрабатывать исходные тексты препроцессором, но непроизводить компиляцию. Отображать результаты настандартный вывод.gcc-IdirВключить dir в список каталогов, в которых выполняется поиск включаемых файлов.
Если dir имеет значение«—», искать в тех каталогах, которые заданы параметром —Iраньше параметра —I—, причем только для директив вида #include "file", но не #include <file>.—LdirВ дополнение к стандартным каталогам производить поиск в каталоге dir.-М Вместо компиляции создать, основываясь на директивах #include, правило, описывающее зависимости исходного файла и пригодное для включения в файл сборки (makefile). Подразумевается параметр —Е.-MDДействует аналогично -М, но информация о зависимостях записывается в файлы с расширением .d и выполняется обычная компиляция.-MGПрименяется совместно с -М или -ММ. Не выводить сообщение об ошибке, если не найден включаемый файл.Используется, если включаемый файл автоматическигенерируется при сборке.-MMDАналогично —MD, но записывается информация толькоо включаемых файлах пользователя, а не о системныхвключаемых файлах.-ММДействует аналогично —М, но правило ограничиваетсянестандартными включаемыми файлами, т.е.
определяемые директивой #include "file", но не #include <file>.-Н Отображать пути включаемых файлов (по одному в строке) в стандартный поток ошибок.-O[level]Оптимизация. Параметр level может принимать значения 1, 2, 3 или 0. По умолчанию значение level равно 1.О - оптимизация отключена; 3 — максимальная оптимизация.176Глава 3. Команды Linuxgcc-Р Обработка препроцессором без генерирования информации управления строками для следующего прохода компилятора С. Имеет смысл использовать только совместно с -Е.-S Транслировать исходный текст в ассемблерный, но невызывать ассемблер.-UnameУдалить существующее определение имени пате, которое может являться зарезервированным и предварительно определенным препроцессором либо именем, определенным параметром -D. unix и 1386 - это имена, предопределяемые срр.-V versionПопытаться выполнить gcc указанной версии.-WБолее подробные, чем обычно, предупреждения.-Wl,optionЗапустить редактор связей с параметром option, который может быть списком параметров, разделяемых запятыми.-Wa,optionВызвать ассемблер с параметрами option (список параметров разделяется запятыми).-Waggregate-returnВыдавать предупреждения об объявленных или вызываемых функциях, возвращающих экземпляры структурили объединений.-WallВключить параметры —W, -Wchar-subscripts, — Wcomment, -Wformat, —Wimplicit, -Wparentheses, —Wreturn-type, -Wswitch, -Wtemplate-debugging, -Wtrigraphs, — Wuninitialized и —Wunused.-Wcast-alignВыдавать предупреждение о приведении указателя к типу с выравниванием по увеличенной границе.-Wcast-qualВыдавать предупреждение о приведении указателя к типу с потерей квалификатора исходного типа.Алфавитный перечень команд177-Wchar-subscriptsgccВыдавать предупреждение, если индекс массива имееттип char.-WcommentВыдавать предупреждение, когда встречается вложенный комментарий.—WconversionВыдавать предупреждения о некоторых вариантах приведения типов данных.—WerrorЗавершать работу при первой встреченной ошибке.—WformatВыдавать предупреждение о неверном задании формата вфункциях printf и scanf.—WimplicitВыдавать предупреждение о неявно определяемой функции или параметре.—WinlineВыдавать предупреждение о неверных inline-функциях.-Wmissing-declarationsВыдавать предупреждение о наличии определения глобальной функции, для которой отсутствует объявление.-Wmissing-prototypesПредупреждать об отсутствии прототипов для определений глобальных функций.-Wnested-externsВыдавать предупреждение, если ключевое слово externвстречается внутри функции.—Wno-importНе выдавать предупреждение об использовании #import.—Vfp,optionsПередача параметров (options) препроцессору.
Множественные параметры разделяются запятыми. Параметр неотносится к параметрам предупреждений.-WparenthesesБолее подробные предупреждения об опущенных скобках.178Глава 3. Команды Linuxgcc-Wpointer-arithВыдавать предупреждение о попытке определить размерфункции или типа void.-Wredundant-declsВыдавать предупреждение, если какой-либо объект объявляется дважды в пределах одного блока видимости.-Wreturn-typeВыдавать предупреждения о функциях, объявленных безвозвращаемого типа или с неверным возвращаемым типом.-WshadowВыдавать предупреждение о перекрытии имен локальных переменных.-Wstrict-prototypesТипы аргументов функций должны быть указаны и вобъявлении, и в определении функции.-WswitchВыдавать предупреждение, если в операторе switch обрабатываются не все возможные значения перечислимоготипа.-Wtemplate-debuggingВыдавать предупреждение о невозможности отладки дляшаблонов C++.-WtraditionalВыдавать предупреждение о наличии кода, работающегоразличным образом в традиционном С и в ANSI С.-WtrigraphsВыдавать предупреждение о наличии триграфов.-WuninitializedВыдавать предупреждение о наличии неинициализированных автоматических переменных.-WunusedВыдавать предупреждение о наличии неиспользуемыхпеременных и функций.-Xlinker optionПередать параметр (option) редактору связей.
Параметр саргументом должен передаваться парой параметров -X,где первый определяет параметр, а второй определяет аргумент.Алфавитный перечень команд179Директивы pragmagcc#pragma interface [header-file]Применяется в файлах заголовков для включения вобъектные файлы ссылок на определения, а не самих определений.
Директива является специфичной для C++.#pragma implementation [header-file]Размещается в основном файле программы для принудительного генерирования полной информации о файлеheader-file (если имя опущено, используется заголовочный файл с таким же именем, как у файла, содержащегодирективу). Информация становится доступной глобально. Обычно указанный файл содержит директиву #pragma interface.gdb [options] [program [core pid]]Отладчик GDB (GNU DeBugger) обеспечивает пошаговое выполнение программ на С, C++ или Modula-2 с целью локализации причины сбоя. Имя программы для отладки, как правило, указывается в командной строке.
Можно также указать образ памяти (core) завершившейся задачи или идентификатор работающего процесса (pid).Параметры-s file, — symbols=fileПрочитать таблицу имен из файла file. При указании совместно с параметром —е файл также считается исполняемым.—е file, —ex.ec=fileИспользовать указанный файл в качестве исполняемого впаре с исходными текстами программы. В сочетании с параметром —s может применяться для чтения имен из файла.-с file, —core=fileПрочитать информацию из файла file, считая его образомоперативной памяти.-х file, —command=fileВыполнить команды gdb из файла file.—d directory, —directory=directoryВключить каталог directory в пути поиска файлов с исходными текстами программы.gdb180gdbГлава 3. Команды Linux-n, -nxИгнорировать файл .gdbinit.—q, —quietПодавить отображение вводной информации и сведений оправообладании.—batchЗавершить работу после выполнения всех команд из файла .gdbinit и файлов, указанных в параметре —х. Не отображать никаких сообщений при старте.—subdirectoryСделать directory рабочим каталогом gdb.—f, -fullnameОтображать полное имя файла и номер строки для каждого уровня стека.-bfepsУстановить скорость работы последовательного устройства, используемого GDB, равной значению bps.—tty=deviceСделать устройство device стандартным вводом и выводом.Общие командыВот некоторые из основных команд gdb; общее число командслишком велико, чтобы приводить их здесь.bt Отобразить текущее положение в программе и маршрут,приведший выполнение в эту точку.
(Действие идентично работе команды where.)breakУстановить точку останова программы.cd Сменить текущий рабочий каталог.clearУдалить точку останова, в которой только что произошло прерывание выполнения.commandsПеречислить команды, выполняемые по прерыванию вточке останова.сПродолжить выполнение с точки останова.Алфавитный перечень командdeleteУдалить точку останова или точку наблюдения; такжеприменяется в сочетании с другими командами.displayОтобразить значение переменных или выражений приостанове программы.downПередвинуться вниз по стеку, чтобы сделать текущейдругую функцию.frameВыбрать процедурную секцию для следующей командыcontinue.infoОтображение информации о gdb.
Например, info breakpoints перечисляет установленные точки останова и наблюдения.jumpПродолжить выполнение программы с другой строки висходном файле.kill Завершить процесс, порожденный gdb.list Отобразить содержимое исходного файла, соответствующего исполняемой в настоящий момент программе.nextВыполнить следующую строку исходного текста, вызвав все необходимые функции.printОтобразить значение переменной или выражения.pwdОтобразить имя текущего рабочего каталога.ptypeОтобразить содержимое типа данных, например, структуры или класса C++.quitЗавершение работы gdb.reverse-searchОбратный поиск по регулярному выражению в исходном тексте программы.run Выполнить программу.181gdb182Глава 3.