Покажите все макросы, неявно заданные во время конкретного анализа
-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 вы видите каждое макроопределение на отдельной линии. Можно искать макро-имя в пользовательском интерфейсе и кликнуть по линии с макро-именем, чтобы видеть более подробную информацию в панели 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)
.