-dump-preprocessing-info

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

Синтаксис

-dump-preprocessing-info

Описание

-dump-preprocessing-info распечатывает все макросы, неявно определенные (или неопределенные) во время определенного Polyspace® анализ. Определения макросов исходят из:

  • Ваша спецификация для опции Compiler (-compiler)

    Polyspace эмулирует компилятор, определяя специфичные для компилятора макросы.

  • Макросы, определенные (или неопределенные) в реализации Polyspace заголовков Standard Library

  • Макросы, которые вы явным образом задаете (или не определяете) используя опции 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.