Покажите все макросы, неявно заданные во время конкретного анализа
-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)
.