Аннотировать код для известных или приемлемых результатов (не рекомендуемый)

Примечание

Начиная с R2017b, Polyspace использует более простой формат аннотации. См. раздел «Аннотации кода» и «Скрыть известные или приемлемые результаты».

Если Polyspace находит дефекты в коде, которые вы не можете или не будете исправлять, можно добавить аннотации к коду. Эти аннотации являются комментариями к коду, которые указывают на известные или приемлемые дефекты или нарушения правил кодирования. При помощи этих аннотаций можно:

  • Избегайте повторного просмотра дефектов или нарушений правил кодирования из предыдущих анализов.

  • Сохраните комментарии и классификации.

Примечание

Аннотации исходного кода не применяются к комментариям кода. Вы не можете аннотировать следующие правила:

  • MISRA C®:: Правила 2.2 и 2.3 2004 года

  • MISRA C:2012 правила 3.1 и 3.2

  • MISRA-C + + Правило 2-7-1

  • Правила JSF++ 127 и 133

Добавление аннотаций из интерфейса Polyspace

Этот метод показывает, как преобразовать комментарии и классификации рецензирования в интерфейсе Polyspace в аннотации кода.

  1. На Results List или Result Details панели назначьте Severity, Status и Comment результату.

    1. Щелкните результат.

    2. Из Severity и Status списков выпадающего списка выберите опцию.

    3. В поле Comment введите комментарий или ключевое слово, которое помогает легко распознать результат.

  2. На панели Results List щелкните правой кнопкой мыши результат с комментариями и выберите Add Pre-Justification to Clipboard. Программа копирует серьезность, состояние и комментарии в буфер обмена.

  3. Еще раз щелкните правой кнопкой мыши результат и выберите Open Editor. Программа открывает исходный файл в местоположение дефекта.

  4. Вставьте содержимое буфера обмена в линию непосредственно перед линией, содержащей дефект или нарушение правил кодирования.

    Комментарии к обзору можно увидеть как код комментарий в Polyspace® синтаксис аннотации, который Polyspace использует для повторного заполнения отзывов о следующем анализе.

  5. Сохраните исходный файл и перезапустите анализ.

    На панели Results List программа заполняет Severity, Status и Comment столбцы для нарушения дефектов или правил, которые вы аннотировали. Эти поля считываются только потому, что они заполняются из аннотации кода. Если для аннотаций используется определенное ключевое слово или статус, можно отфильтровать результаты, чтобы скрыть или показать аннотированные результаты. Дополнительные сведения о фильтрации см. в разделе Фильтрация и результаты группы в интерфейсе пользователя Polyspace Desktop.

Добавление аннотаций вручную

Этот метод показывает, как вводить комментарии непосредственно в исходные файлы с помощью синтаксиса аннотации кода Polyspace. Синтаксис не учитывает регистр и применяется к первой необработанной линии кода C/C + + после аннотации.

  1. Откройте исходный файл в редакторе и найдите линию или раздел кода, который вы хотите аннотировать.

  2. Добавьте одну из следующих аннотаций:

    • Для одной строки кода добавьте следующий текст непосредственно перед строкой кода, которую вы хотите аннотировать.

      /* polyspace<Type:Kind1[,Kind2] : [Severity] : [Status] > [Notes] */

    • Для раздела кода используйте следующий синтаксис.

      /* polyspace:begin<Type:Kind1[,Kind2] : [Severity] : [Status] > [Notes] */
      
      ... Code section ...
      
      /* polyspace:end<Type:Kind1[,Kind2] : [Severity] : [Status] >  */

      Если макрос расширяется до нескольких линий, используйте синтаксис для секций кода, хотя сам макрос охватывает одну линию. Синтаксис в одну строку применяется только к результатам, которые появляются в первой линии расширенного макроса.

  3. Замените слова Type, Kind1, [Kind2], [Severity], [Status], и [Additional text] с допустимыми значениями, указанными в следующей таблице. Текст с квадратными скобками [] необязательно, и вы можете удалить его. См. примеры синтаксиса.

    WordДопустимые значения
    Type

    Тип результатов:

    • Defect (Polyspace Bug Finder™)

    • RTE, для проверок во время выполнения (Polyspace Code Prover™)

    • VARIABLE, для глобальных переменных (Polyspace Code Prover)

    • CODE-METRIC, для метрик сложности кода.

    • MISRA-C, для MISRA C:2004

    • MISRA-AC-AGC

    • MISRA-C3, для MISRA C:2012

    • MISRA-CPP

    • JSF

    • Custom, для пользовательских нарушений правил кодирования.

    Kind1,[Kind2],...

    Для дефектов, проверок во время выполнения и метрики кода используйте краткие имена шашек. См.:

    Для нарушений правил кодирования задайте номер правила или номера.

    Для глобальных переменных единственным допустимым значением является ALL.

    Если вы хотите, чтобы комментарий применялся ко всем возможным дефектам или правилам кодирования, задайте ALL.

    Severity

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

    • Unset

    • High

    • Medium

    • Low

    Этот текст заполняет столбец Severity на панели Results List.

    Status

    Текст, который указывает, как вы намерены исправить ошибку в коде. Введите один из следующих или любой другой текст:

    • Unreviewed

    • To investigate

    • To fix

    • Justified

    • No action planned

    • Not a defect

    • Other

    Этот текст заполняет столбец Status на панели Results List. Статус также используется в Polyspace Metrics, чтобы определить, является ли результат обоснованным. Для обоснования результата используйте Justified, No action planned или Not a defect.

    NotesДополнительные комментарии, такие как ключевое слово или объяснение статуса и серьезности.

Примеры синтаксиса

  • Один дефект:

    /* polyspace<Defect:HARD_CODED_BUFFER_SIZE:Medium:To investigate> Known issue */
    int table[100];
    

  • Одна проверка во время выполнения:

    /* polyspace<RTE: ZDV : High : To Fix > Denominator cannot be zero */
    y=1/x;
  • Нарушение правил C:2012 MISRA:

    /* polyspace<MISRA-C3: 13.1 : Low : Justified> Known issue */
    int arr[2] = {x++,y}; 

  • Неиспользованная глобальная переменная:

    /* polyspace<VARIABLE: ALL : Low : Justified> Variable to use later*/
    int var_unused;
    

  • Множественные дефекты:

    polyspace<Defect:USELESS_WRITE,DEAD_CODE:Low:No Action Planned> OK issue
    

  • Несколько JSF® нарушения правил:

    polyspace<JSF:9,13:Low:Justified> Known issue