Показать все макросы, неявно определенные во время определенного анализа
-dump-preprocessing-info
-dump-preprocessing-info печатает все макросы, неявно определенные (или неопределенные) во время определенного анализа Polyspace ®. Определения макросов получены из:
Ваша спецификация для опции Compiler (-compiler)
Polyspace эмулирует компилятор, определяя специфичные для компилятора макросы.
Макросы, определенные (или неопределенные) в реализации Polyspace заголовков стандартной библиотеки
Макросы, которые явно определены (или не определены) с помощью опций Preprocessor definitions (-D) и Disabled preprocessor definitions (-U)
Используйте этот параметр, только если требуется узнать, как Polyspace определяет определенный макрос. Если требуется использовать другое определение для макроса, можно переопределить текущее определение.
Если анализ выполняется из интерфейса пользователя (только для настольных продуктов Polyspace), на панели Конфигурация (Configuration) можно ввести этот параметр в поле Другое (Other). Посмотрите Other. На панели Сводка вывода (Output Summary) можно просмотреть каждое определение макроса в отдельной строке. Можно выполнить поиск имени макроса в интерфейсе пользователя и щелкнуть строку с именем макроса, чтобы просмотреть дополнительные сведения в области сведений.
Предположим, что для создания исходного кода используется компилятор 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).