3.7 Параметры для управления форматированием сообщений диагностики
Традиционно сообщения диагностики форматировались независимо от характеристик устройства вывода (например, его ширины...). Вы можете использовать параметры, описанные ниже, для управления алгоритмом форматирования сообщений диагностики, например, количеством символов на строке, частотой вывода информации о местоположении источника. Обратите внимание, что некоторые языковые фронт-энды могут не поддерживать эти параметры.
-fmessage-length=n-
Попытка форматирования сообщений об ошибках таким образом, чтобы они помещались на строках примерно из n символов. Если n равно нулю, перенос строк не выполняется; каждое сообщение об ошибке отображается на отдельной строке. Это значение по умолчанию для всех фронт-эндов.
-fdiagnostics-show-location=once-
Полезна только в режиме переноса строк. Указывает репортеру сообщений диагностики вывести информацию о местоположении источника один раз; то есть, если сообщение слишком длинное для размещения на одной физической строке и его необходимо переносить, информация о местоположении источника не будет выводиться (в качестве префикса) повторно на последующих строках продолжения. Это поведение по умолчанию.
-fdiagnostics-show-location=every-line-
Полезна только в режиме переноса строк. Указывает репортеру сообщений диагностики вывести одну и ту же информацию о местоположении источника (в качестве префикса) для физических строк, которые получаются в результате разделения сообщения, которое слишком длинное для размещения на одной строке.
-fdiagnostics-color[=WHEN]-fno-diagnostics-color-
Использование цвета в сообщениях диагностики. WHEN может принимать значения ‘never’, ‘always’ или ‘auto’. Значение по умолчанию зависит от конфигурации компилятора, может принимать любое из указанных значений WHEN или также ‘never’, если переменная среды
GCC_COLORSотсутствует в среде, и ‘auto’ в противном случае. ‘auto’ означает использование цвета только тогда, когда стандартный вывод ошибок направлен в терминал. Формы -fdiagnostics-color и -fno-diagnostics-color являются псевдонимами для -fdiagnostics-color=always и -fdiagnostics-color=never соответственно.Цвета определяются переменной среды
GCC_COLORS. Ее значение представляет собой список разделенных двоеточием возможностей и подстрок Select Graphic Rendition (SGR). Команды SGR интерпретируются терминалом или эмулятором терминала. (См. раздел документации вашего текстового терминала для допустимых значений и их значений в качестве атрибутов символов.) Эти значения подстрок — целые числа в десятичной записи и могут быть объединены точками с запятой. Общие значения для объединения включают ‘1’ для жирным шрифта, ‘4’ для подчеркивания, ‘5’ для мигания, ‘7’ для инверсии, ‘39’ для стандартного цвета первого плана, ‘30’ до ‘37’ для цветов первого плана, ‘90’ до ‘97’ для цветов первого плана в 16-цветном режиме, ‘38;5;0’ до ‘38;5;255’ для цветов первого плана в 88-цветном и 256-цветном режимах, ‘49’ для стандартного цвета заднего плана, ‘40’ до ‘47’ для цветов заднего плана, ‘100’ до ‘107’ для цветов заднего плана в 16-цветном режиме и ‘48;5;0’ до ‘48;5;255’ для цветов заднего плана в 88-цветном и 256-цветном режимах.Значение по умолчанию
GCC_COLORS—error=01;31:warning=01;35:note=01;36:range1=32:range2=34:locus=01:\ quote=01:fixit-insert=32:fixit-delete=31:\ diff-filename=01:diff-hunk=32:diff-delete=31:diff-insert=32:\ type-diff=01;32
где ‘01;31’ — жирный красный, ‘01;35’ — жирный пурпурный, ‘01;36’ — жирный голубой, ‘32’ — зелёный, ‘34’ — синий, ‘01’ — жирный, и ‘31’ — красный. Установка
GCC_COLORSв пустую строку отключает цвета. Поддерживаемые возможности перечислены ниже.error=-
Подстрока SGR для ошибок: маркеры.
warning=-
Подстрока SGR для предупреждений: маркеры.
note=-
Подстрока SGR для заметок: маркеры.
range1=-
Подстрока SGR для первого дополнительного диапазона.
range2=-
Подстрока SGR для второго дополнительного диапазона.
locus=-
Подстрока SGR для информации о местоположении, например ‘file:line’ или ‘file:line:column’.
quote=-
Подстрока SGR для информации, напечатанной в кавычках.
fixit-insert=-
Подстрока SGR для подсказок fix-it, предлагающих текст для вставки или замены.
fixit-delete=-
Подстрока SGR для подсказок fix-it, предлагающих текст для удаления.
diff-filename=-
Подстрока SGR для заголовков файлов в сгенерированных патчах.
diff-hunk=-
Подстрока SGR для начала блоков в сгенерированных патчах.
diff-delete=-
Подстрока SGR для удаленных строк в сгенерированных патчах.
diff-insert=-
Подстрока SGR для вставленных строк в сгенерированных патчах.
type-diff=-
Подстрока SGR для выделения несовпадающих типов внутри шаблонов аргументов в C++ фронт-энде.
-fno-diagnostics-show-option-
По умолчанию каждое выводимое сообщение диагностики включает текст, указывающий командную строку опцию, которая непосредственно управляет диагностикой (если такая опция известна механизму диагностики). Указание флага -fno-diagnostics-show-option подавляет это поведение.
-fno-diagnostics-show-caret-
По умолчанию каждое выводимое сообщение диагностики включает исходную строку и символ «^», указывающий колонку. Эта опция подавляет вывод этой информации. Строка источника усекается до n символов, если задана опция -fmessage-length=n. При выводе на терминал ширина ограничена шириной, заданной переменной среды
COLUMNS, или, если она не задана, шириной терминала. -fdiagnostics-parseable-fixits-
Выводить подсказки fix-it в формате, пригодном для машинной обработки, подходящем для использования IDE. Для каждой подсказки fix-it после соответствующего сообщения диагностики будет напечатана строка, начинающаяся со строки «fix-it:». Например:
fix-it:"test.c":{45:3-45:21}:"gtk_widget_show_all"Расположение выражается как полуоткрытый интервал, выраженный в количестве байтов, начиная с байта 1 для начальной колонки. В приведённом примере байты с 3 по 20 строки 45 файла «test.c» должны быть заменены указанной строкой:
00000000011111111112222222222 12345678901234567890123456789 gtk_widget_showall (dlg); ^^^^^^^^^^^^^^^^^^ gtk_widget_show_all
Обратный слэш экранируется как «\\», табуляция как «\t», перевод строки как «\n», двойные кавычки как «\"», а непечатаемые символы как восьмеричные (например, вертикальная табуляция как «\013»).
Пустая строка замены указывает на то, что указанный диапазон должен быть удален. Пустой диапазон (например, «45:3-45:3») указывает на то, что строка должна быть вставлена в указанную позицию.
-fdiagnostics-generate-patch-
Печать подсказок fix-it в стандартный поток ошибок (stderr) в формате unified diff после вывода любых сообщений диагностики. Например:
--- test.c +++ test.c @ -42,5 +42,5 @ void show_cb(GtkDialog *dlg) { - gtk_widget_showall(dlg); + gtk_widget_show_all(dlg); }Форматирование diff может быть или не быть цветным, следуя тем же правилам, что и для сообщений диагностики (см. -fdiagnostics-color).
-fdiagnostics-show-template-tree-
В C++ фронт-энде, при выводе сообщений диагностики, показывающих несовпадающие типы шаблонов, например:
could not convert 'std::map<int, std::vector<double> >()' from 'map<[...],vector<double>>' to 'map<[...],vector<float>>
флаг -fdiagnostics-show-template-tree позволяет напечатать древовидную структуру, показывающую общие и отличающиеся части типов, например:
map< [...], vector< [double != float]>>Отличающиеся части выделены цветом («double» и «float» в данном случае).
-fno-elide-type-
По умолчанию, когда C++ фронт-энд выводит сообщения диагностики, показывающие несовпадающие типы шаблонов, общие части типов отображаются как «[...]» для упрощения сообщений об ошибках. Например:
could not convert 'std::map<int, std::vector<double> >()' from 'map<[...],vector<double>>' to 'map<[...],vector<float>>
Указание флага -fno-elide-type подавляет это поведение. Этот флаг также влияет на вывод флага -fdiagnostics-show-template-tree.
-fno-show-column-
Не выводить номера колонок в сообщениях диагностики. Это может потребоваться, если сообщения диагностики сканируются программой, которая не понимает номера колонок, например
dejagnu.
Далее: Опции предупреждений, Предыдущее: Опции диалекта Objective-C и Objective-C++, Верх: Вызов GCC [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-8.5.0/gcc/Diagnostic-Message-Formatting-Options.html