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