ルール違反ストリングのフォーマット
デフォルトでメッセージは、ルール違反の指定子(つまり、 %G, %K, %M, %r, %v と %z 指定子など)は、 --format
出力ストリングにより診断と共に出力されます。
複数のルール違反がある場合、各フィールドが出力され、その出力の各ルールはカンマで区切られます。この方法では、複数のルール違反と複数のルール指定子があるときに混乱が生じる恐れがあります。
そこで、新しい --rule-format
が追加されました。
このフォーマットストリングを指定すると、最初に診断情報が出力され、それから各ルール違反が続きます。--rule-format
オプションのルール特有のフィールドがそれから出力されます。
これにより、各違反に対するすべてのルール特有の情報が一緒に出力されるようになりました。
--rule-format
ストリングでは以下の指定子のみが使用可能です。
指定子 | 詳しい説明 |
---|---|
%G |
親ルールID |
%K | ルールカテゴリ 1 |
%M | ルールグループ名と最下位の子ルールID(s) |
%r |
親ルールIDを除く最下位の子ルールID (親ルールIDについては%Gを参照) |
%v |
ルールID と テキスト ( |
%z |
ルールヘルプファイル(絶対パス) |
これらはサポートされている唯一の使用可能な指定子です。
分かりにくい出力が生成されるため、 --format
オプション、--rule-format
での使用が推奨されないルール指定子がいくつかあります。
例えば、基本的な診断と、ルール違反の出力を違う行に表示するには、以下のようなコマンドを使用します。
これの出力は以下です。
inspect.c:2:1 2887
-->M3CM Rule-17.4 Categories:MISRA Mandatory Rules|Mandatory|Rules|Functions
inspect.c:9:3 3114
-->M3CM Rule-17.4 Categories:MISRA Mandatory Rules|Mandatory|Rules|Functions
-->M3CM Rule-1.3 Categories:MISRA Required Rules|Required|Rules|A standard C environment