C++コードの静的コード分析にCppcheckを使用したいと思います。 --inline-suppr
コマンドである種の警告を抑制できることを学びました。ただし、コメントに入力する必要のある「suppressed_error_id」が見つかりません。
// cppcheck-suppress "suppressed_error_id"
Cppcheckヘルプによると:
エラーIDは、抑制したいIDです。これを取得する最も簡単な方法は、-xmlコマンドラインフラグを使用することです。 xml出力からid文字列をコピーして貼り付けます。
したがって、--xml
フラグの付いたエラーを含むコードに対してcppcheckを実行し、生成されたXMLファイルを調べてその名前を見つけます。
出力テンプレートを変更して、コマンドラインからエラーIDを表示できます。これは非常に便利です。
エラーIDが表示されたVisualStudio形式の出力の場合は、これをコマンドラインに追加します。
--template "{file}({line}): {severity} ({id}): {message}"
これにより、次のような出力が生成されます。
s:\src\jpeg.cpp(123): error (bufferAccessOutOfBounds): Buffer access out-of-bounds: abRY
次に、次の行を追加して抑制できます。
// cppcheck-suppress bufferAccessOutOfBounds
ソースファイルの前の行へ。
cppcheckのマニュアルページ によると、--template
オプションを使用して、デフォルトの出力を変更し、IDを含めることができます。
cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
GUIを使用している場合は、抑制したいメッセージを右クリックしてメニューをポップアップできます。 「メッセージIDのコピー」を選択します。 「suppressed_error_id」の代わりにメッセージIDをコードに貼り付けます。