3.7 Параметры управления форматированием сообщений диагностики
Традиционно сообщения диагностики форматировались независимо от свойств устройства вывода (например, его ширины, …). Вы можете использовать параметры, описанные ниже, для управления алгоритмом форматирования сообщений диагностики, например, количеством символов в строке, частотой указания местоположения источника. Обратите внимание, что некоторые фронтэнды языка могут игнорировать эти параметры.
-fmessage-length=n-
Попробуйте отформатировать сообщения об ошибках так, чтобы они помещались на строках примерно в n символов. Если n равно нулю, то перенос строк не выполняется; каждое сообщение об ошибке отображается на одной строке. Это значение по умолчанию для всех front-end.
Примечание - этот параметр также влияет на отображение директив препроцессора ‘#error’ и ‘#warning’, а также на атрибут функции/типа/переменной ‘deprecated’. Однако он не влияет на псевдодирективы ‘pragma GCC warning’ и ‘pragma GCC error’.
-fdiagnostics-plain-output-
Этот параметр запрашивает, чтобы выходные данные диагностики выглядели как можно проще, что может быть полезно при запуске
dejagnuили других утилит, которые нуждаются в анализе выходных данных диагностики и предпочитают, чтобы они оставались более стабильными со временем. -fdiagnostics-plain-output в настоящее время эквивалентен следующим параметрам:-fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never -fdiagnostics-urls=never -fdiagnostics-path-format=separate-events
В будущем, если GCC изменит стандартный вид своих диагностических сообщений, соответствующий параметр для отключения нового поведения будет добавлен в этот список.
-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’ заставляет GCC использовать цвет только тогда, когда стандартный вывод ошибок является терминалом и когда выполнение не происходит в оболочке emacs. Формы -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:path=01;36: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 для примечания: маркеры.
path=-
Подстрока SGR для раскраски путей событий потока управления, напечатанных с помощью -fdiagnostics-path-format=, таких как идентификаторы отдельных событий и строки, указывающие межпроцедурные вызовы и возвраты.
range1=-
Подстрока SGR для первого дополнительного диапазона.
range2=-
Подстрока SGR для второго дополнительного диапазона.
locus=-
Подстрока SGR для информации о местоположении, ‘file:line’ или ‘file:line:column’ и т. д.
quote=-
Подстрока SGR для информации, напечатанной в кавычках.
fixit-insert=-
Подстрока SGR для подсказок по исправлению, предлагающих текст для вставки или замены.
fixit-delete=-
Подстрока SGR для подсказок по исправлению, предлагающих текст для удаления.
diff-filename=-
Подстрока SGR для заголовков имен файлов в сгенерированных патчах.
diff-hunk=-
Подстрока SGR для начала блоков в сгенерированных патчах.
diff-delete=-
Подстрока SGR для удаленных строк в сгенерированных патчах.
diff-insert=-
Подстрока SGR для вставленных строк в сгенерированных патчах.
type-diff=-
Подстрока SGR для выделения несоответствующих типов в аргументах шаблонов в C++ frontend.
-fdiagnostics-urls[=WHEN]-
Использовать последовательности для вставки URL-адресов в диагностические сообщения. Например, когда -fdiagnostics-show-option выводит текст, показывающий командную строку параметр, контролирующий диагностику, вставлять URL-адрес документации этого параметра.
WHEN может быть ‘never’, ‘always’ или ‘auto’. ‘auto’ заставляет GCC использовать последовательности для вставки URL-адресов только тогда, когда стандартный вывод ошибок является терминалом и когда выполнение не происходит в оболочке emacs или любом графическом терминале, который известен как несовместимый с этой функцией, см. ниже.
Значение по умолчанию зависит от того, как был сконфигурирован компилятор. Оно может быть любым из вышеперечисленных вариантов WHEN.
GCC также может быть сконфигурирован (через опцию времени конфигурации --with-diagnostics-urls=auto-if-env) таким образом, что значение по умолчанию зависит от переменных среды. При такой конфигурации GCC устанавливает значение по умолчанию в ‘auto’, если в среде компилятора присутствуют переменные среды
GCC_URLSилиTERM_URLSи не пусты, или в ‘never’, если ни одна из них не присутствует.Однако, даже с -fdiagnostics-urls=always поведение зависит от этих переменных среды: если
GCC_URLSустановлена в пустую строку или ‘no’, не вставлять URL-адреса в диагностические сообщения. Если установлено в ‘st’, URL-адреса используют последовательности ST. Если установлено в ‘bel’, значение по умолчанию, URL-адреса используют последовательности BEL. Любое другое ненулевое значение включает функцию. ЕслиGCC_URLSне установлена, используйтеTERM_URLSв качестве резервного варианта. Примечание: ST - это последовательность ANSI, разделитель строки ‘ESC \’, BEL - это ASCII-символ, CTRL-G, который обычно звучит как звуковой сигнал.В настоящее время GCC пытается также обнаружить несколько терминалов, которые известны как не реализующие функцию URL-адресов и имеющие ошибки или, по крайней мере, имели ошибки в некоторых версиях, которые все еще используются, где последовательности URL-адресов, вероятно, будут работать неправильно, т. е. печатать мусор на экране. В данный список входят xfce4-terminal, некоторые известные ошибочные версии gnome-terminal, консоль Linux и mingw. Проверку можно пропустить с помощью -fdiagnostics-urls=always.
-fno-diagnostics-show-option-
По умолчанию каждое выводимое диагностическое сообщение содержит текст, указывающий на командную строку параметр, напрямую контролирующий диагностику (если такое опция известна механизму диагностики). Указание флага -fno-diagnostics-show-option подавляет это поведение.
-fno-diagnostics-show-caret-
По умолчанию каждое выводимое диагностическое сообщение включает исходную строку кода и символ «^», указывающий на столбец. Этот параметр подавляет эту информацию. Строка исходного кода усечена до n символов, если указан параметр -fmessage-length=n. Когда вывод осуществляется на терминал, ширина ограничена шириной, заданной переменной среды
COLUMNSили, если она не установлена, шириной терминала. -fno-diagnostics-show-labels-
По умолчанию, при печати исходного кода (через -fdiagnostics-show-caret), диагностические сообщения могут маркировать участки исходного кода соответствующей информацией, например, типы выражений:
printf ("foo %s bar", long_i + long_j); ~^ ~~~~~~~~~~~~~~~ | | char * long intЭтот параметр подавляет вывод этих меток (на примере выше, вертикальные линии и текст «char *» и «long int»).
-fno-diagnostics-show-cwe-
Сообщения диагностики могут иметь связанный с ними идентификатор CWE. Сам GCC предоставляет такие метаданные только для некоторых диагностических сообщений -fanalyzer. Плагины GCC также могут предоставлять диагностические сообщения с такими метаданными. По умолчанию, если эта информация присутствует, она будет выводиться с сообщением об ошибке. Этот параметр подавляет вывод этих метаданных.
-fno-diagnostics-show-line-numbers-
По умолчанию, при печати исходного кода (через -fdiagnostics-show-caret) выводится левый отступ, отображающий номера строк. Этот параметр подавляет вывод этого левого отступа.
-fdiagnostics-minimum-margin-width=width-
Этот параметр контролирует минимальную ширину левого отступа, выводимого параметром -fdiagnostics-show-line-numbers. Значение по умолчанию равно 6.
-fdiagnostics-parseable-fixits
-
Выводить подсказки о исправлениях в формате, пригодном для машинной обработки, подходящем для использования IDE. Для каждого исправления будет напечатана строка после соответствующего диагностического сообщения, начиная со строки «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-
Выводить подсказки о исправлениях в формате unified diff в stderr после вывода любых диагностических сообщений. Например:
--- test.c +++ test.c @ -42,5 +42,5 @ void show_cb(GtkDialog *dlg) { - gtk_widget_showall(dlg); + gtk_widget_show_all(dlg); }Дифференциация может быть или не быть цветной, следуя тем же правилам, что и для диагностических сообщений (см. -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.
-fdiagnostics-path-format=KIND-
Указать способ вывода путей событий потока управления для диагностических сообщений, которые имеют связанный с ними такой путь.
KIND — это ‘none’, ‘separate-events’ или ‘inline-events’, по умолчанию.
‘none’ означает, что пути диагностики не будут выводиться.
‘separate-events’ означает, что для каждого события внутри диагностического сообщения будет выводиться отдельное диагностическое сообщение «примечание». Например:
test.c:29:5: error: passing NULL as argument 1 to 'PyList_Append' which requires a non-NULL parameter test.c:25:10: note: (1) when 'PyList_New' fails, returning NULL test.c:27:3: note: (2) when 'i < count' test.c:29:5: note: (3) when calling 'PyList_Append', passing NULL from (1) as argument 1
‘inline-events’ означает, что события будут выводиться «встроеными» в исходный код. Эта визуализация пытается объединить события в последовательности достаточно близких событий, выводить их как помеченные диапазоны в исходном коде.
Например, те же события, что и выше, могут быть выведены как:
'test': events 1-3 | | 25 | list = PyList_New(0); | | ^~~~~~~~~~~~~ | | | | | (1) when 'PyList_New' fails, returning NULL | 26 | | 27 | for (i = 0; i < count; i++) { | | ~~~ | | | | | (2) when 'i < count' | 28 | item = PyLong_FromLong(random()); | 29 | PyList_Append(list, item); | | ~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (3) when calling 'PyList_Append', passing NULL from (1) as argument 1 |Межпроцедурный поток управления показывается путём группировки событий по кадрам стека и с помощью отступов, чтобы показать, как кадры стека вложены, выталкиваются и извлекаются.
Например:
'test': events 1-2 | | 133 | { | | ^ | | | | | (1) entering 'test' | 134 | boxed_int *obj = make_boxed_int (i); | | ~~~~~~~~~~~~~~~~~~ | | | | | (2) calling 'make_boxed_int' | +--> 'make_boxed_int': events 3-4 | | 120 | { | | ^ | | | | | (3) entering 'make_boxed_int' | 121 | boxed_int *result = (boxed_int *)wrapped_malloc (sizeof (boxed_int)); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (4) calling 'wrapped_malloc' | +--> 'wrapped_malloc': events 5-6 | | 7 | { | | ^ | | | | | (5) entering 'wrapped_malloc' | 8 | return malloc (size); | | ~~~~~~~~~~~~~ | | | | | (6) calling 'malloc' | <-------------+ | 'test': event 7 | | 138 | free_boxed_int (obj); | | ^~~~~~~~~~~~~~~~~~~~ | | | | | (7) calling 'free_boxed_int' | (etc) -fdiagnostics-show-path-depths-
Этот параметр предоставляет дополнительную информацию при выводе путей потока управления, связанных с диагностическим сообщением.
Если этот параметр задан, глубина стека будет выводиться для каждой последовательности событий в -fdiagnostics-path-format=separate-events.
Предназначено для использования разработчиками GCC и разработчиками плагинов при отладке диагностических сообщений, которые сообщают об межпроцедурном потоке управления.
-fno-show-column-
Не выводить номера столбцов в диагностических сообщениях. Это может быть необходимо, если диагностические сообщения сканируются программой, которая не понимает номера столбцов, например
dejagnu. -fdiagnostics-column-unit=UNIT-
Выберите единицы измерения для номера столбца. Это влияет на традиционные диагностические сообщения (в отсутствие -fno-show-column), а также на диагностические сообщения в формате JSON, если запрошено.
По умолчанию UNIT, ‘display’, учитывает количество столбцов, занимаемых каждым символом. Это может быть больше, чем количество байтов, необходимых для кодирования символа, в случае символов табуляции, или может быть меньше, в случае многобайтовых символов. Например, символ «GREEK SMALL LETTER PI (U+03C0)» занимает один столбец, а его кодирование UTF-8 требует двух байтов; символ «SLIGHTLY SMILING FACE (U+1F642)» занимает два столбца, а его кодирование UTF-8 требует четырёх байтов.
Установка UNIT на ‘byte’ изменяет номер столбца на количество байтов во всех случаях, как это традиционно выводилось GCC до версии 11.1.0.
-fdiagnostics-column-origin=ORIGIN-
Выберите начало для номеров столбцов, то есть номер столбца, присвоенный первому столбцу. Значение по умолчанию 1 соответствует традиционному поведению GCC и руководству стиля GNU. Некоторые утилиты могут работать лучше с началом 0; может быть указано любое неотрицательное значение.
-fdiagnostics-escape-format=FORMAT-
Когда GCC выводит соответствующие строки исходного кода для диагностического сообщения, он обычно пытается вывести байты исходного кода непосредственно. Однако некоторые диагностические сообщения относятся к проблемам кодировки в файле исходного кода, таким как неправильное UTF-8 или проблемы с нормализацией Юникода. Эти диагностические сообщения помечаются так, чтобы GCC экранировал байты, которые не являются печатаемыми ASCII, при выводе их соответствующих строк исходного кода.
Этот параметр управляет тем, как должны быть экранированы такие байты.
По умолчанию FORMAT, ‘unicode’ отображает символы Юникода, которые не являются печатаемыми ASCII, в виде ‘<U+XXXX>’, а байты, которые не соответствуют символу Юникода, правильно закодированному в UTF-8, будут отображаться как шестнадцатеричные в виде ‘<XX>’.
Например, строка исходного кода, содержащая строку ‘before’, за которой следует символ Юникода U+03C0 («GREEK SMALL LETTER PI», с кодированием UTF-8 0xCF 0x80), за которым следует байт 0xBF (остаточный байт UTF-8), за которым следует строка ‘after’, будет выводиться для такого диагностического сообщения как:
before<U+03C0><BF>after
Установка FORMAT на ‘bytes’ отобразит все непечатаемые байты ASCII в виде ‘<XX>’, тем самым отобразив кодирование не ASCII символов Юникода. Для приведенного выше примера будет выведено следующее:
before<CF><80><BF>after
-fdiagnostics-format=FORMAT-
Выбрать другой формат для вывода диагностических сообщений. FORMAT — это ‘text’ или ‘json’. По умолчанию ‘text’.
Формат ‘json’ состоит из корневого JSON-массива, содержащего JSON-объекты, представляющие диагностические сообщения.
JSON выводится в одну строку без форматирования; примеры ниже отформатированы для ясности.
Диагностические сообщения могут иметь дочерние диагностические сообщения. Например, эта ошибка и примечание:
misleading-indentation.c:15:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 15 | if (flag) | ^~ misleading-indentation.c:17:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 17 | y = 2; | ^могут быть выведены в формате JSON (после форматирования) следующим образом:
[ { "kind": "warning", "locations": [ { "caret": { "display-column": 3, "byte-column": 3, "column": 3, "file": "misleading-indentation.c", "line": 15 }, "finish": { "display-column": 4, "byte-column": 4, "column": 4, "file": "misleading-indentation.c", "line": 15 } } ], "message": "this \u2018if\u2019 clause does not guard...", "option": "-Wmisleading-indentation", "option_url": "https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wmisleading-indentation", "children": [ { "kind": "note", "locations": [ { "caret": { "display-column": 5, "byte-column": 5, "column": 5, "file": "misleading-indentation.c", "line": 17 } } ], "escape-source": false, "message": "...this statement, but the latter is …" } ] "escape-source": false, "column-origin": 1, } ]где
noteявляется дочерним элементомwarning.Диагностическое сообщение имеет
kind. Если этоwarning, то существует ключoption, описывающий параметр командной строки, контролирующий предупреждение.Диагностическое сообщение может содержать ноль или более местоположений. Каждое местоположение имеет необязательную
labelстроку и до трёх позиций внутри неё: позициюcaret, и необязательные позицииstartиfinish. Позиция описывается именемfile, номеромlineи тремя числами, указывающими позицию столбца:-
display-columnсчитает столбцы отображения, учитывая табуляции и многобайтовые символы. -
byte-columnсчитает количество байтов. -
columnравно одному из предыдущих двух, как предписано опцией -fdiagnostics-column-unit.
Все три столбца относительны к началу, указанному -fdiagnostics-column-origin, которое обычно равно 1, но может быть установлено, например, в 0 для совместимости с другими утилитами, которые нумеруют столбцы с 0. Начало столбца записывается в выходные данные JSON в теге
column-origin. В оставшихся примерах ниже лишние выводы номеров столбцов опущены для краткости.Например, эта ошибка:
bad-binary-ops.c:64:23: error: invalid operands to binary + (have 'S' {aka 'struct s'} and 'T' {aka 'struct t'}) 64 | return callee_4a () + callee_4b (); | ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~ | | | | | T {aka struct t} | S {aka struct s}имеет три местоположения. Основное местоположение находится в токене «+» в столбце 23. Есть две дополнительные позиции, описывающие левую и правую части выражения, имеющие метки. Она может быть выведена в формате JSON как:
{ "children": [], "kind": "error", "locations": [ { "caret": { "column": 23, "file": "bad-binary-ops.c", "line": 64 } }, { "caret": { "column": 10, "file": "bad-binary-ops.c", "line": 64 }, "finish": { "column": 21, "file": "bad-binary-ops.c", "line": 64 }, "label": "S {aka struct s}" }, { "caret": { "column": 25, "file": "bad-binary-ops.c", "line": 64 }, "finish": { "column": 36, "file": "bad-binary-ops.c", "line": 64 }, "label": "T {aka struct t}" } ], "escape-source": false, "message": "invalid operands to binary + …" }Если диагностическое сообщение содержит подсказки о исправлениях, оно имеет массив
fixits, состоящий из полуоткрытых интервалов, аналогично выводу -fdiagnostics-parseable-fixits. Например, это диагностическое сообщение с подсказкой о замене:demo.c:8:15: error: 'struct s' has no member named 'colour'; did you mean 'color'? 8 | return ptr->colour; | ^~~~~~ | colorможет быть выведено в формате JSON как:
{ "children": [], "fixits": [ { "next": { "column": 21, "file": "demo.c", "line": 8 }, "start": { "column": 15, "file": "demo.c", "line": 8 }, "string": "color" } ], "kind": "error", "locations": [ { "caret": { "column": 15, "file": "demo.c", "line": 8 }, "finish": { "column": 20, "file": "demo.c", "line": 8 } } ], "escape-source": false, "message": "\u2018struct s\u2019 has no member named …" }где подсказка о исправлении предлагает заменить текст от
startдо, но не включаяnextзначениемstring. Удаления выражаются пустым значением дляstring, вставки — тем, чтоstartравноnext.Если диагностическое сообщение имеет путь событий потока управления, связанных с ним, оно имеет массив
pathобъектов, представляющих события. Каждый объект события имеет строкуdescription, объектlocation, вместе со строкойfunctionи числомdepthдля представления межпроцедурных путей.functionпредставляет текущую функцию в этом событии, аdepthпредставляет глубину стека относительно некоторой базовой линии: чем выше, тем больше кадров в стеке.Например, внутрипроцедурный пример, показанный для -fdiagnostics-path-format=, может иметь следующий JSON для своего пути:
"path": [ { "depth": 0, "description": "when 'PyList_New' fails, returning NULL", "function": "test", "location": { "column": 10, "file": "test.c", "line": 25 } }, { "depth": 0, "description": "when 'i < count'", "function": "test", "location": { "column": 3, "file": "test.c", "line": 27 } }, { "depth": 0, "description": "when calling 'PyList_Append', passing NULL from (1) as argument 1", "function": "test", "location": { "column": 5, "file": "test.c", "line": 29 } } ]Диагностические сообщения имеют булеву атрибут
escape-source, подразумевая, следует ли экранировать байты не ASCII при выводе соответствующих строк исходного кода (trueдля диагностических сообщений, связанных с проблемами кодировки исходного кода). -
Далее: Параметры предупреждений, Предыдущее: Параметры диалекта Objective-C и Objective-C++, Наверх: Вызов GCC [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Diagnostic-Message-Formatting-Options.html