-dump-preprocessing-info

Покажите все макросы, неявно заданные во время конкретного анализа

Синтаксис

-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.

  1. Введите следующую команду и передайте консоль по каналу выход к файлу, который можно искать позже:

    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.

  2. Ищите __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.