Spec-Zone.ru › GCC 7

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

где ‘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 для вставленных строк в сгенерированных патчах.

-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);
 }

Разница может быть или не быть цветной, следуя тем же правилам, что и для диагностики (см. -fdiagnostics-color).

-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-7.5.0/gcc/Diagnostic-Message-Formatting-Options.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API