Показать все макросы, неявно определенные во время определенного анализа
-dump-preprocessing-info
-dump-preprocessing-info
распечатывает все макросы, неявно определенные (или неопределенные) во время определенного Polyspace® анализ. Определения макросов исходят из:
Ваша спецификация для опции Compiler (-compiler)
Polyspace эмулирует компилятор, определяя специфичные для компилятора макросы.
Макросы, определенные (или неопределенные) в реализации Polyspace заголовков Standard Library
Макросы, которые вы явным образом задаете (или не определяете) используя опции Preprocessor definitions (-D)
и Disabled preprocessor definitions (-U)
Используйте эту опцию, только если необходимо знать, как Polyspace задает определенный макрос. Если необходимо использовать другое определение для макроса, можно переопределить текущее определение.
Если анализ запускается из пользовательского интерфейса (только для десктопных продуктов Polyspace), на панели Configuration можно ввести эту опцию в поле Other. См. Other
. На панели Output Summary вы можете увидеть каждое определение макроса в отдельной линии. Вы можете искать имя макроса в пользовательском интерфейсе и щелкнуть линию с именем макроса, чтобы увидеть дополнительные сведения на панели Detail.
Предположим, что вы используете компилятор ARM v6 для создания исходного кода. Для анализа Polyspace используется значение armclang
для опции Compiler (-compiler)
. Предположим, что вы хотите знать, что Polyspace использует в качестве определения для макроса __ARM_ARCH
.
Введите следующую команду и соедините выход консоли с файлом, который можно искать позже:
polyspace-bug-finder -sources aFile.c -compiler armclang -dump-preprocessing-info |
aFile.c
может быть простым файлом C. Можно также заменить polyspace-bug-finder
с polyspace-code-prover
, polyspace-bug-finder-server
или polyspace-code-prover-server
.
Поиск __ARM_ARCH
в файле, содержащем выходные данные консоли. Вы можете увидеть линию с определением макроса:
Remark: Definition of macro __ARM_ARCH (pre-processing __polyspace__stdstubs.c) |#define __ARM_ARCH 8 |defined by syntax extension xml file |predefined macro |
В этом примере макрос устанавливается на значение 8.
Чтобы переопределить это определение макроса, используйте опцию Preprocessor definitions (-D)
.
Чтобы не определить этот макрос, используйте опцию Disabled preprocessor definitions (-U)
.